
Všeobecný vzorec
(=INDEX(range,MATCH(FALSE,ISBLANK(range),0)))
Zhrnutie
Ak chcete získať prvú neprázdnu hodnotu (text alebo číslo) v rozsahu jedného stĺpca, môžete použiť maticový vzorec založený na funkciách INDEX, MATCH a ISBLANK. V zobrazenom príklade je vzorec v D10:
(=INDEX(B3:B11,MATCH(FALSE,ISBLANK(B3:B11),0)))
Poznámka: toto je vzorec poľa a musí byť zadaný pomocou klávesovej skratky Control-Shift-Enter.
Vysvetlenie
Podstata problému je teda táto: Chceme získať prvú neprázdnu bunku, ale nemáme k dispozícii priamy spôsob, ako to urobiť v programe Excel. Mohli by sme použiť VLOOKUP so zástupným znakom * (pozri odkaz nižšie), ale bude to fungovať iba pre text, nie pre čísla.
Potrebujeme teda vybudovať potrebnú funkčnosť vnorením vzorcov. Jedným z spôsobov, ako to urobiť, je použiť funkciu poľa, ktorá „testuje“ bunky a vráti pole hodnôt TRUE / FALSE, ktoré môžeme vložiť do funkcie MATCH.
Pri práci zvnútra von funkcia ISBLANK vyhodnotí bunky v rozsahu B3: B11 a vráti pole, ktoré vyzerá takto:
(TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Každá FALSE predstavuje bunku v rozsahu, ktorý nie je prázdny.
Ďalej MATCH vyhľadá FALSE vo vnútri poľa a vráti pozíciu prvej nájdenej zhody, v tomto prípade 2. Vzorec v príklade teraz vyzerá takto:
(=INDEX(B3:B11,2,0)))
Nakoniec prevezme funkciu INDEX a získa hodnotu na pozícii 2 v poli, čo je 10.
Prvá nenulová hodnota dĺžky
Ak chcete získať prvú hodnotu nenulovej dĺžky, môžete zahrnúť funkciu LEN takto:
(=INDEX(range,MATCH(TRUE,LEN(range)>0,0)))
Prvá číselná hodnota
Ak chcete získať prvú číselnú hodnotu v zozname, môžete upraviť vzorec tak, aby používal funkciu ISNUMBER, a potom zmeniť logiku tak, aby zodpovedala hodnote TRUE namiesto FALSE:
(=INDEX(range,MATCH(TRUE,ISNUMBER(range),0)))
Toto je tiež vzorec poľa a musí byť zadaný pomocou klávesov Control + Shift + Enter.