別のセルの入力がテーブル内にあるかどうかに基づいて、セルにテキスト (T1、T2、T3、T4) を自動的に表示するようにします。
=IF(SUMPRODUCT(--(C3=standards!I3:I16))>0,"T1")
1 つのカテゴリのみがリストされますが、値がそのカテゴリ内にある場合、数式で複数の配列と特定の入力を受け入れることができません。
=IF(SUMPRODUCT(--(C3=standards!I3:I16))>0,"T1")*(--(C3=standards!J3:j16))>0,"T2")
など。何が間違っているのでしょうか?
答え1
AGGREGATE を使用すると、範囲が検索され、値が見つかった列に基づいて CHOOSE() 関数に数値が返されます。
=CHOOSE(AGGREGATE(15,6,(COLUMN($I$2:$L$16)-COLUMN($I$2)+1)/($I$2:$L$16=C3),1),"T1","T2","T3","T4")
答え2
次の式を使用できます:
=IF(SUMPRODUCT(--(B253=A254:A257))>0,"T1",IF(SUMPRODUCT(--(B253=B254:B257))>0,"T2",IF(SUMPRODUCT(--(B253=C254:C257))>0,"T3",IF(SUMPRODUCT(--(B253=D254:D257))>0,"T4"))))
ノート:
- 必要に応じて、データ範囲と条件セル参照を調整します。
- 条件セルの値が 0 から 15 までの場合、数式は値が含まれる列に応じて T1 から T4 を返します。
- 条件セルの値が 15 より大きい場合、
AGGREGATE()
数式はエラーを返します#Num!
が、この数式は を返しますFALSE
。
答え3
このSUMPRODUCT()
数式は、C3 の値が含まれる列番号 (データ テーブル内) を返します。
=SUMPRODUCT(1*(C3=standards!I3:L16)*COLUMN(A:D))
CHOOSE()
そして、スコットの回答のように、それを数式で使用したり、INDEX()
テキストが長い場合や変更する必要がある場合に使用したりできます。
=CHOOSE(SUMPRODUCT(1*(C3=standards!I3:L16)*COLUMN(A:D)),"T1","T2","T3","T4")
=INDEX(Text_Table,SUMPRODUCT(1*(C3=standards!I3:L16)*COLUMN(A:D)))
データ テーブルに C3 値が複数存在する場合、数式は間違った答えを返すことに注意してくださいSUMPRODUCT()
。これを回避する方法がありますので、複数の値が存在する可能性がある場合はコメントしてください。
他の回答では、最初の出現箇所が特定されますが、その出現箇所が含まれる列の正しいテキストが示されます。