Excel-formel: Dynamisk kalendernett -

Innholdsfortegnelse

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

  1. Skjul rutenettlinjer (valgfritt)
  2. Legg til en kant til B5: H11 (7R x 7C)
  3. Navn K5 "start" og skriv inn dato som "1. september 2018"
  4. Formel i B4 = start
  5. Format B4 som "mmmm åååå"
  6. Velg B4: H4, sett justeringen til "Sentrer på tvers av valget"
  7. I område B5: H5, skriv inn dagsforkortelser (SMTWTFS)
  8. Formel i B6 = start-VELG (UKEDAG (start), 0,1,2,3,4,5,6)
  9. Velg B6: H11, bruk tilpasset nummerformat "d"
  10. Formel i C6 = IF (B6 "", B6, $ H5) +1
  11. Kopier formel i C6 til gjenværende celler i kalendergitteret
  12. Legg til forrige / neste betinget formateringsregel (se formel ovenfor)
  13. Legg til gjeldende betinget formateringsregel (se formel ovenfor)
  14. Endre dato i K5 til en annen "første måned" -dato for å teste
  15. For evigvarende kalender, formel i K5 = EOMONTH (I DAG (), - 1) +1

Interessante artikler...