
これは説明するのが難しい質問かもしれませんが、ご容赦ください。
あるシートには、複数のセルが含まれる列があります。そのセルには、空白のセル、単一の値を持つセル、複数の値を持つセルがあります。別のシートには、適切な場所にあるそれらの値のリストがあります。以下は、私が作業しているものの例です。
シート1:
C1: Team Names
C2: crimson-tide, bulldogs
C3: bulldogs
C4: (blank)
C5: canucks
シート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
Sheet1 の予想される出力:
D2: Football
D3: Football
D4: No Sport Found
D5: Hockey
実際の出力:
D2: (blank)
D3: FootballBasketBall
D4: (blank)
D5: Hockey
Sheet1!C2:C5 を反復処理し、Sheet2!A2:C5 で一致する値があれば、Sheet2!A1:C1 の適切なヘッダーを表示したいと考えています。たとえば、Sheet2!A1 のフットボール ヘッダーの下にあるのは crimson-tide または bulldogs のいずれかであるため、Sheet1!C2 には「フットボール」と表示されます。
追加することが重要であるかどうかはわかりませんが、Sheet1!C には別のヘッダーに表示されるチームはありません。たとえば、Crimson-tide は Sheet2 のフットボール ヘッダーの下にのみ表示され、フットボールとバスケットボールの両方のヘッダーの下には表示されません。これまでのところ、列 C のチームが Sheet2 のチームと一致する場合にのみ、True/False の結果を表示できました。適切なヘッダーを表示する方法がわかりません。助けてください。
答え1
セルに次の数式を入力してみてくださいD2
=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"))
単一の動的配列数式を使用する:
=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")))))
TOCOL()
&にアクセスできない場合は、TEXTSPLIT()
次の手順に従ってください。
=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)))