Excel vzorec: Získejte první neprázdnou hodnotu v seznamu -

Obsah

Obecný vzorec

(=INDEX(range,MATCH(FALSE,ISBLANK(range),0)))

souhrn

Chcete-li získat první neprázdnou hodnotu (text nebo číslo) v rozsahu jednoho sloupce, můžete použít maticový vzorec založený na funkcích INDEX, MATCH a ISBLANK. V zobrazeném příkladu je vzorec v D10:

(=INDEX(B3:B11,MATCH(FALSE,ISBLANK(B3:B11),0)))

Poznámka: toto je maticový vzorec a musí být zadán pomocí Control-Shift-Enter.

Vysvětlení

Podstata problému je tedy tato: Chceme získat první neprázdnou buňku, ale nemáme přímý způsob, jak to udělat v aplikaci Excel. Mohli bychom použít VLOOKUP se zástupným znakem * (viz odkaz níže), ale to bude fungovat pouze pro text, ne pro čísla.

Takže musíme vytvořit funkčnost, kterou potřebujeme, pomocí vnořovacích vzorců. Cestou k tomu je použít funkci pole, která „testuje“ buňky a vrátí pole hodnot TRUE / FALSE, které můžeme přenést do funkce MATCH.

Při práci zevnitř ven funkce ISBLANK vyhodnotí buňky v rozsahu B3: B11 a vrátí pole, které vypadá takto:

(TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)

Každá FALSE představuje buňku v rozsahu, který není prázdný.

Dále MATCH hledá FALSE uvnitř pole a vrátí pozici první nalezené shody, v tomto případě 2. V tomto okamžiku nyní vypadá vzorec v příkladu takto:

(=INDEX(B3:B11,2,0)))

Nakonec převezme funkci INDEX a získá hodnotu na pozici 2 v poli, což je 10.

První nenulová hodnota délky

Chcete-li získat první hodnotu nenulové délky, můžete zahrnout funkci LEN takto:

(=INDEX(range,MATCH(TRUE,LEN(range)>0,0)))

První číselná hodnota

Chcete-li získat první číselnou hodnotu v seznamu, můžete upravit vzorec tak, aby používal funkci ISNUMBER, a poté změnit logiku tak, aby odpovídala hodnotě TRUE místo FALSE:

(=INDEX(range,MATCH(TRUE,ISNUMBER(range),0)))

Toto je také maticový vzorec a musí být zadán pomocí kláves Control + Shift + Enter.

Dobré odkazy

Najít první neprázdnou položku v seznamu (chandoo)

Zajímavé články...