在这张表中,我有一个B1:C18
的范围,我想在column C
中返回G column
值,其中所有值都与column B
中的条件值匹配E1
。
但是我从C列中得到的只有顶级值,但不是全部(即Sep 2
有两个值443
和472
),但它只返回443
。
任何人都可以看看G1
中的公式回报
={IF(ISERROR(INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)),"",
INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2))}
。
在列中获取答案
好的,我检查了你的公式,它也是正确的。我已将其修改为Google表格中的ArrayFormula
。检查一下。
公式1
=ArrayFormula(IF(ISERROR(INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)),"", INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)))
你也可以尝试这个公式 -
公式2
=ArrayFormula(IFERROR(INDEX($C$1:$C$18, SMALL(IF(E$1=$B$1:$B$18, ROW($C$1:$C$18),""), ROW())),""))
只需在相应列的单元格中复制公式即可。
在单个单元格中获取答案
将此数组公式用于Google表格 -
=ArrayFormula(TEXTJOIN(", ",TRUE,IF(B1:B18 = E1,C1:C18,"")))
它将聚合单个单元格中的所有值。
也许你可以试试
=iferror(split(textjoin(", ", 1, filter(C2:C, B2:B=E1)), ", ", 1))
看看是否有效?