我對 ArrayFormula 很陌生,一直在嘗試,但有時公式有效,有時無效。我想要做的是組合 ArrayFormula 和 Countif 來搜索部分文本。
如下面的作業表所示,有 10 個科目(A 列),每個科目至少有?? 4 個樣本(A、B、C、D)中的一個匯總為一個字串(B 列)。我想要做的是找出哪個科目有樣本 A 或 B 或 C 或 D。
我為每個樣本嘗試了單一公式,例如單元格 D3
=IF(COUNTIF($B3,"*"&$D$2&"*")>0,$A3,"")
它回傳正確的結果。但是,當我在 cell 中嘗試 arrayformula 時I3,
=arrayformula(IF(COUNTIF($B3:B,"*"&$D$2&"*")>0,$A3:A,""))
答案很奇怪。例如:沒有樣本“A”的受試者(Gamma、Zeta、Eta、Theta)顯示為樣本“A”。這也適用于樣品 B、C、D
不知道這里出了什么問題。
uj5u.com熱心網友回復:
嘗試:
=INDEX(QUERY(IFERROR(TRIM(SPLIT(FLATTEN(IF(IFERROR(SPLIT(B3:B, ","))="",,
SPLIT(B3:B, ",")&"×"&A3:A)), "×"))),
"select max(Col2) where Col2 is not null group by Col2 pivot Col1"))
或在第 2 行中使用,如果您想按示例對其進行排序:
=INDEX(IFNA(VLOOKUP(A2:A, QUERY(IFERROR(TRIM(SPLIT(FLATTEN(
IF(IFERROR(SPLIT(B3:B, ","))="",,SPLIT(B3:B, ",")&"×"&A3:A)), "×"))),
"select Col2,max(Col2) where Col2 is not null group by Col2
pivot Col1 label Col2'Subjects'"), {2,3,4,5}, 0)))

uj5u.com熱心網友回復:
您可以使用一個公式完成所有四列結果。
從 I3:L3 中洗掉所有公式。
將以下公式代入I3:
=ArrayFormula(IF(REGEXMATCH(B3:B,I2:L2),A3:A,))
通俗地說,這讀作“如果 B3:B 中的任何內容與 I2:L2 中找到的值匹配,則在匹配行的匹配列中回傳 A3:A;如果不匹配,則回傳空值。”
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/369314.html
