Ich versuche effektiv, "zu indizieren, wenn" - eine Liste mit bestimmten Kriterien zu kopieren

Ich versuche effektiv, "zu indizieren, wenn" - eine Liste mit bestimmten Kriterien zu kopieren

Ich habe eine Datenspalte und einen Marker daneben. Denken Sie:

ID#1 -- A
ID#2 -- B
ID#3 -- A

Ich versuche, nur die ID-Nummern mit dem Marker A zu verschieben. Das Endergebnis ist also

ID-Nr.: 1
ID-Nr.: 3

Mit VBA ist das ganz einfach: Filtern Sie den Bereich, kopieren Sie, fügen Sie ihn ein. Ich versuche, eine Lösung für dieses Problem zu finden, die nicht auf VBA basiert. Ich habe verschiedene Array-Formeln ausprobiert – Index(Bereich, SummeProdukt(Zeile*Kriterien)), aber ich bekomme es nicht ganz zum Laufen. Wie bekomme ich das zum Laufen?

Die rechnerische Eleganz ist ein wesentlicher Faktor – das Blatt, mit dem ich arbeite, sollte aufgrund seiner Größe eine Datenbank sein, aber die zuständigen Stellen haben diese Idee abgelehnt.

Antwort1

Verwenden:

=IFERROR(INDEX($A$1:$A$8,SMALL(IF($B$1:$B$8="A",ROW($B$1:$B$8),999999),ROW(A1))),"")

Small gibt die IDs mit "A" für jede Zeile zurück (vom kleinsten zum größten).
Ändern Sie A1:A8 so, dass es Ihrer ID-Spalte entspricht. Ändern
Sie B1:B8 so, dass es Ihrer A-Spalte entspricht.
Behalten Sie $ für feste Referenzen bei,
drücken Sie stattdessen Ctrl+ Shift+. Es ist eine Array-Formel. EnterEnter

verwandte Informationen