Google Sheets中ARRAYFORMULA组合函数仅作用首行的问题排查与解决
问题原因
你的公式仅对第一行生效,核心问题是 ARRAYFORMULA 无法让 FILTER 逐行对应 N2:N 的每个值。FILTER 会将 'Glide App Users'!B2:B=N2:N 视为整体条件,只会返回与 N2 匹配的结果,后续行的 N3、N4... 不会被单独处理。
修复方案
使用 BYROW 函数逐行遍历 N2:N 的值,对每个值单独执行匹配和转置操作,公式如下:
=BYROW(N2:N, LAMBDA(x, IF(x="",, TRANSPOSE(FILTER('Glide App Users'!D2:D, 'Glide App Users'!B2:B=x)))))
公式说明
BYROW(N2:N, LAMBDA(x,...)):遍历N2:N的每一行,将当前单元格的值赋值给变量xIF(x="",, ...):若当前 N 列单元格为空,则返回空值,避免生成无效结果TRANSPOSE(FILTER(...)):针对当前的x,筛选出Glide App Users表中 B 列等于x的 D 列数据,再转置输出到当前行
替代方案(单单元格聚合结果)
如果不需要将匹配结果拆分到多个单元格,而是用分隔符聚合在一个单元格里,可以改用 TEXTJOIN:
=BYROW(N2:N, LAMBDA(x, IF(x="",, TEXTJOIN(", ", TRUE, FILTER('Glide App Users'!D2:D, 'Glide App Users'!B2:B=x)))))
内容的提问来源于stack exchange,提问作者Yaron BY
相关产品推荐
相关产品推荐

