有时需要在Excel公式中用到合并单元格内所包含的行数或列数 。例如下图为几类产品的数量统计,其中每种大类的产品都包含若干小类,需要在合并的单元格中得到各种小类的品种数及数量合计 。由于合并单元格与各个小类单元格相对应,且各小类数量不等,因而有必要统计合并单元格内的行数 。
用自定义函数可以方便地得到合并单元格内的行数或列数,方法如下 。
按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在代码窗口中输入下列代码:
【在excel中用自定义函数获取合并单元格内的行数】Function MergeRowsCount(Rng As Range) As Long
MergeRowsCount = Rng.MergeArea.Rows.Count
End Function
这样就定义了一个自定义函数MergeRowsCount,它可以获取某个合并单元格内所包含的行数 。上图中,E5单元格为5行合并的单元格,下面的公式可以返回数值5:
=MergeRowsCount(E6)
由于本例中E列或F列合并单元格内的行数不等,不能用拖动的方法填充公式,用下面的方法来批量输入公式:
选择E3:E12区域,在编辑栏中输入公式:
=COUNTA(OFFSET(D3,,,MergeRowsCount(E3)))
然后按Ctrl+Enter即可将公式输入到E列各合并单元格,该公式返回合并单元格对应C列的小类产品品种统计 。用同样的方法将下面的公式输入到F列,在各合并单元格中即可得到小类产品的数量合计:
=SUM(OFFSET(D3,,,MergeRowsCount(E3)))
要获取合并单元格内所包含的列数,可用下面的代码:
Function MergeColumnsCount(Rng As Range) As Long
MergeRowsCount = Rng.MergeArea.Columns.Count
End Function
推荐阅读
- Excel统计一列中连续相同值的几个数组公式
- excel用函数连接两个或多个单元格
- excel使用NOW函数函数返回当前时间
- excel利用选择性粘贴将筛选后的公式结果批量转换为值
- 怎么在Excel中判断单元格是否包含日期
- 在excel2010中利用函数提取字符串的最后一个词
- 怎么让Excel筛选后的序号自动连续
- 怎么找天泉准确位置
- 在建筑上雕蝙蝠寓意什么
- 在太空中应该怎样吃饭