Google Sheets动态用最后非空列值填充后续空单元格实现方案
行方向非空值向前填充实现方案
需求描述
- 目标效果:同一行范围内,自动把最后一个非空列的取值填充到后续空单元格,直到遇到下一个非空值停止
- 已尝试操作:参考纵向填充的现成公式,把公式里的
ROW参数替换为COLUMN,触发FILTER has mismatched range sizes报错 - 实现约束:不使用
TRANSPOSE函数完成需求
可直接复用的公式
选中需要做填充的行区域的第一个单元格,输入以下公式回车即可自动溢出完成整行填充:
=SCAN("",A2:Z2,LAMBDA(a,c,IF(c="",a,c)))
公式逻辑说明
- 之前直接替换ROW/COLUMN参数报错,核心原因是原纵向填充公式里的FILTER判断逻辑是按行维度做的尺寸匹配,换了COLUMN之后没有同步调整判断维度,自然会报范围尺寸不匹配的错。
- 上面的公式用
SCAN做逐列遍历,不需要做行列转置:- 遍历初始值设为空值
- 每扫到一个单元格,如果单元格本身有内容,就把临时存储的值更新为当前单元格内容
- 如果扫到的是空单元格,就直接把之前存的最近一个非空值填到当前位置
- 公式里的
A2:Z2可以根据实际需要处理的行范围替换,比如要处理到AZ列就改成A2:AZ2即可。
内容的提问来源于stack exchange,提问作者Osm
相关产品推荐
相关产品推荐

