ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 关于合并单元格的处理(抛砖引玉,欢迎讨论)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-30 11:46 | 显示全部楼层 |阅读模式
本帖最后由 yellowhawk 于 2024-5-30 13:56 编辑

在论坛这么多年了,对于写体会还是写得很少。其实学习就是不断的总结,分析,讨论,这样才会深刻并能灵活运用到实际中。

经常有人问到关于处理合并单元格的问题,我今天总结一下(也是在论坛中学到的),对于初学者来说,还是很适用的。高手们可以参与讨论,希望得到更多的方法。如图:
对于在列的合并单元格:
如A2:A11
公式为:=LOOKUP(ROW($A$2:$A$11),ROW($A$2:$A$11)/($A$2:$A$11<>""),$A$2:$A$11)
对于在行的合并单元格:
如B1:j1
公式为:=LOOKUP(COLUMN($B$1:$J$1),COLUMN($B$1:$J$1)/($B$1:$J$1<>""),$B$1:$J$1)
关键是理解Lookup函数
LOOKUP 函数通常用来查找一行或一列中的指定值,并返回另一行或列中相同位置的值。
  • 函数公式 :=LOOKUP(搜索键值, 搜索范围 | 搜索结果数组, [结果范围])
  • 参数释义
  • 搜索键值(必填): 要在行或列中搜索的值。
  • 搜索范围 | 搜索结果数组(必填): 选择要搜索的范围。
  • 结果范围(可选): 返回结果的范围,此范围必须仅为单行或单列。
  • 举例:=LOOKUP(A8,A8:B12,B8:B12)、=LOOKUP(A8,A8:A12,B8:B12)、=LOOKUP(A8,A8:B12)
  • :(1)无论使用向量形式还是数组形式,都需要先对原始数据进行升序排列 。 (2)选择范围时不用包含表头。 (3)如果函数无法找到搜索值,它会匹配搜索范围中小于或等于搜索值的最大值。如果搜索范围中最小的值也比搜索值大,那么函数会返回 #N/A 错误值。

现在对照理解一下:

=LOOKUP(ROW(合并单元格),ROW(合并单元格)/(合并单元格<>""),合并单元格)
row(A2:A11),结果是:2,3,4,5,6,7,8,9,10,11
(A2:A11<>""即首个单元格不为空2,7,10,其他为空
row(A2:A11)/(A2:A11<>""),就会出现:{2;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;7;#DIV/0!;#DIV/0!;10;#DIV/0!},为空的单元格会错误
用Lookup搜索2,3,4,5,6时,都会返回2的结果,7,8,9都返回7的结果,10,11都返回10的结果。
总的结果就是:{"A";"A";"A";"A";"A";"B";"B";"B";"C";"C"}
如果实现不理解的,也可以生搬硬套,直接记住=LOOKUP(ROW(合并单元格),ROW(合并单元格)/(合并单元格<>""),合并单元格)
如果是行就把row改成column就行了,要锁定记得按F4.

530.png

合并单元格处理.zip

6.62 KB, 下载次数: 26

评分

5

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-5-30 14:32 | 显示全部楼层
现在新时代好多了:
  1. =SCAN(,A2:A11,LAMBDA(x,y,IF(y="",x,y)))
复制代码

单字符语法糖:
image.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-5-30 15:07 | 显示全部楼层
感谢分享!记得祝老师分享过一个公式,在此借花献佛:
  1. =LOOKUP("座",A$2:A2)
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-30 22:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
魚。。 发表于 2024-5-30 14:32
现在新时代好多了:

单字符语法糖:

感谢您的指导,这种方法必须支持lambda函数才能使用。

TA的精华主题

TA的得分主题

发表于 2024-5-30 22:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 魚。。 于 2024-5-30 22:28 编辑

yellowhawk 发表于 2024-5-30 22:00
感谢您的指导,这种方法必须支持lambda函数才能使用。

现在WPS也支持Lambda的吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-30 22:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
1786024734 发表于 2024-5-30 15:07
感谢分享!记得祝老师分享过一个公式,在此借花献佛:

这个在合适的范围内是可以,如果继续向下拖,总会显示最后的内容。
而且如果合并单元格里的内容是数字的话,就会出现错误。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-30 22:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

这种方法如我的有异曲同工之妙,我用的除法,你用的if函数,原理是相同的。
IF(A2:A11<>"",ROW(2:11))
(A2:A11)/(A2:A11<>"")

TA的精华主题

TA的得分主题

发表于 2024-5-30 23:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-5-30 23:39 来自手机 | 显示全部楼层
yellowhawk 发表于 2024-5-30 22:11
这个在合适的范围内是可以,如果继续向下拖,总会显示最后的内容。
而且如果合并单元格里的内容是数字的 ...

受教了,谢谢

TA的精华主题

TA的得分主题

发表于 2024-10-12 16:29 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 21:29 , Processed in 0.036988 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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