
我希望單元格根據是否在表中找到另一個單元格中的輸入來自動顯示文字(T1、T2、T3、T4)。
=IF(SUMPRODUCT(--(C3=standards!I3:I16))>0,"T1")
將僅列出一個類別,但當值屬於該類別時,我無法獲得接受多個陣列和特定輸入的公式。
=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)))
SUMPRODUCT()
請注意,如果資料表中多次出現 C3 值,則該公式將給出錯誤的答案。有多種方法可以解決此問題,因此如果可能存在多個值,請發表評論。
其他答案將識別第一次出現的情況,但它們會為其所在的列提供正確的文字。