2016-03-23 16 views
3

Excelのセルに任意の数字が何回現れたかを計算する必要があります。以下Excel 2013:セル内の数字/文字列の出現をカウントする

条件:

  • 各セルは、コンマで区切られ、繰り返し数の異なる組み合わせを有することができます。

  • Excel式は、ユーザーが希望する任意の数値を検索するのに十分なほど堅牢です。

  • Maxは、実施例

20までの範囲で、Iは入力任意の数および式は私の発生の和を返すべきであろう。


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」など、10分の1の数字はすべて同じです。

私のアプローチは数字の代わりにテキスト検索を行うことでしたが、失敗しました。

代替ソリューションもある場合は気をつけてください(テキスト - >列??)。

答えて

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にあると仮定して)次の関数を使用します0

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

関連する問題