动态筛选数组时返回动态数组的Excel公式问题求助
动态生成对应唯一Bars的拼接列表解决方案
问题根源
TEXTJOIN不属于数组迭代函数,直接用E2#(动态数组)作为FILTER的匹配条件时,无法逐个对应计算每个Foo对应的Bars,因此返回#N/A错误。
修正后的G2公式
直接在G2输入以下动态数组公式,回车后会自动扩展并随A、B列数据更新:
=BYROW(E2#, LAMBDA(foo, TEXTJOIN(" ", TRUE, UNIQUE(FILTER(B:B, A:A=foo, "")))))
公式拆解
BYROW(E2#, LAMBDA(foo, ...)):遍历E列的动态唯一Foos列表,将每个Foo值传入匿名函数作为临时变量fooUNIQUE(FILTER(B:B, A:A=foo, "")):筛选出当前foo对应的所有B列值并去重,无匹配时返回空文本避免错误TEXTJOIN(" ", TRUE, ...):将去重后的Bars用空格拼接成单单元格文本
一站式替代方案(无需单独维护E列)
如果不想保留E列的唯一Foos列表,可直接整合逻辑生成结果:
=LET( unique_foos, UNIQUE(DROP(FILTER(A:A, A:A<>""), 1)), BYROW(unique_foos, LAMBDA(foo, TEXTJOIN(" ", TRUE, UNIQUE(FILTER(B:B, A:A=foo, ""))))) )
内容的提问来源于stack exchange,提问作者rkr87
相关产品推荐
相关产品推荐

