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

求助:ARRAYFORMULA无法填充合并单元格值同时保留空白行

Google Sheet合并单元格向下填充且保留空白行的解决方案

问题背景

我在用有25+协作者的在线Google Sheet,部分单元格是合并状态。想做一个辅助工作表,把合并单元格的内容向下填充,同时保留手动设置的空白行。试过VLOOKUP加FILTER的组合,但没法同时处理好合并单元格和空白行的需求。当前用的无效ARRAYFORMULA公式是:
=ARRAYFORMULA(IF(ROW(main!A:A)=1,main!A:A,IF(NOT(ISBLANK(main!A:A)),main!A:A,"")))

可行公式方案

单列处理(以A列为例)

在辅助表的A1单元格输入以下公式:

=ARRAYFORMULA(IF(ROW(main!A:A)=1, main!A:A, IF(main!A:A="", "", LOOKUP(ROW(main!A:A), FILTER(ROW(main!A:A), main!A:A<>""), FILTER(main!A:A, main!A:A<>"")))))

公式原理

  • ROW(main!A:A):获取每行的行号
  • FILTER(ROW(main!A:A), main!A:A<>""):提取A列所有非空单元格的行号
  • FILTER(main!A:A, main!A:A<>""):提取A列所有非空单元格的内容
  • LOOKUP:匹配当前行号,找到上方最近的非空行对应的内容,实现合并单元格内容向下填充
  • 外层IF(main!A:A="", "", ...):确保原表中手动设置的空白行在辅助表中保持空白,只有原单元格非空时才填充内容

多列批量处理(以A-C列为例)

如果需要一次性处理多列,用以下公式:

=ARRAYFORMULA(IF(ROW(main!A:C)=1, main!A:C, IF(main!A:C="", "", LOOKUP(ROW(main!A:C), FILTER(ROW(main!A:C), main!A:C<>""), FILTER(main!A:C, main!A:C<>"")))))

注意:如果原表表头不在第一行,把公式里的ROW(main!A:A)=1改成对应表头行号即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:12:34