ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4525|回复: 11

[分享] 利用vlookup填充合并单元格拆分后的空白数据(利用vlookup使空白单元格等于上方的值)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-12-6 00:49 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我们知道合并的单元格拆分后,留下的空白单元格可以使用定位空值的方式来填充,今天看到使用lookup函数来填充的方式,觉得很有意思,顺便分析一下公式,具体图和公式如下:
公式:=LOOKUP(1,0/($A$2:A2<>""),A$2:A2)



在B2单元格的公式:=LOOKUP(1,0/($A$2:A2<>""),A$2:A2),按照“公式→公式求值”,可以一步一步查看运算的步骤,我这里把其分解的更细一点


1、=LOOKUP(1,0/("甲"<>""),A$2:A2)  ,用A2单元格的数据“甲”替换单元格引用$A$2:A2
2、=LOOKUP(1,0/({TRUE}),A$2:A2) ,比较判断:"甲"<>"",二者不相等,返回逻辑值TRUE
3、=LOOKUP(1,0/(TRUE),A$2:A2) ,去掉花括号
4、=LOOKUP(1,0,A$2:A2) , 0/TRUE=0,因为TRUE被当做数字1来进行计算
5、=LOOKUP(1,0,{"甲"}) ,A$2:A2代表的值:{"甲"},注意花括号不能省略,这代表一个引用,而不是一个字符
6、结果:甲

这是因为lookup函数查找值时,如果找不到就用最接近的值来替代,现在查找1,查找范围是0,没有1,则最接近的就是0(这里只有0),然后返回0对应的值,那就是甲。

现在来分析空白单元格是怎么填充的,以B7为例,公式为:=LOOKUP(1,0/($A$2:A7<>""),A$2:A7)
1、=LOOKUP(1,0/({"甲";"";"";"乙","丙",""}<>""),A$2:A7)  ,用A2:A7单元格的数据替换单元格引用$A$2:A7
2、=LOOKUP(1,0/({TRUE;FALSE;FALSE;TRUE;TRUE;FALSE}),A$2:A7) ,逐个用数组中的数据比较判断,返回逻辑值TRUE和FALSE集合
3、=LOOKUP(1,0/{TRUE;FALSE;FALSE;TRUE;TRUE;FALSE},A$2:A7) ,去掉花括号
4、=LOOKUP(1,{0;#DIV/0!;#DIV/0!;0;0;#DIV/0!},A$2:A7) , 0/TRUE=0,因为TRUE被当做数字1来进行计算,0/FALSE=#DIV/0!,因为FALSE作为0计算
5、=LOOKUP(1,{0;#DIV/0!;#DIV/0!;0;0;#DIV/0!},{"甲";"";"";"乙","丙",""})
6、结果:丙

同理,lookup函数查找值时,如果找不到就用最接近的值来替代,这里0最接近,若有多个相同的值,lookup以最后查找到的作为返回结果,也就是查找区域里最后一个0,就是上面第5步标红的0,其对应的返回值就是“丙”。


以此类推,lookup通过这一个方式把空白单元格填充了。

当然这是在辅助列中处理的,最后把原始列删除即可。

QQ图片20181206001119.png

利用vlookup填充合并单元格拆分后的空白数据.rar

15.38 KB, 下载次数: 107

TA的精华主题

TA的得分主题

发表于 2018-12-6 08:10 | 显示全部楼层
=IF(A2<>"",A2,B1)

跟这个的效果是一样的吧??

TA的精华主题

TA的得分主题

发表于 2018-12-6 08:12 | 显示全部楼层
这个用起来有些复杂,而且一定要用辅助列完成,我都是用定位空值来做的

TA的精华主题

TA的得分主题

发表于 2018-12-6 08:30 | 显示全部楼层
  1. =LOOKUP("々",A$2:A2)
复制代码
用基础操作也不错

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-6 13:25 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-6 13:26 | 显示全部楼层
sayhi95 发表于 2018-12-6 08:30
用基础操作也不错

这个更强大!简单易行,感觉比定位还要方便

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-6 13:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lfspecter 发表于 2018-12-6 08:12
这个用起来有些复杂,而且一定要用辅助列完成,我都是用定位空值来做的

一般用定位,这是用公式的解决方法!
用 sayhi95的公式更简单:=LOOKUP("々",A$2:A2)

TA的精华主题

TA的得分主题

发表于 2018-12-7 15:51 | 显示全部楼层
个人觉得还是用定位的方式比较方便

TA的精华主题

TA的得分主题

发表于 2021-11-18 09:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-3-3 08:30 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-19 22:28 , Processed in 0.042296 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表