如何在同列取上一单元格值生成数组直到遇非空单元格且无溢出错误
同列空白单元格自动继承上方最近非空值的实现方案
以下方案均不会覆盖已有非空数据,无溢出报错,完全匹配需求:
方法1:Excel 365/2021 动态数组公式方案
在目标列任意空白单元格输入公式即可整列生效:=SCAN("",A:A,LAMBDA(acc,cur,IF(cur="",acc,cur)))
- 自动遍历选中范围内的所有单元格,遇到空值就继承上一个非空值,遇到非空值直接返回原有内容
- 公式返回数组长度和遍历范围完全匹配,不会出现溢出报错,原有非空单元格内容不会被修改
- 可按需调整遍历范围,比如把
A:A替换为A1:A1000减少性能占用
方法2:全版本通用操作方案(支持旧版Excel、WPS表格)
无需函数,几步操作即可完成:
- 选中需要处理的列范围(比如A1:A100,按需选择即可)
- 按
Ctrl+G调出定位窗口,点击「定位条件」,选择「空值」后确认,此时所有空白单元格会被单独选中 - 在编辑栏输入公式
=A1(此处的A1为选中区域第一个空白单元格上方的相邻单元格,按需调整即可) - 按
Ctrl+Enter批量填充所有选中的空白单元格 - 可选操作:如果需要把填充的公式转为固定值,选中整列复制后右键选择「选择性粘贴-值」即可
- 优势:仅操作空白单元格,完全不会触碰已有内容,无任何报错风险
方法3:WPS表格专用动态数组方案
WPS已支持SCAN动态数组函数,输入以下公式即可一键生效:=SCAN("",A:A,LAMBDA(x,y,IF(y="",x,y)))
效果和Excel 365方案完全一致,无溢出、不修改原有数据。
内容的提问来源于stack exchange,提问作者ranemirusG
相关产品推荐
相关产品推荐

