2012-04-10 7 views
3

Ich habe eine Formel, die ich in Excel verwende, um die Zeile # des ersten Elements zurückzugeben, das einem angegebenen Wert entspricht.Excel-MATCH + COUNTIF-Funktion: Abrufen des n-ten Werts in einem Array

Formel: =MATCH(0,COUNTIF($B$1,List),0) + CTRL + SHIFT + und in Mac ENTER: CMD + RETURN

Becomes:

MATCH(0,{**0**;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0},0) 

Ausgänge: 1

Ich möchte die Funktion aktualisieren, damit ich die 2., 3. usw. Instanz finden kann, die dem angegebenen Wert entspricht.

wie folgt aus:

MATCH(0,{0;**0**;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0},0) 

Und diese Ausgänge: 2

+0

Diese helfen könnte: http://stackoverflow.com/questions/9588286/match-or-vlookup-starting-from-the-end-of -der-Bereich – assylias

Antwort

3

Gibt es in Ihrem aktuellen Formel nicht die Position des ersten Wert in der Liste finden, dass nicht Spiel B1?

Für 2. Versuchen Sie, diese Matrixformel

=SMALL(IF(List<>$B$1,ROW(List)-MIN(ROW(List))+1),2)

ersetzen die 2 mit einem beliebigen Wert n für n-te Spiel. Angenommen, die Liste ist eine einzelne Spalte

+0

Das passt wie angegossen mit einer kleinen Modifikation, einem Gleichheitszeichen anstelle des Kleiner als oder größer als: = KLEIN (IF (Liste = $ B $ 1, ZEILE (Liste) -MIN (ZEILE (Liste)) +1), 2) – krumholz

+0

@ user1311882 - kein Problem - wie ich sagte, ich habe versucht, es mit Ihrem Original konsistent zu machen, wenn Sie Null gegen die COUNTIF übereinstimmen, finden Sie die Position der ersten Zelle, die 'ungleich

0

Sie können die Liste jedes Mal dynamisch verschieben, wenn ein Vorkommen gefunden wird, sodass die Liste beim nächsten Vorkommen an der letzten gefundenen Position beginnt.

Verwendung dieses MATCH(<Match value>,INDIRECT(" <column of data> " & <Last position found> +1 & ":<Column of Data><Last Row Of Data>"),0)+<Last position found>

sehen Sie bitte dieses: filter dynamic