我想数一个单元格中的数字。
示例:
在单元格A1中,我添加了以下内容:=12+45+23+51+10
总计(并显示)141
。
在单元格B1中,我想看看有多少个数字加在一起,这意味着应该有5个(12是一个数字,45是另一个数字,等等...在单元格A1中总共有5个数字)。
我知道这似乎是一个荒谬的问题,但我扫描了所有平台的这个问题,并没有找到任何合适的解决方案。尝试了所有的LEN
和LEN SUBSTITUTE
替代品,但不知何故,它不起作用。
谢谢你的帮助。最佳的解决方案将是一个excel公式,或者VBA也可以工作。
6条答案
按热度按时间kkbh8khc1#
Excel 2013有一个新函数
Formulatext()
,它返回公式文本。使用Len()
和Substitute()
方法可以工作。xjreopfe2#
点击Alt+F11并使用以下VBA插入->模块:
然后,您可以在任何单元格上调用
=NumCount(A1)
,以获取该单元格的公式中的数字数量。thigvfpy3#
在没有VBA的早期Excel版本中也是可能的-受制于(i)单元格中总是至少有一个值,(ii)运算符总是
+
,以及(iii)单元格在列中。将该列中的
=
替换为'=
,应用替换,例如:在另一列中,选择性粘贴,为另一列的结果赋值。然后对原始列应用“列的文本”,并使用
'
作为分隔符。klsxnrf14#
使用此VBA:
然后得到数字的个数
作为我的D99内容
这里的一个主要缺点是我假设所有内容都是
+
;如果你有-
,*
,/
或其他运算符,这就变得更有挑战性了。您可能可以对每一个操作符使用replace,但您始终限于使用四个基本操作符。如果有人使用指数或mod,这将是困难的。798qvoo85#
如果不使用Excel VBA编写的用户定义函数(UDF),则无法实现此操作。类似这样的东西应该可以工作:
一旦您将其添加到VBA模块中,您就可以将其用作电子表格中任何单元格中的函数。
***编辑:***显然,如果你有Excel 2013,就像@teylyn在接受的答案中建议的那样。如果你使用Excel 2010或更早版本,像我一样,你仍然需要VBA。
uajslkp66#
试试这个:
***注意:***F16只是要计数的单元格的示例名称。
示例: