Ich möchte Excel verwenden, um mehrere Referenzwerte für einen bestimmten Schlüssel nachzuschlagen und zurückzugeben. VLookup macht etwas sehr Ähnliches wie ich - gibt aber nur ein einziges Match zurück.
Ich gehe davon aus, dass es sich dabei um Array-Rückgabe- und -Handhabungsmethoden handelt, obwohl ich mich zuvor noch nicht damit befasst habe. Einige Googler beginnen, sich auf das if ([lookuparray] = [value], row [lookuparray]) als Teil einer Lösung zu stützen - obwohl ich es nicht schaffen kann, ein einzelnes Match zurückzugeben ...
Zum Beispiel, wenn ich diese Referenzdaten habe:
Adam Red
Adam Green
Adam Blue
Bob Red
Bob Yellow
Bob Green
Carl Red
Ich versuche, die mehreren Rückgabewerte auf der rechten Seite zu erhalten. (Komma getrennt, falls möglich)
Red Adam, Bob, Carl
Green Adam, Bob
Blue Adam
Yellow Bob
(Ich habe bereits den Schlüsselwert auf der linken Seite - diese Werte müssen nicht herausgezogen werden.)
Jede Hilfe, um in diesem Zusammenhang mit mehreren Werten umzugehen, ist willkommen. Vielen Dank.
quelle
=SUM(IF($B$2:$B$8="Key", $C$2:$C$8, 0))
Tauschen Sie die Spalten aus, sodass sich die Farben in Spalte A und die Namen in Spalte B befinden, und sortieren Sie dann nach der Farbe.
Formel in C2 (in die Spalte kopieren): = IF (A2 <> A1, B2, C1 & "," & B2)
Formel in D2 (in die Spalte kopieren): = A2 <> A3
Filtern Sie nach "TRUE" in Spalte D, um die gewünschten Ergebnisse zu erhalten. Siehe unten:
quelle
Wenn Sie einen Formelansatz wünschen, ist es viel einfacher, die Ergebnisse in separaten Zellen abzurufen. Nehmen wir also an, dass Ihre erste Tabelle A2: B8 lautet und die Farben in D2: D5 erneut aufgeführt sind. Versuchen Sie diese Formel in E2
=IFERROR(INDEX($A$2:$A$8,SMALL(IF($B$2:$B$8=$D2,ROW($B$2:$B$8)-ROW($B$2)+1),COLUMNS($E2:E2))),"")
bestätigt mit
CTRL+SHIFT+ENTER
und kopiert quer und runter. Wenn Streichhölzer ausgehen, erhält man Leerzeichen.Die Formel geht von Excel 2007 oder höher aus - wenn Sie eine frühere Version verwenden, können Sie COUNTIF anstelle von IFERROR verwenden, d. H
=IF(COLUMNS($E2:E2)>COUNTIF($B$2:$B$8,$D2),"",INDEX($A$2:$A$8,SMALL(IF($B$2:$B$8=$D2,ROW($B$2:$B$8)-ROW($B$2)+1),COLUMNS($E2:E2))))
quelle
Hier ist die VBA-Lösung für Sie. Zunächst sehen die Ergebnisse so aus:
Und hier ist der Code:
quelle