2 personlige Links
Selvom dette er et Excel tips - er metoden den samme i LibreOffice ! Husk at læse posten til ende !
I dansk LibreOffice Calc vil formlen se sådan ud:
=DATO(B2;A2;1+7*n)-UGEDAG(DATO(B2;A2;8-xday))
hvor:
B2 er året
A2 er er måneden (som tal)
n er (ordens)tallet for den søgte ugedag (n'te xday i måneden)
xday repræsenterer ugedagen (1=søndag til 7=lørdag)
Folketingets åbning (1. tirsdag i oktober) kan altså for 2016 findes med:
=DATO(2016;10;1+7*1)-UGEDAG(DATO(2016;10;8-3))
Bemærk også tipset til at finde f.eks. den sidste søndag i en måned !
Så hvornår sommertid slutter i 2016 (Sidste søndag i oktober) findes med:
=DATO(2016;10+1;1+7*1)-UGEDAG(DATO(2016;10+1;8-1))-7
- her er for tydelighedens skyld fulgt hele algoritmen, der herefter kan sammentrækkes til:
=DATO(2016;11;1)-UGEDAG(DATO(2016;11;7))
I mit indlæg om Dynamiske referencer - hent data fra varierende regneark refereres til en kalender skabelon
Men i den skabelon er ark benævnt med romertal for årets måneder !
Så for at lave dynamisk reference til de enkelte ark i den skabelon, må man anvende funktionen ROMERTAL
, der konverterer decimaltal til romertal; sammenstillet med MÅNED
, der udtrækker månedsnummeret af en dato; og IDAG
der giver den aktuelle dato.
Så får man følgende:
=ROMERTAL(MÅNED(IDAG()))
Ovenstående formel giver aktuel måned i romertal. For eksempel april som IV og oktober som X.
Så hvis der er brugt romertal, for at angive månedsark, kan der refereres sådan:
=INDIREKTE("'"&ROMERTAL(MÅNED(IDAG()))&"'.A1")
I kalenderskabelonen blev romertal anvendt af hensyn til L10N kravet.
På hjemmesiden Excel-regneark.dk læste jeg om dynamiske referencer.
Jeg ville finde en måde, at referere til det ark (arkfane), som indholdt den aktuelle måned - Når jeg havde lavet en kalender, med årets måneder fordelt på hver sit ark.
Se f.eks. Perpetual Calendar that adapt to the local language eller den danske Evighedskalender
Funktionen INDIREKTE
- ( INDIRECT
på engelsk) kan konvertere en tekststreng til en henvisning.
Omvendt kan funktionen TEKST
konvertere et tal til tekst i henhold til et givet format.
Funktionen IDAG
giver komputerens aktuelle dato.
Så med
=TEKST(IDAG();"MMMM")
får man således returneret navnet på den aktuelle måned (som tekst!).
Dette kan så bruges som reference til arkfanen med månedens navn:
=INDIREKTE("'"&TEKST(IDAG();"MMMM")&"'.A1")
der refererer til celle A1 i arket med månedens navn !