Excel-formel: Få n: a matchning -

Innehållsförteckning

Generisk formel

=SMALL(IF(logical,ROW(list)-MIN(ROW(list))+1),n)

Sammanfattning

För att få positionen för den nionde matchningen (till exempel det andra matchningsvärdet, det tredje matchningsvärdet etc.) kan du använda en formel baserad på funktionen SMALL. I exemplet som visas är formeln i G5:

=SMALL(IF(list=E5,ROW(list)-MIN(ROW(list))+1),F5)

Denna formel returnerar positionen för den andra förekomsten av "rött" i listan.

Obs: detta är en matrisformel och måste anges med kontroll + skift + enter.

Förklaring

Denna formel använder det namngivna intervallet "lista" som är intervallet B5: B11.

Kärnan i denna formel är funktionen SMALL, som helt enkelt returnerar det n: a minsta värdet i en lista med värden som motsvarar radnummer. Radnumren har "filtrerats" av IF-satsen, som använder logiken för en matchning. Arbetar inifrån och ut, jämför IF alla värden i det namngivna intervallet "lista" med värdet i B5, vilket skapar en array som denna:

(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE)

"Värdet om det är sant" är en uppsättning relativa radnummer som skapats av den här koden:

ROW(list)-MIN(ROW(list))+1

Resultatet är en array som denna:

(1;2;3;4;5;6;7)

Se den här sidan för en fullständig förklaring.

Med ett logiskt test som returnerar en rad resultat fungerar IF-funktionen som ett filter - endast radnummer som motsvarar en match överlever, resten returnerar FALSE. Resultatet som returneras av IF ser ut så här:

(1;FALSE;FALSE;FALSE;5;FALSE;7)

Siffrorna 1, 5 och 7 motsvarar platsen för "rött" i listan.

Slutligen returnerar SMALL det nionde minsta objektet i listan och ignorerar FALSE-värden. I exemplet innehåller F5 2, så SMALL returnerar det 2: a minsta värdet: 5.

Få tillhörande värde

När du har den relativa positionen för den n: e matchningen kan du använda den positionen med INDEX-funktionen för att returnera ett associerat värde.

Intressanta artiklar...