Google Sheets中如何合并二维区域并忽略双方空白单元格?
Google Sheets 区域内容合并解决方案
输入区域
Input Range 01(E-G列,行2-7)
- E列:Set 1、Set 1、Set 1、Set 1、Set 1、(空白)
- F列:Set 2、Set 2、Set 2、Set 2、Set 2、Set 2
- G列:Set 3、Set 3、Set 3、(空白)、Set 3、Set 3
Input Range 02(A-C列,行2-7)
- A列:Category 1、(空白)、Category 3、Category 4、(空白)、Category 6
- B列:Category 1、Category 2、Category 3、Category 4、(空白)、Category 6
- C列:Category 1、Category 2、(空白)、Category 4、(空白)、Category 6
需求输出
- I列:Set 1 Category 1、(空白)、Set 1 Category 3、Set 1 Category 4、(空白)
- J列:Set 2 Category 1、Set 2 Category 2、Set 2 Category 3、Set 2 Category 4、Set 2 Category 6
- K列:Set 3 Category 1、Set 3 Category 2、(空白)、(空白)、Set 3 Category 6
可行公式
基础版(生成对应合并区域,保留空白行)
在单元格I2输入以下公式,会自动扩展到K7:
=ARRAYFORMULA(IF((E2:G7<>"")*(A2:C7<>""), E2:G7&" "&A2:C7, ""))
公式说明:
(E2:G7<>"")*(A2:C7<>""):通过乘号实现逻辑与,判断对应位置的Set单元格和Category单元格是否都不为空- 满足条件时合并为
"Set Category"格式;不满足时显示空白 ARRAYFORMULA实现批量计算,无需手动下拉填充
进阶版(自动过滤全空白行)
如果需要自动移除整行全空白的行(比如原数据第6行),可使用以下公式(未使用Lambda或复杂辅助函数):
=FILTER(ARRAYFORMULA(IF((E2:G7<>"")*(A2:C7<>""), E2:G7&" "&A2:C7, "")), MMULT(--(ARRAYFORMULA(IF((E2:G7<>"")*(A2:C7<>""), E2:G7&" "&A2:C7, ""))<>""), SEQUENCE(3,1,1,0))>0)
公式说明:
- 先用基础版公式生成合并区域,再通过
FILTER筛选出至少有一列非空的行 MMULT用于计算每行非空单元格数量,判断是否大于0来保留该行
之前公式失败原因
=ARRAYFORMULA(A2:C7&" "&E2:G7):按行内单元格对应合并(如A2&E2、A3&E3...C7&G7),而非需求的列对列对应(E列&A列、F列&B列、G列&C列),结果不符合预期- 带Lambda的公式逻辑冗余,且引入了需避免的Lambda函数,同时过滤规则不匹配需求
内容的提问来源于stack exchange,提问作者Osm
相关产品推荐
相关产品推荐

