You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets中用Lambda按行合并唯一值并兼容ArrayFormula

Google Sheets 按行合并唯一非空值的TEXTJOIN实现方法

问题场景

需要实现一个可配合BYROW(替代ArrayFormula批量处理)的改良版TEXTJOIN,要求忽略空单元格且按行合并唯一值,示例如下:

123预期结果
oneoneone
onetwoone, two
onetwothreeone, two, three

现有尝试与问题

用BYROW实现按行TEXTJOIN是可行的:
=BYROW(A3:F,LAMBDA(r,TEXTJOIN(", ",1,r)))

但直接加入UNIQUE筛选唯一值时会失败:
=BYROW(array, LAMBDA(r, TEXTJOIN(", ", 1, UNIQUE(r))))

解决方案

问题出在UNIQUE处理带空值的行时,会保留空值条目,导致TEXTJOIN仍会出现异常分隔符。需要先过滤空值,再取唯一值,最后合并:

标准公式写法

=BYROW(A3:F, LAMBDA(r, TEXTJOIN(", ", 1, UNIQUE(FILTER(r, r<>"")))))

原理说明

  • FILTER(r, r<>""):先过滤当前行的所有空单元格,仅保留非空值
  • UNIQUE(...):对过滤后的非空值提取唯一值
  • TEXTJOIN(", ", 1, ...):将唯一非空值用指定分隔符合并,第二个参数1表示忽略空值(双重保障)

简化替代写法(新版Google Sheets适用)

如果无需兼容旧版,可使用TOCOL替代FILTER,写法更简洁:
=BYROW(A3:F, LAMBDA(r, TEXTJOIN(", ", 1, UNIQUE(TOCOL(r,1)))))
其中TOCOL(r,1)的第二个参数1表示忽略空单元格,将行转为列后再提取唯一值。

内容的提问来源于stack exchange,提问作者MMsmithH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 02:20:00