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) ***************************************************** 

我已经尝试过的事情:

  1. =LEN(A2)-LEN(SUBSTITUTE(UPPER(A2),"1,","")) =>答案是7(错误)

  2. =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的数量

有关更多信息,请参阅:

https://exceljet.net/excel-functions/excel-countif-function