观察一下可以看到,A、B、C的零部件个数不一样,也就是合并后的汇总单元格行数不一样,如果直接用填充单元格的方法是行不通的。
这里给大家分享两个解决的方法。
方法一:Ctrl+Enter
选中需要汇总的合并单元格(N2:N11),然后在公式栏里输入第一个合并单元格的公式(=SUM(I2:I5)),然后按Ctrl+Enter。总重的计算也是一样的。
方法二:VBA
原理和方法一基本相似,只是用代码表示出来了而已。
Row = [I2].End(xlDown).Row
Range("B2:B" & Row).Copy
Range("N2:N" & Row).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("N2:N" & Row).FormulaR1C1 = "=SUM(OFFSET(RC[-5],0,0,MergeRowsCount(RC[-12])))"
Range("O2:O" & Row).FormulaR1C1 = "=RC[-1]*RC[-4]"
其中MergeRowsCount()是自定义的函数,目的是用来计算合并单元格的行数。
MergeRowsCount = Rng.MergeArea.Rows.Count
效果如下,使用VBA有个好处就是,如果后面还有新增的内容需要汇总,直接一键即可实现。方法一的话则需要重新按Ctrl+Enter进行计算。
大家如果觉得实用,点个“在看”并分享给更多的朋友吧!
你可能还会想看:
Excel VBA 实例(27) – 一键按列分类并保存单独文件
微信公众号:永恒君的百宝箱
个人博客:www.yhjbox.com