Ist es möglich, Index und Übereinstimmung oder etwas Ähnliches in Microsoft Excel zu verwenden, um die letzte ausgefüllte Zahlenzeile für zwei Zahlensätze in derselben Spalte zu finden?


3

Beispieltabellenbild:

enter image description here

Zielsetzung: In der Beispieltabellenansicht möchte ich aus Spalte C extrahieren, die zuletzt aufgefüllte CST-Nummer als 1235 und die zuletzt aufgefüllte Mehrwertsteuer-Nummer als 204.

Wenn ich = VLOOKUP ("CST", B2: C5,2, FALSE) verwende, gibt es den ersten CST-Wert, d. H. 1234, zurück.

Wenn ich Match versuche, funktioniert dies für CST, aber für VAT ergibt dieselbe Formel mit einem kleineren lookup_value von 250 (da VAT-Werte unter 250 liegen) als Ergebnis # N / A.

Screenshot (Verwendung von MATCH mit unterschiedlichen Lookup_value in derselben Spalte):

enter image description here

Antworten:


1

Für so etwas bevorzuge ich AGGREGATE gegenüber MATCH:

=INDEX($B:$B,AGGREGATE(14,6,ROW($A$2:INDEX($A:$A,MATCH("ZZZ",$A:$A)))/($A$2:INDEX($A:$A,MATCH("ZZZ",$A:$A))=D$1),1))

Ich habe die eigentlichen Kriterien in D1 und D2 eingefügt, damit ich sie direkt referenzieren kann und keinen harten Code "CST" und "VAT" in die Formel, so dass sie ziehbar ist.

Die Zwei $A$2:INDEX($A:$A,MATCH("ZZZ",$A:$A)) Legen Sie den Referenzbereich dynamisch fest, da dies eine Array-Typ-Formel ist. Es wird von A2 bis zur letzten Zelle in Spalte A gesetzt, die eine Textzeichenfolge enthält.

Das Aggregat gibt die größte Zeilennummer (letzte Zeile), die den Kriterien entspricht, an den INDEX zurück.

enter image description here


0

Sie können dies mit tun LOOKUP.

LOOKUP Wann lookup_value größer als eine beliebige Zahl im Array ist, gibt die Funktion die letzte Zahl im Array zurück; das 1/(1/(...)) Konstrukt konvertiert das 0 's zu Fehlern, also ist die letzte "Zahl" der Wert an derselben Position wie die letzte CST oder VAT abhängig von der Formel.

Last CST:  =LOOKUP(9E+307,1/(1/(($B$2:$B$999="CST")*$C$2:$C$999)))
Last VAT:  =LOOKUP(9E+307,1/(1/(($B$2:$B$999="VAT")*$C$2:$C$999)))

Bei den obigen Formeln wird davon ausgegangen, dass die Rechnungsnummer immer eine Zahl ist. Wenn es sich um eine Zeichenfolge handeln kann, muss die Formel geändert werden.

Last CST:  =LOOKUP(2,1/(($B$2:$B$999="CST")*ROW($B$2:$B$999)),$C$2:$C$999)
Last VAT:  =LOOKUP(2,1/(($B$2:$B$999="VAT")*ROW($B$2:$B$999)),$C$2:$C$999)

0

Verwenden Sie VLOOKUP für vertikale Suchvorgänge. Das zweite Argument ist eine Matrix. Wenn es keine Begrenzung in Zeilen gibt, geben Sie nicht die Zeilennummern an, sondern nur die Spaltenbuchstaben. Das dritte Argument gibt an, welche Spalte verwendet werden soll. 2 bedeutet das zweite, d. H. C in Ihrer Matrix.

Standardmäßig stoppt die Funktion nicht bei der ersten Suche. Sie sucht nach weiteren Vorkommen, was letztendlich dazu führt, dass der unterste Eintrag (normalerweise der neueste) genau wie gewünscht gefunden wird.

Daher verwenden

=VLOOKUP("CST", B:C, 2)

und

=VLOOKUP("VAT", B:C, 2)

Beachten Sie, dass es auch HLOOKUP für horizontale Suchvorgänge gibt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.