2 personlige Links
Ready to kick off 2025 with organisation and style? Discover the secrets to crafting a Dynamic Calendar in Excel that keeps your schedule on point! 🗓️ Let's dive into the process together.
Her er nogle små fif til dannelse af kalender.
In this Excel tutorial, you'll learn how to calculate the actual working days between a start and end date while excluding weekends and holidays. We'll cover how to use NETWORKDAYS, NETWORKDAYS.INTL, and WORKDAYS in Excel. With NETWORKDAYS, we can easily calculate benefit accruals or eligibility based on actual days worked in a period of time, and ONLY consider the days that should count. You'll learn how to exclude weekends (even if weekends are not Saturday/Sunday) and holidays, and also learn a special way to only count days worked (like only Monday, Wednesday, Friday, if applicable). Then we'll take a look at the WORKDAYS function that allows us to easily calculate a date that is before or after a starting date based on the number of working days. This is useful if you are calculating invoice due dates based on project hours, or expected delivery times, or even the end of a probationary period.
-ckn- :
As I now only works Mo, We, Fr, in a week - there's here also a way to calculate workingdays.
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 !
Den sammensatte funktion: =STORT.FORBOGSTAV(TEKST(D10;"MMMM YYYY")) viser sig at give problemer med parametrene, hvis den skal bruges med L10N (Lokalisation).
I mit arbejde med en kalender skabelon i Calc, har jeg forsøgt at gøre skabelonen international. Lidt forklaring:
Der er i skabelonen oprettet ét ark per måned; hvor jeg tænkte at have en overskrift med Månedsnavnet og året. Ved at udnytte det indbyggede dato format i Calc, kan dette gøres internationalt, da der til lokaliseringen er oversat månedernes navne. Cellen D10 indholder en dato i den pågældende måned. Herfra kan udtrækkes måned og år.
Én måde at gøre dette på er blot at kopiere indholdet af celle D10, og så formatere det til 'kun' at vise måned og år.
Men på nogle sprog - heriblandt dansk - skrives månedernes navne IKKE med stort begyndelsesbogstav. Men da det nu skulle være en overskrift, ville det være mere korrekt at starte med stort.
Det kan lade sig gøre ved at konvertere indholdet af cellen D10 til tekst; men så formatere til kun måned og årstal: =Tekst(D10;"MMMM YYYY")
Dernæst kan teksten formateres til Stort.Forbogstav.
Men desværre er formatkoderne også lokaliseret på visse sprog, så f.eks. på tysk skal funktionen bruge formatkoden JJJJ for året. Hvilket ville svare til en dansk ÅÅÅÅ - men her er formatkoden bevaret til YYYY, og derfor virker det på dansk. Skal det virke på tysk, skal Y'erne udskiftes med J.
Vil man bevare målsætningen om en international skabelon, må man vælge første løsning med at formatere CELLEN til 'kun' at vise måned og år. (Celle formateringen ser ud til at blive oversat) Og så må man leve med, at der ikke er stort begyndelsesbogstav i overskriften på visse sprog.
Det er konstateret - i hvert fald på ældre versioner af LO (Læs: Før version 5.0) - giver funktionen ANTAL.ARBEJDSDAGE problemer ved reference til navngivet område for helligdage.
Problemet er, at et navngivet område kan have flere kolonner. Ældre versioner bliver forvirret og returnerer err: 502
Refereres til enkeltkolonne - også med navngivning - virker funktionen.
Here's a way to calculate amount of a particular weekdays in a period. It's with reference to Excel but works as well in LibreOffice Calc.
I've used it for calculating amount of saturdays in a year - and for each month.
År er et heltal mellem 1583 og 9957 eller mellem 0 og 99 (Der så, som standard, bliver fortolket som år i perioden 1930-2029).
LibreOffice baserer dato og tid på den internationale standard ISO8601.
Kalenderen er baseret på den Gregorianske kalender, der blev indført af Pave Gregor XIII, d. 4. okt. 1582 (Juliansk kalender) som blev sat lige med 15. oktober 1582 i den Gregorianske kalender. Altså første hele år efter den Gregorianske kalender er 1583.
Indført i Danmark 1700. Hvor 18. februar (Juliansk) blev 1. marts 1700 i Gregoriansk kalender
I følge https://en.wikipedia.org/wiki/ISO_8601 :
The standard uses the Gregorian calendar, which serves as an international standard for civil use.[8]
ISO 8601 fixes a reference calendar date to the Gregorian calendar of 20 May 1875 as the date the Convention du Mètre (Metre Convention) was signed in Paris. However, ISO calendar dates before the Convention are still compatible with the Gregorian calendar all the way back to the official introduction of the Gregorian calendar on 1582-10-15. Earlier dates, in the proleptic Gregorian calendar, may be used by mutual agreement of the partners exchanging information. The standard states that every date must be consecutive, so usage of the Julian calendar would be contrary to the standard (because at the switchover date, the dates would not be consecutive).
My contribution to the competition for templates for possible incorporation to LibreOffice 4.4
A Calc template with at calendar, for a given year. One sheet per month. It automatically localizes to installed system.
It's now also available at the official LibreOffice Template catalogue : http://templates.libreoffice.org/template-center/perpetual-calendar
Ny placering: https://extensions.libreoffice.org/templates/perpetual-calendar
Yhe Writer Template for LibreOffice Themed Calendar, that inspired me to make at Calc calendar in same format, that can be used for all years.
This template is no longer available at LibreOffice Extensions and Templates.
The author made a similar template: 2014 LibreOffice themed calendar - with some USA holidays - letter size paper that is very much same design.
Though made with american standards. E.g letter size paper.