Formel zum Abgleichen von Kopfzeile und Wert

Formel zum Abgleichen von Kopfzeile und Wert

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

Bildbeschreibung hier eingeben


=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:

Bildbeschreibung hier eingeben


=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)))

verwandte Informationen