您的位置: 首页 > EXCEL技巧 > Excel函数 >

用自定义函数获取合并单元格内的行数

时间:2013-12-13 整理:docExcel.net

有时需要在Excel公式中用到合并单元格内所包含的行数或列数。例如下图为几类产品的数量统计,其中每种大类的产品都包含若干小类,需要在合并的单元格中得到各种小类的品种数及数量合计。由于合并单元格与各个小类单元格相对应,且各小类数量不等,因而有必要统计合并单元格内的行数。

用自定义函数可以方便地得到合并单元格内的行数或列数,方法如下。

按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在代码窗口中输入下列代码:

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中的CONCATENATE函数可以将多个文本字符串联接成一个文本字符串,但有时需要按指定条件合并某些单元格的内容到一个单元格,这时CONCATENATE函数无法实现,而使用下面的自定义函数就十分方便了。如图所示,需要在F2单元格...
怎样在单元格内合并文本和日期 问题:怎样在单元格内合并文本和日期
回答:有时要在Excel中将分别包含文本和日期的单元格内合并到一个单元格内,如A1单元格中包含文本“交货日期”,A2单元格中为日期“2010-12-31”,要在另一个单元格中显示:“交货日期:2010年12月31日”。如果直接使用公式“=A1&am...
合并单元格怎么合并数据而不是求和 问题:合并单元格怎么合并数据而不是求和
回答:合并只是格式上的合并,而内容只会保留所选区域的第一个单元格内的内容。你的数据如果是字符串(文本)形式的,建议用CONCATENATE函数合并
合并多个单元格中的文本内容 问题:合并多个单元格中的文本内容
回答:...区域。如公式: =PHONETIC(A1:D1) 将合并A1:D1区域中各单元格内的文本,而非文本内容将被忽略。
Excel2013中合并单元格技巧大全 问题:Excel2013中合并单元格技巧大全
回答:...列单元格中的内容,抑或是要合并某几个不同行列的单元格内容,在这里,我们都能找到最适合的方法,一起来瞧瞧吧。 合并同一行中连续单元格 用Excel2013打开需要合并同行单元格的工作表,例如,我们现在来合并A1至D1单元...
怎样合并多个单元格内容时,下拉为什么是公式 问题:怎样合并多个单元格内容时,下拉为什么是公式而不是内容
回答:将单元格格式改为常规即可,单元格格式为文本的时候,就会显示公式。
相关知识:

下面内容对您也许有用

      话题:如何在EXCEL单元格中使用自定义函数?知道
      答:比如说,你要做一个简单的函数,把输入的数字乘以100,然后输出。Excel打开,alt+F11,在左侧右键,插入模块,输入下面代码:Function Multiply(a As Long) Excel用自定义函数倒读单元格 excel如何用自定义函数单元格
      话题:excel如何用自定义函数给单元格赋值
      答:自定义函数中不能对其他单元格赋值 你的要求可以用工作表的Change事件过程来实现 也就是说 当指定单元格发生变化时 自动运行一段程序 程序中可以对需要的单元格 excel 里面有能给单元格随机赋值 excel函数求助,当同时满足两组
      话题:如下图,表格中的序号分为不同颜色标记,表格中有空行,有合并
      问:在网上查到的代码,可以实现不同颜色单元格数量的统计,但是由于有空行和合并
      答:由于自定义函数Function过程不能选定单元格操作,所以不能用Selection方法通过行数来判断区域内某单元格是否合并。只能用变通的方法,比如把区域内都填上数据, 用excel表格统计用颜色标记的 EXCEL高手进,求excel表格,按
      话题:如何在VBA自定义函数中引用单元格
      问:最简单的比如我想模仿Index函数的功能,在选定的区域找到某行某列的元素,该如何写
      答:Public Function SelectFrom8(All As Range,i As Integer,j As Integer)SelectFrom8=All.Cells(i,j).Value End Function 两个问题:函数的返回值不要指定As
      话题:Excel中自定义函数,如何获取调用该自定义函数的单元格所在的
      问:如题,Excel中自定义函数,如何获取调用该自定义函数单元格所在的工作簿和名
      答:Sub aa()a=ActiveCell.Parent.Parent.Name '工作簿名称 b=ActiveCell.Parent.Name '工作表名称 c=ActiveCell.Address '单元格地址 MsgBox a&b&c End Sub 追问 我 如何在Excel工作表中引用自定义 Excel中Countif函数中引用的范围
      话题:EXCEL自定义函数,如何直接引用单元格区域?知道
      答:例如:Function 自定义函数名(rag As Range)As Double 自定义函数名=Application.WorksheetFunction.Sum(rag)End Function=自定义函数名(D1:D5)可求D1:D5单元格 EXCEL中COLUMN函数单元格区域 高分求助,关于EXCEL动态图表的
      话题:Excel合并单元格统计
      我要在B9位置得到一个数字6,就是B列中包含合并单元格的计数。(也就是A列中标为黄色的单元格计数)。有知道的指点下。给我来个简单所以,还是用自定义函数吧,也不麻烦,甚至比公式更好理解。
      话题:求Excel自定义函数计算两数之间空单元格个数
      答:把结果放到两格,可以实现。ar2输入:=SMALL(IF($M2:$AP2"",COLUMN($M:$AP),256),COLUMN(B1))-SMALL(IF($M2:$AP2"",COLUMN($M:$AP),256),COLUMN(A1))-1 以 EXCEL函数单元格内统计个数 求Excel函数:计算单元格中数字
      话题:EXCEL如何修改公式=phoic(A1:N1)使合并得单元格内容之间
      问:这个公式是合并A1到N1的内容不含空格,怎样改下使合并结果内容之间加入空格(A1
      答:phoic函数并不是专门为合并单元格而设计的,因此它不能满足你的要求。需要使用自定义函数来解决。下面是我自己用的自定义文本合并函数代码(相关地址是:
      话题:VBA的自定义函数 和单元格 赋值
      问:大家好,在VBA中,我自定义了一个函数,现在我想通过这个函数,把sheet1里面的
      答:经在Excel 2003上运行,你的自定义函数能运行,只是X变量有些画蛇添足。你的问题可能是锁定了单元格并保护了工作表。Function Sat(T As Single)As Single Sheet2
最新评论