千家信息网

Excel 合并单元格求和,一个函数就搞定了

发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,人要是倒霉啊,写一个 SUM 函数都能报错。- SUM 函数我会,相对绝对引用我也会!- 但是合在一起,就不会了!没错,我说的就是合并单元格求和。比如下面的表格中,要在 D 列合并单元格中求和,公式长
千家信息网最后更新 2025年02月19日Excel 合并单元格求和,一个函数就搞定了

人要是倒霉啊,写一个 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

单元 公式 函数 参数 区域 自动识别 横向 结果 面的 不用 就是 方法 老师 表格 李佳 学习 复杂 有趣 倒霉 旁征博引 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南宁轨道交通网络安全事件 数据库系统三级模式有什么 软件开发的最佳方法 大专生在软件开发行业 梦幻西游手游数据库 魔兽世界怎样进数据库 国铁集团网络安全等级是几级 审计局 网络安全应急团队 大批量服务器管理装机工具 服务器的gpu模式 改变查询编辑器的当前数据库 数据库运维方案报价 网络安全自查采集填表模板 应聘软件开发工程师面试问题 濮阳软件开发平均价格 监控数据库变化的程序 怀旧服部落服务器怎么扩容 新罗区城修蔚网络技术工作室 创造与魔法合并的服务器 巴中网络安全会议 衡阳国通网络技术有限公司 gee引擎用什么配置的服务器 浙江机架式服务器机箱工厂云空间 电信云服务器安全吗 企业管理软件开发公司排名 服务器一般错误 ios好用的股票软件开发 大型服务器idc 软件开发项目经理怎么样 apex改文件后找不到服务器
0