我需要计算excel单元格中任何给定数字的出现次数。
以下条件:
每个单元格可以有不同的重复数字组合,以逗号分隔。
excel公式足以搜索用户所需的任何数字。
最大范围最多20个。
例如,我会输入任何数字,公式应该返回一个出现的总和。
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(错误)
主要困难: 该公式似乎在寻找" 1"因此" 11"经常被误认为" 1"也是如此,因此增加了总和。
同样适用于" 5"," 15"等等,十分之一的任何数字。
我的方法是进行文本搜索而不是数字,但失败了。
感谢是否有替代解决方案(文本 - >列??)。
答案 0 :(得分:2)
您需要包括正面和背面的分隔符。这意味着您还必须将它们作为前缀和后缀添加到原始字符串中。
=(LEN(", "&A2&", ")-LEN(SUBSTITUTE(UPPER(", "&A2&", "),", 1,", "")))/LEN(", 1,")
答案 1 :(得分:2)
如果VBA可行,请将其添加到VBA代码并使用以下函数(假设您的长字符串位于单元格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
答案 2 :(得分:0)
我会使用文本到列来获取其自己的单元格中的每个数字。注意:您可能希望插入空白列以保留数字,以便不覆盖任何数据!
在此之后,我将使用COUNTIF函数来计算某个范围内某个数字的出现次数。例如:
= COUNTIF(F5:I5,2)+ COUNTIF(F5:I5,3)
这计算F5:I5
范围内的2和3的数量有关详情,请参阅: