Excel-formel: Dynamisk kalendergitter -

Indholdsfortegnelse

Resumé

Du kan oprette dynamisk kalendergitter på et Excel-regneark med en række formler som forklaret i denne artikel. I det viste eksempel er formlen i B6:

=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)

hvor "start" er det navngivne interval K5 og indeholder datoen 1. september 2018.

Forklaring

Bemærk: Dette eksempel forudsætter, at startdatoen gives som den første i måneden. Se nedenfor for en formel, der dynamisk returnerer den første dag i den aktuelle måned.

Med layoutet af gitteret som vist er hovedproblemet at beregne datoen i den første celle i kalenderen (B6). Dette gøres med denne formel:

=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)

Denne formel viser søndagen før den første dag i måneden ved hjælp af VÆLG-funktionen til at "rulle tilbage" det rigtige antal dage til den foregående søndag. VÆLG fungerer perfekt i denne situation, fordi det tillader vilkårlige værdier for hver ugedag. Vi bruger denne funktion til at rulle nul dage tilbage, når den første dag i måneden er en søndag. Flere detaljer om dette problem findes her.

Med den første dag etableret i B6 øges de andre formler i gitteret simpelthen den foregående dato med en, der begynder med formlen i C6:

=IF(B6"",B6,$H5)+1

Denne formel tester cellen straks til venstre for en værdi. Hvis der ikke findes nogen værdi, trækker den en værdi fra kolonne H i rækken ovenfor. Bemærk $ H5 er en blandet reference for at låse kolonnen, da formlen kopieres gennem hele gitteret. Den samme formel anvendes i alle celler undtagen B6.

Regler for betinget formatering

Kalenderen bruger betingede formateringsformler, skift formatering for at skygge forrige og fremtidige måneder og for at fremhæve den aktuelle dag. Begge regler anvendes på hele nettet. For forrige og næste måned er formlen:

=MONTH(B6)MONTH(start)

For den aktuelle dag er formlen:

=B6=TODAY()

For flere detaljer, se: Betinget formatering med formler (10 eksempler)

Kalenderoverskrift

Kalendertitlen - måned og år - beregnes med denne formel i celle B4:

=start

Formateret med det brugerdefinerede nummerformat "mmmm åååå". For at centrere titlen over kalenderen har området B4: H4 vandret justering indstillet til "centreret på tværs af markering". Dette er en bedre mulighed end at flette celler, da det ikke ændrer gitterstrukturen i regnearket.

Evig kalender med aktuel dato

For at oprette en kalender, der opdateres automatisk baseret på den aktuelle dato, kan du bruge formel som denne i K5:

=EOMONTH(TODAY(),-1)+1

Denne formel får den aktuelle dato med TODAY-funktionen og får derefter den første dag i den aktuelle måned ved hjælp af EOMONTH-funktionen. Udskift I DAG () med en given dato for at oprette en kalender i en anden måned. Flere detaljer om, hvordan EOMONTH fungerer her.

Trin til at oprette

  1. Skjul gitterlinjer (valgfrit)
  2. Føj en kant til B5: H11 (7R x 7C)
  3. Navngiv K5 "start" og indtast dato som "1. september 2018"
  4. Formel i B4 = start
  5. Format B4 som "mmmm åååå"
  6. Vælg B4: H4, indstil justering til "Centrer på tværs af valg"
  7. I område B5: H5, indtast dagforkortelser (SMTWTFS)
  8. Formel i B6 = start-VÆLG (WEEKDAY (start), 0,1,2,3,4,5,6)
  9. Vælg B6: H11, anvend brugerdefineret nummerformat "d"
  10. Formel i C6 = IF (B6 "", B6, $ H5) +1
  11. Kopier formel i C6 til de resterende celler i kalendergitteret
  12. Tilføj forrige / næste betingede formateringsregel (se formlen ovenfor)
  13. Tilføj aktuel betinget formateringsregel (se formlen ovenfor)
  14. Skift dato i K5 til en anden "første måned" -dato, der skal testes
  15. For evig kalender, formel i K5 = EOMONTH (I DAG (), - 1) +1

Interessante artikler...