一个用于计算合并单元格数量的Excel公式?

4

在Microsoft Excel中,是否有一个公式可以将对单元格的引用作为参数,并返回合并到一个单元格中的单元格数量?例如,如果我合并了3个单元格,则该公式返回该单元格的3;如果我合并了2×4个单元格区域,则该公式返回8,依此类推...

3个回答

5

考虑这个微小的UDF(用户定义函数):

Public Function MergeSize(r As Range) As Long
    MergeSize = r(1).MergeArea.Cells.Count
End Function

如果UDF返回1,单元格是独立的!
用户定义函数(UDFs)非常容易安装和使用:
  1. 按下ALT-F11打开VBE窗口
  2. 按下ALT-I ALT-M打开新模块
  3. 将内容粘贴并关闭VBE窗口
如果保存了工作簿,UDF将随其一起保存。 如果您使用的Excel版本晚于2003,则必须将文件保存为.xlsm 而不是.xlsx
删除UDF的方法如下:
  1. 按上述方法打开VBE窗口
  2. 清除代码
  3. 关闭VBE窗口
从Excel中使用UDF的方法如下:

=MergeSize(A1)

要了解更多有关宏的信息,请参见: http://www.mvps.org/dmcritchie/excel/getstarted.htm 以及 http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx 特定于UDF的详细信息请参见: http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx 必须启用宏才能使用UDF!

2

Excel没有内置此功能,但编写一个类似的函数非常容易。

Function mergedcells(rng As Range) As Integer
    mergedcells = rng.MergeArea.Cells.Count
End Function

-1

使用偏移函数可以帮助解决这样一种情况:如果您的数据在左侧(或下方)列中,此公式将计算距离合并单元格一定距离处填充单元格的数量。

请尝试以下操作 =COUNTA(OFFSET('[合并单元格范围],0,-1))

-1 将计数向左移动一列 如果数据在下方,则结尾为,1,0)

如果周围只有空白单元格,请尝试使用以下公式

=COUNTBLANK(OFFSET('[合并单元格范围],0,-1))

如果存在空白和填充单元格的混合,请将公式相加


Derek,你的评论并不是很有帮助。我是新手,正在尝试给出好的建议。也许如果你能够帮忙指出需要改进的地方和如何改进,我就可以进行编辑,使其更加优美。但像你所做的那样发表评论并没有提供任何指导或清晰度。 - Lachlan Duncan
它被标记为低质量。我不知道该告诉你什么。 - Derek Brown
你好,能否请您将这段内容进行更好的格式编辑? - Lachlan Duncan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接