ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 让人头疼的合并单元格条件求和

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-10-19 17:51 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 佛山小老鼠 于 2016-10-19 17:53 编辑

今天和大家分享的是——让人头疼的合并单元格条件求和
具体要求见下面的图

大家先不要急着往下面看,动动脑筋2分钟,看下你有什么方面实现,再往下面看

方法1:倒数加法
首先大家要明白一个道理,合并单元格里的数据会出现那一个单元格?答案是:合并单元格中的数据会出现在合并单元格左上角第一个单元格
我们选择A列点一下格式刷,然后选中C列,目的也让C列出现合并单元格

思路:B列所有的总和=sum(B1:$B$12),B12要用绝对引用减掉C2:$C$12,C12要用绝对引用,我们把公式写在C1,为什么要从C2开始,不从C1开始,如果从C1开始就会造成循环引用,且我们的数据都是在合并单元格左上解第1个单元格,所以影响我们计算,这样就得到了我们想的结果=SUM(B1:$B$12)-SUM(C2:$C$12)
把公式输好之后,打钩,然后选中区域C1:C12,把光标点到编辑栏里,按快捷键Ctrl+Enter,得到下图的结果

方法2:Offset+Match+Indirect实现
老鼠老师你这个倒数加法很好,可是我不想合并C列,那样太麻烦了,我想直接在单元格里实现,晕,没有办法,别人要求要这样,我只好动脑,使用自己的洪荒之力,终于想出一种解法,我相信还有简单的解法,我也有只这个能力了,公式长了一点


offset共5个参数
第1参数:参照位置
第2参数:偏移行
第3参数:偏移列
第4参数:行高
第5参数:列宽

先我们来求出offset函数的第2参数,偏移多少行?查找值是张三,到A列找,精确查找MATCH(E1,A:A,)找到张三在第1个位置,还要减掉1因为张三在A1单元格,不要偏移MATCH(E1,A:A,)-1

现在来看第4参数行高,这个相对来说,是这个题目重点,也是难点,请大家耐心听我解释
查找值是张三,到A列里找,精确查找,公式是=MATCH(E1,A:A,),这里的第3参数本为是0,我简写了,这样找到张三在第1个位置,本来张三也是在A1单元格,那么我们等下要引用要从B1开始,所以行不偏移,要加1, 得到公式=MATCH(E1,A:A,)+1,也就是说我们区域是从张三下一个单元格开始,A2开始,然后找到第一个不等于空的值,="A"&(MATCH(E1,A:A,)+1),返这个公式抹黑,F9,到A2,这样我们就得到了一个根据查找值来确定单元格区域,="A"&(MATCH(E1,A:A,)+1)&":A13",把它抹黑,F9,得到A2:A13,同理当查找值是李四时,="A"&(MATCH(E1,A:A,)+1)&":A13"把公式抹黑得到单元格区域A5:A13,其实我们现在得到只是文本,还不是单元格区域,摇身一变,还要外面嵌套一个indirect函数,这样返回的才是单元格区域,=indirect("A"&(MATCH(E2,A:A,)+1)&":A13"),从A2开始,我们要找到第一个不等于空的位置,也就是李四出现的位置,本来我们应该要减1,但是我们查找时回避张三本身,所以就不用减1了,
=MATCH(1=1,INDIRECT("A"&(MATCH(E1,A:A,)+1)&":A13")<>"",)

刚好张三合并了三个单元格
解释一下1=1,F9,返回的是True,也就是说match的查找值是True
我们现在基本上要完成公式了,下面我们把我们前面那个match合并起来,作为offset的第2参数,现在的这个match作为offset的第4参数
最后合起来得到下面的公式
=OFFSET($B$1,MATCH(E1,A:A,)-1,0,MATCH(1=1,INDIRECT("A"&(MATCH(E1,A:A,)+1)&":A13")<>"",),1)
解释offset函数第1参数从B1单元格开始,第2参数偏移行就是第1个match得到的,第3参数列不偏移就是0,第4参数行高就是第2个match得到,第5参数列宽为1
我们把这个公式=OFFSET($B$1,MATCH(E1,A:A,)-1,0,MATCH(1=1,INDIRECT("A"&(MATCH(E1,A:A,)+1)&":A13")<>"",),1)抹黑,F9得到{100;200;300},最后我们要求张三的和,还要在最外面嵌套一个sum函数得到这个的公式=SUM(OFFSET($B$1,MATCH(E1,A:A,)-1,0,MATCH(1=1,INDIRECT("A"&(MATCH(E1,A:A,)+1)&":A13")<>"",),1)),最后大家把这个公式输在F1单元格,把光标移到编辑里,三键一齐下Ctrl+Shift+Enter,数组公式,大功告成

6.png


备注:有的朋友说,老师我按你操作,不行,注意,这里我动了手脚,我在A13单元格按了一个空格,也就是说A13单元格一定要有东西存在,我们才可以找到王五的分隔点,因为要保证王五后面也有不等于空

工作簿1.zip

7.12 KB, 下载次数: 167

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-10-19 22:49 | 显示全部楼层
谢版主分享!学习了,也可以这样
  1. 单值数组公式
  2. =SUM((LOOKUP(ROW($1:$12),IF(A$1:A$12<>"",ROW($1:$12)),A$1:A$12)=E1)*B$1:B$12)
  3. 多单元格数组公式(选定F1:F3)
  4. =SUM(OFFSET(B1,MATCH(E1:E4,A:A,)-1,,FREQUENCY(-ROW(1:12),IF(A1:A12<>"",-ROW(1:12)))))
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-10-20 06:13 | 显示全部楼层
b1=VLOOKUP(A2,IF({1,0},Sheet1!B:B,Sheet1!A:A),2,0)
b2=IF(VLOOKUP(A2,IF({1,0},Sheet1!B:B,Sheet1!A:A),2,0)=0,B1,VLOOKUP(A2,IF({1,0},Sheet1!B:B,Sheet1!A:A),2,0)) 下拉

TA的精华主题

TA的得分主题

发表于 2016-10-20 10:31 | 显示全部楼层
zengyidin 发表于 2016-10-19 22:49
谢版主分享!学习了,也可以这样

区域数组公式与您写两0之间最大数的公式有异曲同工之炒啊,学习了。

TA的精华主题

TA的得分主题

发表于 2016-10-20 14:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
菜鸟献丑
SUM(OFFSET($B$1,MATCH(E1,$A$1:$A$12,)-1,,SUM(IFERROR(SMALL(IF($A$1:$A$12<>"",ROW($1:$12)),ROW(1:2)),13)*{-1;1})))数组
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2016-10-20 15:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

发表于 2016-10-20 15:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-10-21 09:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好复杂,,看上去好晕啊,,

TA的精华主题

TA的得分主题

发表于 2021-4-4 11:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-1-19 15:39 | 显示全部楼层
非常感谢!=SUMPRODUCT((LOOKUP(ROW($A$1:$A$12),ROW($A$1:$A$12)/($A$1:$A$12<>""),$A$1:$A$12)=$E1)*$B$1:$B$12)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-20 18:24 , Processed in 0.050717 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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