
Ich habe eine Tabelle auf einem Arbeitsblatt namens „DealSetup“, die wie diese vereinfachte Version aussieht:
A B
1 John Doe 1
2 Jane Doe 1
3 Mark Doe 2
4 Doug Doe 1
5 Mary Doe 2
Ich habe eine Tabelle auf einem Arbeitsblatt namens „Liste“, in die ich die Namen aus dem Arbeitsblatt „DealSetup“ ziehen möchte. Ich möchte die Namen jedoch nur basierend auf dem Wert in Spalte B auflisten.
Beispielsweise möchte ich im Arbeitsblatt „Liste“ eine Art INDEX- oder Array-Funktion verwenden, um das Blatt „DealSetup“ zu durchsuchen und alle Elemente, deren Wert in Spalte B 1 ist, herauszuziehen und aufzulisten. Ich möchte jedoch keine Leerzeichen. Es sollte so aussehen:
EVERYONE WITH B COLUMN VALUE OF 1:
A
1 John Doe
2 Jane Doe
3 Doug Doe
Oder so:
EVERYONE WITH B COLUMN VALUE OF 2:
A
1 Mark Doe
2 Mary Doe
Ich habe ein paar Dinge ohne Erfolg ausprobiert. Ich bin mir nicht sicher, wie es jetzt weitergehen soll, daher wäre ich für jeden Input dankbar!!
Antwort1
Vorausgesetzt, Ihre Daten sind in DealSetup!A$2:B$6
können Sie diese Formel verwenden inList!A2
=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1),ROWS(A$2:A2))),"")
CTRLmit + SHIFT+ bestätigen ENTERund soweit wie nötig nach unten und weiter kopieren. Wenn die Namen ausgehen, bleiben Leerzeichen.
Nimmt Kriterien (1,2 usw.) inC1
siehe AnhangArbeitsmappe- versuchen Sie, C1
auf 2 zu ändern
Wenn sich Namen wiederholen (innerhalb der angegebenen Kriterien), werden die Namen wiederholt angezeigt. Die Formel kann so angepasst werden, dass jeder Name nur einmal angezeigt wird. Diese Version
=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,IF(COUNTIF(A$1:A1,DealSetup!A$2:A$6)=0,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1)),1)),"")
Antwort2
Wenn Sie eine Lösung mit Formeln möchten, werden Sie unten Leerzeichen haben. Es gibt keine Möglichkeit, die Zellen mit der Formel wachsen und schrumpfen zu lassen, wenn sich Ihre Liste ändert. Ihre Tabelle mit Formeln sollte dieselbe Höhe wie Ihre Rohdaten haben, um sicherzustellen, dass Sie nichts übersehen, wenn beispielsweise jeder ein 1
in der Spalte hat B
. Wenn Sie wissen, dass dies nie der Fall sein wird, können Sie die Anzahl der Zeilen im List
Arbeitsblatt reduzieren, aber das ist ein Risiko. Hier ist eine Formel, die sie alle in der richtigen Reihenfolge mit Leerzeichen unten zurückgibt. Es ist eine Array-Formel, also geben Sie sie mit Ctrl+ Shift+ ein Enter: (Barry Houdini hat bereits eine ähnliche Lösung eingereicht)
{=IFERROR(INDEX(DealSetup!$A:$A,SMALL(IF(DealSetup!$B:$B=1,ROW(DealSetup!$B:$B)),ROW())),"")}
Wenn Sie unten keine Leerzeichen akzeptieren, muss es entweder eine PivotTable- oder VBA-Lösung sein. Diese Frage ist ziemlich alt, daher erwarte ich leider nicht, dass OP hier bald wieder auftaucht.