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

Google Sheet中如何将值为1的列名合并为新列(解决公式报错)

如何在Google Sheets中生成Anomali列

需求说明

原始数据集:

NameA1A2A3A4A5
Maria00011
Budi01000
Maya00000

需要新增Anomali列,规则为:

  • 将对应行中值为1的列名用逗号分隔列出
  • 若该行无值为1的列,显示NULL

目标效果:

NameA1A2A3A4A5Anomali
Maria00011A4, A5
Budi01000A2
Maya00000NULL

原公式问题分析

你使用的公式报错,主要有两个原因:

  1. 范围选择错误:原公式中A2:G2和A$1:G$1包含了Name列(A列),但我们只需要处理A1-A5对应的B-F列数据
  2. Google Sheets中,这种数组判断的公式需要结合数组类函数来批量处理,否则无法正确运算

解决方案

方案1:单单元格公式(下拉复用)

假设Anomali列在G列,在G2单元格输入以下公式,然后下拉填充到所有行:

=IF(TEXTJOIN(", ", TRUE, IF(B2:F2=1, B$1:F$1, ""))="", "NULL", TEXTJOIN(", ", TRUE, IF(B2:F2=1, B$1:F$1, "")))

输入完成后按Enter即可正常计算。

方案2:数组公式(一次性处理所有行)

如果希望无需下拉,直接生成所有行的结果,在G2单元格输入以下数组公式:

=BYROW(B2:F, LAMBDA(row, IF(TEXTJOIN(", ", TRUE, IF(row=1, B1:F1, ""))="", "NULL", TEXTJOIN(", ", TRUE, IF(row=1, B1:F1, "")))))

这个公式会自动遍历B2到F列的每一行,批量生成Anomali列的内容。

公式说明

  • TEXTJOIN(", ", TRUE, ...):将符合条件的列名用逗号加空格连接,TRUE参数会忽略空值
  • IF(row=1, B1:F1, ""):判断当前单元格值是否为1,若是则返回对应列名,否则返回空字符串
  • IF(..., "NULL", ...):判断连接后的结果是否为空,为空则显示NULL,否则显示连接后的列名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:25:08