如何用单个数组公式合并行值(表头分隔)并支持插入新列
Google Sheets 数组公式解决方案:按列标题分隔合并行值
核心公式
在目标列(例如F列的F2单元格)输入以下数组公式,无需拖拽填充即可自动应用到所有行:
=IFERROR(BYROW(A2:E, LAMBDA(row, TEXTJOIN("", TRUE, MAP(row, OFFSET(A1:E1, 0, 0, 1, COLUMNS(row)), LAMBDA(val, header, IF(val<>"", header&val, "")))))), "")
公式说明
BYROW(A2:E, LAMBDA(row, ...)):遍历指定数据区域(A2到E列)的每一行,对每行执行合并逻辑MAP(row, OFFSET(A1:E1, 0, 0, 1, COLUMNS(row)), LAMBDA(val, header, ...)):将当前行的每个单元格值与对应列的表头配对,逐个处理IF(val<>"", header&val, ""):仅当单元格有值时,拼接表头和单元格内容;空单元格返回空字符串,避免无效拼接
TEXTJOIN("", TRUE, ...):将所有有效拼接结果合并为单个字符串,忽略空值IFERROR(..., ""):处理空行或无数据的情况,返回空字符串避免显示错误信息
适配性说明
该公式支持以下需求:
- 插入新列:在A到E的起始/结束范围之间插入新列时,
COLUMNS(row)会自动识别新增列数,OFFSET会同步引用新列的表头,无需修改公式 - 新增表头:只要新增列的表头位于第一行对应位置,公式会自动将其纳入拼接逻辑
内容的提问来源于stack exchange,提问作者William Toscano
相关产品推荐
相关产品推荐

