Excel 2013:计算单元格中数字/string的出现次数
我需要计算在excel单元格中出现多less次数字。
以下条件:
-
每个单元可以有不同的重复数字组合,用逗号分隔。
-
Excel的公式将足够强大,以search用户所需的任何数字。
-
最大范围可达20。
例如,我会input任何数字,公式应该返回一个出现的总和。
1, 2, 3, 1, 5, 11, 1, 11 => 5 (input "1" and "11") => 3 (input "1" only) => 2 (input "11" only) *****************************************************
我已经尝试过的事情:
-
=LEN(A2)-LEN(SUBSTITUTE(UPPER(A2),"1,",""))
=>答案是7(错误) -
=LEN(A2)-LEN(SUBSTITUTE(UPPER(A2),"1",""))
=>答案是8(错误)
主要困难:该公式似乎search“1”,因此“11”往往也被误认为“1”,因而加上了总和。
十分之一的数字也是“5”,“15”等。
我的做法是做一个文本search,而不是数字,失败。
欣赏是否有替代解决scheme(文本 – >列?)。
您需要包含正面和背面的分隔符。 这意味着您也必须将它们作为前缀和后缀添加到原始string中。
=(LEN(", "&A2&", ")-LEN(SUBSTITUTE(UPPER(", "&A2&", "),", 1,", "")))/LEN(", 1,")
如果VBA可行,将其添加到VBA代码并使用以下函数(假设您的长string位于单元格A2中)
= getOccurence(A2,5)
VBA代码:
Function getOccurence(inputString As String, numberToSearch As Integer) As Integer Dim strArray() As String strArray = Split(inputString, ",") For i = 0 To UBound(strArray) If (strArray(i) = numberToSearch) Then getOccurence = getOccurence + 1 End If Next End Function
我会使用文本到列来获取每个数字在自己的单元格。 注意:您可能需要先插入空白列来保存数字,以免覆盖任何数据!
在此之后,我将使用COUNTIF函数来计算某个范围内某个数字的出现次数。 例如:
= COUNTIF(F5:I5,2)+ COUNTIF(F5:I5,3)
这在F5:I5范围内计算2和3的数量
有关更多信息,请参阅: