Generisk formel
(=INDEX(range,MATCH(FALSE,ISBLANK(range),0)))
Sammendrag
For å få den første ikke-tomme verdien (tekst eller nummer) i en i en kolonne, kan du bruke en matriseformel basert på INDEKS-, MATCH- og ISBLANK-funksjonene. I eksemplet vist er formelen i D10:
(=INDEX(B3:B11,MATCH(FALSE,ISBLANK(B3:B11),0)))
Merk: dette er en matriseformel og må angis med Control-Shift-Enter.
Forklaring
Så kjernen i problemet er dette: Vi ønsker å få den første ikke-tomme cellen, men vi har ikke en direkte måte å gjøre det i Excel. Vi kan bruke VLOOKUP med et jokertegn * (se lenken nedenfor), men det fungerer bare for tekst, ikke tall.
Så vi må bygge funksjonaliteten vi trenger ved å hekke formler. På vei til å gjøre det er å bruke en matrisefunksjon som "tester" celler og returnerer en matrise med SANTE / FALSE verdier som vi kan mate inn i MATCH-funksjonen.
ISBLANK-funksjonen fungerer fra innsiden og ut, og evaluerer cellene i området B3: B11 og returnerer en matrise som ser slik ut:
(TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Hver FALSE representerer en celle i området som ikke er tomt.
Deretter ser MATCH etter FALSE inne i matrisen og returnerer posisjonen til den første kampen som ble funnet, i dette tilfellet 2. På dette punktet ser formelen i eksemplet nå slik ut:
(=INDEX(B3:B11,2,0)))
Til slutt tar INDEX-funksjonen over og får verdien i posisjon 2 i matrisen, som er 10.
Første lengdeverdi som ikke er null
For å få den første lengdeverdien som ikke er null, kan du inkludere LEN-funksjonen slik:
(=INDEX(range,MATCH(TRUE,LEN(range)>0,0)))
Første numeriske verdi
For å få den første numeriske verdien i en liste, kan du tilpasse formelen til å bruke ISNUMBER-funksjonen, og deretter endre logikken slik at den samsvarer med SANT i stedet for FALSE:
(=INDEX(range,MATCH(TRUE,ISNUMBER(range),0)))
Dette er også en matriseformel, og må legges inn med kontroll + skift + enter.