I denne artikel ser vi, hvordan du opretter en Excel kalender med en enkelt formel. Specifikt vil vi lave en formel, der viser dagene i enhver måned i et grafisk kalenderformat. Vores grafiske kalender viser dagene i den angivne måned i 7 kolonner (søndag til lørdag) og inkluderer en række for hver uge. Nøglefunktionen i vores formel er SEKVENS, og det er den primære årsag til artiklen. De andre funktioner, der bruges i formlen, hjælper med at sikre, at dagene står i kø i den korrekte dagkolonne.
Formål – Excel-kalender
Inden vi kommer for langt, så lad os tage et kig på vores ønskede resultat. Vi vil gerne have, at brugeren kan indtaste en hvilken som helst måned og år, sådan her:
Og vi vil gerne have kalenderen vist i vores regneark sådan:
Når en bruger indtaster en anden måned eller et andet år, skal Excel automatisk opdaterer kalenderen.
Historie – Kalenderformel
Vi opretter vores kalender ved hjælp af følgende tre trin:
- Opsætning
- Formel
- Kosmetik
Lad os komme i gang.
Bemærk: Ikke alle versioner af Excel indeholder funktionen SEKVENS. Den hurtigste måde at afgøre, om en version af Excel understøtter SEKVENS-funktionen, er ved at skrive =SEK i en hvilken som helst celle og se, om SEKVENS vises i listefeltet.
Opsætning
Indtastningsceller
Først skal vi konfigurere inputcellerne. Vi har to måder at gøre dette på. Vi kan give brugeren mulighed for at indtaste et månedsnummer og et årstal i forskellige celler eller få dem til at indtaste en dato i en enkelt celle. Uanset hvad er fint.
Hvis du vil have dem til at indtaste måned og år separat, skal du oprette nogle etiketter som Måned og År og angive et par inputceller ved siden af dem. Hvis det ønskes, kan du anvende inputcelletypografien (Hjem Typografi -> Celletypografi) for at identificere dem.
En anden mulighed er at give brugeren mulighed for at indtaste en dato, som denne:
Det vigtigste at bemærke er, at for at den nedenstående formel skal fungere korrekt, skal den indtastede dato være dag 1 i måneden, f.eks. 1-5-2025. Hvis brugeren indtaster en anden dag end den første dag i måneden, vil formlen herunder give uventede resultater. Du kan løse dette problem ved at ændre formlen, anvende datavalidering eller bruge andre metoder. Men i denne artikel vil vi bare holde det enkelt og give brugeren mulighed for at indtaste måned og år separat.
Etiketter
Dernæst skal vi konfigurere de grundlæggende kalenderoverskrifter for at vise måneden og året sammen med ugedagene. Til sidst, efter at vi har tilføjet kosmetik, vil vi gerne have, at de ser sådan ud:
På dette tidspunkt i processen er vi ikke bekymrede for typografi og formatering, så det vil se sådan ud nu:
Du vil bruge en formel i B10 til at vise datoen. Hvis du valgte at give brugeren en enkelt datainputcelle (lad os sige celle C5), ville du bruge en direkte cellereference som denne:
=C5
Hvis du valgte at give brugeren separate input celler for år og måned (f.eks. i celler C6 og C5), ville du bruge DATE funktionen sådan:
=DATO(C6;C5;1)
Vi bruger 1 til dags-argumentet, så det returnerer den første dag i måneden.
Til dagsetiketterne indtastede jeg bare M, T, O, T, F, L og S manuelt. Du kan også indtaste tre bogstavs forkortelser som Man eller andre etiketter som ønsket.
Med vores opsætning fuldført, er det tid til at oprette vores Excel-kalender med en formel.
Excel kalenderformel
Da dette er Excel, er der mange måder at skrive denne kalenderformel på, og den præsenterede løsning er kun en af mulighederne.
SEKVENS
Kernen i denne formel ligger i SEKVENS-funktionen. Funktionen SEKVENS returnerer en række tal. Lad os starte med at se på de to første argumenter. De fortæller funktionen SEKVENS, hvor mange rækker og kolonner der skal oprettes. For eksempel vil følgende formel oprette et område på 6 rækker og 7 kolonner:
=SEKVENS(6;7)
Vi trykker enter, og der oprettes dette output:
I virkeligheden er dette temmelig tæt på det, vi ønsker i sidste ende. Men hvordan sikrer vi, at dagnumrene vises i de korrekte kolonner for hver ugedage? Nå, hvis vi er i stand til at få den første dag i måneden til at stå i den rigtige kolonne, vil de resterende dage naturligvis falde på en række herefter. Så lad os få den første dag i måneden til at blive vist i den korrekte ugedagskolonne.
UGEDAG
Til at begynde med skal vi kunne bestemme ugedagen for den første dag i måneden. Heldigvis har Excel UGEDAG-funktionen, der gør netop det. Vi giver den en dato, og den fortæller os dens ugedagsværdi. Da cellen vi bruger til at vise vores kalenderoverskrift B10 allerede indeholder datoen med den første dag i måneden, kan vi bruge dette:
=UGEDAG(A10)
Som standard returnerer den 1, når ugedagen er søndag; 2 for mandag; og så videre. Der er et valgfrit andet argument, du kan bruge, hvis du vil ændre værdien, der returneres baseret på dagen.
Nu hvor vi ved, hvordan vi bestemmer ugedagen for den første dag i måneden, skal vi bruge disse oplysninger til at opdatere den originale SEKVENS-funktion.
VÆLG
Det tredje argument i SEKVENS-funktionen giver os mulighed for at angive startnummeret. For eksempel, hvis vi ønskede, at sekvensen skulle begynde med tallet 10 i stedet for standard 1, kunne vi bruge dette:
=SEKVENS(6;7;10)
Dette ville skabe dette interval:
I vores tilfælde ønsker vi, at sekvensen starter med det tal, der er nødvendigt for at sikre, at dag 1 vises i den rigtige kolonne.
For eksempel, hvis den første dag i måneden er mandag, vil vi have, at vores sekvens starter med 1, så tallet 1 vises i den første celle (mandagskolonnen). Men hvis den første dag i måneden falder på en tirsdag, vil vi have, at sekvensen der begynder med 0 så 1 ender i den anden celle (tirsdagskolonnen). Hvis den første dag i måneden falder på en onsdag, vil vi have, at sekvensen begynder med -1, så 0 og ender i den tredje celle med 1 (onsdagskolonnen). Og så videre. Der er flere måder at gribe dette an på. Den mulighed, vi vil diskutere, bruger funktionen VÆLG.
Følgende formel vil returnere de resultater, vi har brug for. Den vil nemlig returnere 2, når hverdagen er mandag; -1 når hverdagen er mandag; -2 når hverdagen er tirsdag; -3 når det er en onsdag; og så videre:
VÆLG(UGEDAG(A10);2;1;0;-1;-2;-3;-4)
Nu, da dette beregner den korrekte sekvens startværdi, kan vi bruge det som det tredje argument for SEKVENS-funktionen, sådan her:
=SEKVENS(6;7;VÆLG(UGEDAG(A10);2;1;0;-1;-2;-3;-4))
Vi trykker Enter, og vupti … vores Excel-kalenderformel ser godt ud:
Dette er perfekt, fordi dag 1 vises i den korrekte kolonne.
Med vores dage i de rigtige kolonner, er der kun lidt kosmetik tilbage.
Kosmetik
Vi skjuler de dagnumre, der ikke er i den aktuelle måned, og farver kalenderoverskrifterne.
Skjul dagnumre
For at skjule de dagnumre, der ikke er i den aktuelle måned, anvender vi betinget formatering. Vi opretter to separate regler … en til at skjule tallene mindre end 1 og en anden til at skjule tallene større end den sidste dag i måneden.
Vi markerer hele kalenderområdet og derefter Hjem -> Betinget formatering -> Regler for fremhævning af celler -> Mindre end. I den resulterende dialogboks indtaster vi 1 og vælger Brugerdefineret format …
I den resulterende dialogboks Formater celler vælger vi Brugerdefineret og indtaster derefter tre semikoloner:
Vupti:
Lad os nu skjule de tal, der er større end den sidste dag i måneden. Hjem -> Betinget formatering -> Regler for fremhævning af celler -> Større end. Derefter indtaster vi formlen vist i dialogboksen herunder, som dynamisk regner ud dagnummeret i slutningen af måneden (sidste dag i måneden):
Vi bruger de samme tre semikolon – Brugerdefineret format og vupti:
Da vores dage ser ud som ønsket, kan vi nu rette kalenderoverskrifterne.
Overskrifter
Lad os først justere dato formatet for vores kalenderoverskriftscelle B10. I stedet for at vise et kort datoformat, f.eks. 1-1-2025, skal det vise månedsnavnet stavet. Vi gør dette ved at markere celle B10 og åbne dialogboksen Format celler. Derefter vælger vi Brugerdefineret og indtaster mmmm åååå sådan:
Vi kan derefter vælge alle cellerne i overskriftsrækken og åbne dialogboksen Formater celler igen. Klik på Justering -> Centrer over markeringen -> OK. Endelig kan vi anvende enhver yderligere ønsket formatering, såsom at anvende en celletypografi, fed skrifttype eller større skriftstørrelse.
Hvis du ønsker det, kan du anvende celletypografier på dagsetiketterne og farvelæg cellerne efter eget ønske. Vi kan også anvende celletypografi på søndags- og lørdagskolonnerne, hvis det ønskes. Den resulterende kalender ser sådan ud:
Det var det!
Nu kan brugeren ændre måned og år for kalenderen. Januar 2022 ville se sådan ud:
Det er ikke den nemmeste opgave, men hvis du kører den igennem et par gange, tror jeg det dæmrer!
Konklusion
Hvis du har forslag til, hvordan du forbedrer denne Excel-kalenderformel eller har alternative formler, kan du dele det ved at sende en kommentar herunder … tak!