
Formuła ogólna
(=INDEX(range,MATCH(FALSE,ISBLANK(range),0)))
Podsumowanie
Aby uzyskać pierwszą niepustą wartość (tekst lub liczbę) w zakresie jednokolumnowym, można użyć formuły tablicowej opartej na funkcjach INDEKS, PODAJ.POZYCJĘ i CZY.PUSTA. W pokazanym przykładzie formuła w D10 to:
(=INDEX(B3:B11,MATCH(FALSE,ISBLANK(B3:B11),0)))
Uwaga: to jest formuła tablicowa i należy ją wprowadzić za pomocą kombinacji Control-Shift-Enter.
Wyjaśnienie
Istota problemu jest więc taka: chcemy uzyskać pierwszą niepustą komórkę, ale nie mamy bezpośredniego sposobu, aby to zrobić w programie Excel. Moglibyśmy użyć funkcji WYSZUKAJ.PIONOWO z symbolem wieloznacznym * (patrz link poniżej), ale będzie to działać tylko w przypadku tekstu, a nie liczb.
Musimy więc zbudować potrzebną nam funkcjonalność, zagnieżdżając formuły. Sposobem na to jest użycie funkcji tablicowej, która „testuje” komórki i zwraca tablicę wartości PRAWDA / FAŁSZ, które możemy wprowadzić do funkcji PODAJ.POZYCJĘ.
Działając od wewnątrz, funkcja ISBLANK ocenia komórki w zakresie B3: B11 i zwraca tablicę, która wygląda następująco:
(TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Każda FAŁSZ reprezentuje komórkę w zakresie, która nie jest pusta.
Następnie funkcja MATCH szuka FALSE w tablicy i zwraca pozycję pierwszego znalezionego dopasowania, w tym przypadku 2. W tym momencie formuła w przykładzie wygląda teraz następująco:
(=INDEX(B3:B11,2,0)))
Na koniec funkcja INDEKS przejmuje kontrolę i pobiera wartość z pozycji 2 w tablicy, czyli 10.
Pierwsza niezerowa wartość długości
Aby uzyskać pierwszą niezerową wartość długości, możesz dołączyć funkcję LEN w następujący sposób:
(=INDEX(range,MATCH(TRUE,LEN(range)>0,0)))
Pierwsza wartość liczbowa
Aby uzyskać pierwszą wartość liczbową z listy, możesz dostosować formułę, aby używała funkcji ISNUMBER, a następnie zmienić logikę na PRAWDA zamiast FAŁSZ:
(=INDEX(range,MATCH(TRUE,ISNUMBER(range),0)))
Jest to również formuła tablicowa i należy ją wprowadzić za pomocą kombinacji Ctrl + Shift + Enter.