
Sammendrag
Du kan sette opp dynamisk kalendergitter på et Excel-regneark med en serie formler, som forklart i denne artikkelen. I eksemplet vist er formelen i B6:
=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)
der "start" er det navngitte området K5, og inneholder datoen 1. september 2018.
Forklaring
Merk: Dette eksemplet forutsetter at startdatoen blir gitt som den første i måneden. Se nedenfor for en formel som vil returnere dynamisk den første dagen i den gjeldende måneden.
Med rutenettet som vist, er hovedproblemet å beregne datoen i den første cellen i kalenderen (B6). Dette gjøres med denne formelen:
=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)
Denne formelen viser søndagen før den første dagen i måneden ved å bruke VELG-funksjonen til å "rulle tilbake" riktig antall dager til forrige søndag. VALG fungerer perfekt i denne situasjonen, fordi det tillater vilkårlige verdier for hver ukedag. Vi bruker denne funksjonen til å rulle tilbake null dager når den første dagen i måneden er en søndag. Flere detaljer om dette problemet er gitt her.
Med den første dagen som ble etablert i B6, øker de andre formlene i rutenettet bare forrige dato med en, og begynner med formelen i C6:
=IF(B6"",B6,$H5)+1
Denne formelen tester cellen umiddelbart til venstre for en verdi. Hvis det ikke blir funnet noen verdi, trekker den en verdi fra kolonne H i raden ovenfor. Merknad $ H5 er en blandet referanse for å låse kolonnen når formelen kopieres gjennom rutenettet. Den samme formelen brukes i alle celler unntatt B6.
Betingede formateringsregler
Kalenderen bruker betingede formateringsformler for å endre formatering for å skygge forrige og fremtidige måneder, og for å markere dagens dag. Begge reglene brukes på hele rutenettet. For forrige og neste måned er formelen:
=MONTH(B6)MONTH(start)
For dagens dag er formelen:
=B6=TODAY()
For mer informasjon, se: Betinget formatering med formler (10 eksempler)
Kalenderoverskrift
Kalendertittelen - måned og år - beregnes med denne formelen i celle B4:
=start
Formatert med det tilpassede tallformatet "mmmm åååå". For å sentrere tittelen over kalenderen, har området B4: H4 horisontal justering satt til "midt på tvers av valget". Dette er et bedre alternativ enn å slå sammen celler, siden det ikke endrer rutenettstrukturen i regnearket.
Evig kalender med gjeldende dato
For å lage en kalender som oppdateres automatisk basert på gjeldende dato, kan du bruke formelen slik i K5:
=EOMONTH(TODAY(),-1)+1
Denne formelen får den gjeldende datoen med TODAY-funksjonen, og får deretter den første dagen i den gjeldende måneden ved hjelp av EOMONTH-funksjonen. Erstatt DAG () med en gitt dato for å lage en kalender i en annen måned. Flere detaljer om hvordan EOMONTH fungerer her.
Fremgangsmåte for å lage
- Skjul rutenettlinjer (valgfritt)
- Legg til en kant til B5: H11 (7R x 7C)
- Navn K5 "start" og skriv inn dato som "1. september 2018"
- Formel i B4 = start
- Format B4 som "mmmm åååå"
- Velg B4: H4, sett justeringen til "Sentrer på tvers av valget"
- I område B5: H5, skriv inn dagsforkortelser (SMTWTFS)
- Formel i B6 = start-VELG (UKEDAG (start), 0,1,2,3,4,5,6)
- Velg B6: H11, bruk tilpasset nummerformat "d"
- Formel i C6 = IF (B6 "", B6, $ H5) +1
- Kopier formel i C6 til gjenværende celler i kalendergitteret
- Legg til forrige / neste betinget formateringsregel (se formel ovenfor)
- Legg til gjeldende betinget formateringsregel (se formel ovenfor)
- Endre dato i K5 til en annen "første måned" -dato for å teste
- For evigvarende kalender, formel i K5 = EOMONTH (I DAG (), - 1) +1