
Generisk formel
(=TEXTJOIN(", ",TRUE,IF(dates>=start,IF(dates<=end,holidays,""),"")))
Resumé
For at angive helligdage, der finder sted mellem to datoer, kan du bruge en formel baseret på funktionerne TEXTJOIN og IF.
I det viste eksempel er formlen i F8:
(=TEXTJOIN(", ",TRUE,IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")))
Dette er en matrixformel og skal indtastes med kontrol + skift + enter.
Forklaring
På et højt niveau bruger denne formel en indlejret IF-funktion til at returnere en række helligdage mellem to datoer. Denne matrix behandles derefter af TEXTJOIN-funktionen, som konverterer arrayet til tekst ved hjælp af et komma som afgrænser.
Arbejder indefra og ud genererer vi en række matchende helligdage ved hjælp af en indlejret IF:
IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")
Hvis datoerne i B4: B12 er større end eller lig med startdatoen i F5, og hvis datoerne i B4: B12 er mindre end eller lig slutdatoen i F6, returnerer IF en række helligdage. I det viste eksempel ser listen sådan ud:
(""; ""; "Præsidenternes dag"; "Mindedag"; ""; ""; ""; ""; "")
Dette array leveres derefter til TEXTJOIN funktion som tekst1 argument, hvor separatortegnet er sat til "", og ignore_empty er SAND. Funktionen TEKST JOIN behandler elementerne i arrayet og returnerer en streng, hvor hvert ikke-tomt element adskilles med et komma plus mellemrum.
Bemærk: TEXTJOIN-funktionen er en ny funktion tilgængelig i Office 365 og Excel 2019.