
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.