
Dies ist eine Frage, deren Beantwortung mir möglicherweise schwer fällt, also haben Sie bitte Geduld mit mir.
Auf einem Blatt habe ich eine Spalte mit mehreren Zellen, von denen einige leer sind, einige einen einzelnen Wert haben und einige mehr als einen Wert. Auf einem anderen Blatt habe ich eine Liste dieser Werte mit einer entsprechenden Position. Hier ist ein Beispiel für das, womit ich arbeite:
Blatt1:
C1: Team Names
C2: crimson-tide, bulldogs
C3: bulldogs
C4: (blank)
C5: canucks
Blatt 2:
A1: Football B1: Basketball C1: Hockey
A2: crimson-tide B2: celtics C2: maple-leafs
A3: bulldogs B3: mavericks C3: oilers
A4: tigers B4: gonzaga-bulldogs C4: canucks
A5: longhorns B5: warriors C5: bruins
Erwartete Ausgabe auf Blatt1:
D2: Football
D3: Football
D4: No Sport Found
D5: Hockey
Tatsächliche Ausgabe:
D2: (blank)
D3: FootballBasketBall
D4: (blank)
D5: Hockey
Ich möchte durch Sheet1!C2:C5 iterieren und jeder Wert, der eine Übereinstimmung mit Sheet2!A2:C5 hat, wird die entsprechende Überschrift von Sheet2!A1:C1 anzeigen. Beispielsweise würde Sheet1!C2 „Football“ anzeigen, da entweder Crimson-Tide oder Bulldogs unter der Überschrift „Football“ auf Sheet2!A1 stehen.
Was möglicherweise wichtig ist oder nicht: Keine Werte in Tabelle1!C haben ein Team, das in einer anderen Kopfzeile steht. Crimson-Tide steht beispielsweise nur unter der Fußballkopfzeile auf Tabelle2, nicht sowohl unter der Fußball- als auch unter der Basketballkopfzeile. Bisher konnte ich nur dann ein Wahr/Falsch-Ergebnis anzeigen, wenn das Team in Spalte C mit einem Team auf Tabelle2 übereinstimmt. Ich kann nicht herausfinden, wie ich die entsprechende Kopfzeile anzeigen kann. Bitte helfen Sie!
Antwort1
Versuchen Sie, die folgende Formel in die Zelle einzugebenD2
=LET(
_S2Sports, Sheet2!A$2:C$5,
_Sports, TOCOL(IFS(_S2Sports<>"",Sheet2!A$1:C$1),2,1),
_Teams, TOCOL(_S2Sports,1,1),
_Match, XLOOKUP(TEXTSPLIT(C2,,", "),_Teams,_Sports,"No Team Found"),
IFERROR(TEXTJOIN("|",1,UNIQUE(_Match)),"No Sport Found"))
Verwenden einer einzelnen dynamischen Array-Formel:
=LET(
_S2Sports, Sheet2!A$2:C$5,
_Sports, TOCOL(IFS(_S2Sports<>"",Sheet2!A$1:C$1),2,1),
_Teams, TOCOL(_S2Sports,1,1),
BYROW(C2:C12, LAMBDA(x, LET(_Match, XLOOKUP(TEXTSPLIT(x,,", "),_Teams,_Sports,"No Team Found"),
IFERROR(TEXTJOIN("|",1,UNIQUE(_Match)),"No Sport Found")))))
Wenn Sie keinen Zugriff auf TOCOL()
& haben TEXTSPLIT()
, dann:
=LET(
_Sports, Sheet2!$A$2:$C$5,
_Found, N(ISNUMBER(SEARCH(", "&_Sports&", ",", "&$C2&", "))),
_MatrixCal, MMULT(SEQUENCE(,ROWS(_Sports))^0,_Found),
_Output, FILTER(Sheet2!$A$1:$C$1,_MatrixCal,"No Team Found"),
IF(C2="","No Sport Found",TEXTJOIN("|",,_Output)))