Excel-formel: Listeferie mellem to datoer -

Indholdsfortegnelse

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.

Interessante artikler...