2016-03-23 152 views
3

我需要計算在Excel單元格中出現給定數字的次數。Excel 2013:計算單元格中出現的數字/字符串

條件如下:

  • 每個單元可以具有重複的數字,用逗號分隔的不同組合。

  • 該excel公式將足夠強大,足以搜索用戶所需的任何數字。

  • 最大範圍可達20

實施例,我想輸入任何數量和式應該返回我發生的總和。


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(錯誤的)

主要難度: 該公式似乎搜索「1」,因此「11」通常也會被忽略爲「1」,因此將其添加到總和中。

同樣適用於「5」,「15」等,十分之十的任何數字。

我的做法是做文本搜索而不是數字,失敗了。

欣賞是否有替代解決方案(文本 - >列??)。

回答

2

您需要包含正面和背面的分隔符。這意味着您還必須將它們作爲前綴和後綴添加到原始字符串中。

=(LEN(", "&A2&", ")-LEN(SUBSTITUTE(UPPER(", "&A2&", "),", 1,", "")))/LEN(", 1,") 
+0

感謝Jeeped。 這很好。 我將重新修改此行以搜索2個不同數字的出現。 – user6027952

0

我會使用文本到列來獲取每個數字在它自己的單元格。注意:您可能希望先插入空白列來保存數字,以免覆蓋任何數據!

在此之後,我將使用COUNTIF函數來計算某個範圍內某個數字的出現次數。例如:

= COUNTIF(F5:I5,2)+ COUNTIF(F5:I5,3)

此計數2的的數量和範圍內F5 3分的:I5

更多關於這一點,請參見:

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

+0

感謝您的意見。沒想到CountIf,值得一試。 – user6027952

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 
+0

感謝Danielle,但VBA現在不在我的聯盟中。 – user6027952

相關問題