Excel

Få den første ikke-tomme værdi på en liste

Get First Non Blank Value List

Excel-formel: Få den første ikke-tomme værdi på en listeGenerisk formel
{= INDEX (range, MATCH (FALSE, ISBLANK (range),0))}
Resumé

For at få den første ikke-tomme værdi (tekst eller tal) i en i et kolonneområde kan du bruge en matrixformel baseret på INDEX-, MATCH- og ISBLANK-funktionerne. I det viste eksempel er formlen i D10:

excel fjerne specifikke tegn fra streng
 
{= INDEX (B3:B11, MATCH (FALSE, ISBLANK (B3:B11),0))}

Bemærk: dette er en matrixformel og skal indtastes med Control-Shift-Enter.



Forklaring

Så kernen i problemet er dette: Vi ønsker at få den første ikke-tomme celle, men vi har ikke en direkte måde at gøre det på i Excel. Vi kunne bruge VLOOKUP med et jokertegn * (se linket nedenfor), men det fungerer kun for tekst, ikke tal.



Så vi er nødt til at opbygge den funktionalitet, vi har brug for ved at indlejre formler. På måde at gøre det er at bruge en matrixfunktion, der 'tester' celler og returnerer en matrix med SAND / FALSK-værdier, som vi kan føde til MATCH-funktion .

Arbejder indefra og ud, den ISBLANK-funktion evaluerer cellerne i området B3: B11 og returnerer en array der ser sådan ud:



 
{TRUEFALSETRUEFALSEFALSETRUETRUETRUETRUE}

Hver FALSE repræsenterer en celle i området, der ikke er tomt.

Derefter ser MATCH efter FALSE inde i arrayet og returnerer positionen for den første match, der er fundet, i dette tilfælde 2. På dette tidspunkt ser formlen i eksemplet nu sådan ud:

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

Endelig blev INDEX-funktion overtager og får værdien ved position 2 i arrayet, som er 10.



hvordan man laver et excel-søjlediagram

Første længdeværdi, der ikke er nul

For at få den første værdi, der ikke er nul, kan du medtage LEN-funktion sådan her:

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

Første numeriske værdi

For at få den første numeriske værdi på en liste kan du tilpasse formlen til at bruge ISNUMBER-funktion , skift derefter logikken for at matche SAND i stedet for FALSK:

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

Dette er også en matrixformel , og skal indtastes med kontrol + skift + enter.

Forfatter Dave Bruns


^