„Excel“ formulė: nurodykite atostogas tarp dviejų datų

Turinys

Bendroji formulė

(=TEXTJOIN(", ",TRUE,IF(dates>=start,IF(dates<=end,holidays,""),"")))

Santrauka

Norėdami išvardyti atostogas, vykstančias tarp dviejų datų, galite naudoti formulę, pagrįstą TEXTJOIN ir IF funkcijomis.

Parodytame pavyzdyje formulė F8 yra:

(=TEXTJOIN(", ",TRUE,IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")))

Tai yra masyvo formulė, kurią reikia įvesti su „Control“ + „Shift“ + „Enter“.

Paaiškinimas

Aukštame lygyje ši formulė naudoja įdėtą IF funkciją, kad grąžintų atostogų masyvą tarp dviejų datų. Tada šį masyvą apdoroja funkcija TEXTJOIN, kuri masyvą paverčia tekstu, naudodama kablelį kaip atskyriklį.

Dirbdami iš vidaus, sukuriame derančių atostogų masyvą naudodami įdėtą IF:

IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")

Jei B4: B12 datos yra didesnės arba lygios F5 pradžios datai ir jei B4: B12 datos yra mažesnės arba lygios F6 pabaigos datai, IF grąžina atostogų masyvą. Parodytame pavyzdyje sąrašas atrodo taip:

(""; ""; "Prezidentų diena"; "Atminimo diena"; ""; ""; ""; ""; "")

Ši matrica yra tada pristatytas TEXTJOIN veikti kaip Text1 argumentu, kur skyriklis yra nustatytas į "", ir ignore_empty yra tiesa. Funkcija TEXT JOIN apdoroja masyvo elementus ir pateikia eilutę, kurioje kiekvieną ne tuščią elementą skiria kablelis ir tarpas.

Pastaba: TEXTJOIN funkcija yra nauja funkcija, pasiekiama „Office 365“ ir „Excel 2019“.

Įdomios straipsniai...