Excel 合并单元格求和,一个函数就搞定了
消息来源:baojiabao.com 作者: 发布时间:2024-05-08
人要是倒霉啊,写一个 SUM 函数都能报错。
- SUM 函数我会,相对绝对引用我也会!
- 但是合在一起,就不会了!
没错,我说的就是合并单元格求和。
比如下面的表格中,要在 D 列合并单元格中求和,公式长成这样:
=SUM(C2:$C$20)-SUM(D3:$D$20)
你能看懂这个公式吗?
看不懂就算了!咱有更好的方法。
1
让大家写这个公式,就跟让董宇辉老师跟李佳琦学习卖货一样。
董宇辉是一个老师,擅长的是教学、讲课,旁征博引,传递知识;硬让他学习李佳琦 OMG 式的卖货,他做不来!
大家平时就是拿表格填一填数,核对一下数据,打印一下报表。非得让你写这样复杂的公式,太难为人了。
我想到了一个方法,把合并单元格求和变的很简单。改善后,公式长成这个样子。
=P_SUM_BY_HEBING(C2)
一个 P_SUM_BY_HEBING 函数解决问题,不用相对绝对引用,不用减来减去,就一个函数,这下不乱了!
2
P_SUM_BYHEBING 函数会自动识别出合并单元格的区域,并进行求和。
它有几个参数:
sum_cell:必须。要求和的单元格
只选 1 个单元格就可以了,目的是获得求和单元格所在的列。Excel 会自动判断求和的区域。
hebing_cell:可选。合并的单元格。
在求和的时候,要判断的合并单元格。
如果不设置这个参数,则默认为当前写公式的单元格。
is_by_col:可选。合并单元格是否按列合并的
表示合并单元格是否是按照列合并的。有两种结果:
- 1。默认:表示合并单元格,是按列合并的。
- 0。表示合并单元格,是按照行合并的。
来看几个例子,立马就能明白!
1- 合并单元格求和
按照合并单元格求和,基础用法,公式如下:
=P_SUM_BY_HEBING(A100)
公式中,P_SUM_BY_HEBING 根据第 1 个参数,知道了是对 A 列求和。
因为当前公式是在 B2 单元格,这个是一个第 2~3 行的合并单元格。
此时 P_SUM_BY_HEBING 会自动识别出,求和的区域是 A 列,第 2~3 行的区域。即 A2:A3,并进行求和计算。
2- 按照指定合并单元格求和
下面的案例中,按照 B 列合并单元格求和,计算结果填写到 C 列。
=P_SUM_BY_HEBING(C2,A2)
计算原理是类似的:
1- 第 1 个参数,确定出要求和的是 C 列的单元格。
2- 第 2 个参数,识别出求和的行是第 2~3 行。
这样综合得出求和区域是 C2:C3 单元格,计算后结果返回到 D2 单元格。
有趣的是,P_SUM_BY_HEBING 函数会自动识别第 1 个参数中的合并单元格,只要这个单元格,在合并单元格区域中就可以了。
3- 横向合并单元格求和
下面的公式,对横向的合并单元格快速求和。
通过设置第 3 个参数为 0,可以对横向合并的单元格求和。
=P_SUM_BY_HEBING(B1,,0)
公式的用法也是完全一样的。Excel 自动识别出合并单元格,并进行求和。
总结
如何获得函数?
P_SUM_BY_HEBING 函数的代码如下,复制粘贴到你的 VBA 中,就可以使用了。
Function P_SUM_BY_HEBING(ByVal sum_cell As Range, Optional ByVal hebing_cell As Range, Optional ByVal is_by_col As Integer = 1) Dim thisCell As Range, new_area As Range, first_cell As Range, cells_count As Integer Dim sr As Long, sc As Long, fr As Long, fc As Long If Not hebing_cell Is Nothing Then Set thisCell = hebing_cell Else Set thisCell = Application.thisCell End If Set first_cell = thisCell.MergeArea.Cells(1, 1) sr = sum_cell.Row sc = sum_cell.Column fr = first_cell.Row fc = first_cell.Column If thisCell.MergeCells Then If is_by_col = 0 Then cells_count = thisCell.MergeArea.Columns.Count - 1 Set new_area = Range(Cells(sr, fc), Cells(sr, fc + cells_count)) Else cells_count = thisCell.MergeArea.Rows.Count - 1 Set new_area = Range(Cells(fr, sc), Cells(fr + cells_count, sc)) End If P_SUM_BY_HEBING = WorksheetFunction.Sum(new_area) Else P_SUM_BY_HEBING = sum_cell End IfEnd Function
本文来自微信公众号:拉小登 (ID:ladengchupin),作者:拉登 Dony
2022-12-21 17:43:06相关文章
- 美国法院裁定阿里须为Squishmallows玩具侵权案答辩
2023-12-28 19:59:34
- 小米汽车传员工3700人 雷军称小米汽车不可能卖9万9
2023-12-28 19:41:57
- 国家新闻出版署:认真研究《网络游戏管理办法(草桉徵求意见稿)》关切 实行前进一步完善
2023-12-28 19:14:56
- 天猫新规可以无条件申请“仅退款”了?淘宝天猫又离狗多多零元购近了一步
2023-12-28 18:57:55
- 印度以打击金融犯罪为由逮捕了两名 vivo 高管
2023-12-26 16:49:01
- 在国外微信收不到国内信息?微信和WeChat将被拆分
2023-12-15 10:40:15
- 苹果iPhone15 系列手机发布最新消息 预计上市发布时间9月
2023-08-06 23:21:02
- 华为将发布鸿蒙HarmonyOS4操作系统 功能五大升级支持设备清单
2023-08-06 23:17:37
- 整治自媒体网红账号 400万粉丝网红发布擦边视频被无限期封禁
2023-07-12 09:56:09
- 网传微信文件传输助手是真人是真的吗?微信官方回应
2023-06-27 15:53:32
- 电信移动送手机成了“信用购”?你上了运营商的贷款套路了吗?
2023-06-12 17:18:55
- 中国电信广东地区崩了无信号 客服回应已在核实处理
2023-06-08 15:39:04
- 消息称小米新能源汽车价格表正讨论定价区间:双版本不同配置,高配或超 35 万元
2023-03-06 12:56:03
- 华为因制裁被传或分拆剥离手机业务? 内部人士回应:可能性不大.
2023-03-05 23:26:41
- OPPO正式发布安第斯智能云,让终端更智能
2023-02-24 16:02:27
- 华为与OPPO签订全球专利交叉许可协议 包括5G蜂窝通信专利
2023-02-24 16:02:26
- 老蛙将推MINI镜头新品:目前未知具体规格 官宣将于12月20日发布
2023-02-24 16:02:26
- 首发全新35mm定制光学系统 努比亚Z50性能同样强悍
2023-02-24 16:02:25
- Redmi K60屏幕细节曝光:全系标配2K护眼柔性直屏+5000mAh大容量电池
2023-02-24 16:02:25
- OPPO Find N2今天发 合金金属折叠屏更轻了
2023-02-24 16:02:24