2017-10-08 3 views
1

Ich versuche, bestimmte Wörter in Zelle zu zählen und die Summe anzuzeigen. Ich habe Lösungen mehrerer ähnlicher Fragen gesucht und ausprobiert, konnte es aber nicht. Hier im Beispiel unten hat Spalte A den Text, Spalte B hat eindeutige Wörter (Kriterien für die Suche), die gezählt werden müssen, und Spalte C ist die Anzahl. Bitte helfenExcel: Zähle bestimmte Wörter in einer Zelle

Beispiel:

|  Column A   |  Column B  | Column C | 
| AA; BB; CC; AE; DE | AA; DE; CC  |  3  | 

Antwort

0

Bedenken Sie:

Public Function StringCounter(sBig As String, sKeys As String) As Long 

ary = Split(sBig, ";") 
bry = Split(sKeys, ";") 
StringCounter = 0 

For Each b In bry 
    If InStr(1, ";" & sBig & ";", ";" & b & ";") <> 0 Then 
     StringCounter = StringCounter + UBound(Filter(ary, b)) + 1 
    End If 
Next b 
End Function 

Zum Beispiel:

enter image description here

Wenn ein Wort wie AA mehr erschien als einmal in der Zelle A1 , würde die Funktion jedes Auftreten zählen.

EDIT # 1:

Diese Version wird mit oder ohne Leerzeichen arbeiten:

Public Function StringCounter(sBig As String, sKeys As String) As Long 

    sBig = Replace(sBig, " ", "") 
    sKeys = Replace(sKeys, " ", "") 

    ary = Split(sBig, ";") 
    bry = Split(sKeys, ";") 
    StringCounter = 0 

    For Each b In bry 
     If InStr(1, ";" & sBig & ";", ";" & b & ";") <> 0 Then 
      StringCounter = StringCounter + UBound(Filter(ary, b)) + 1 
     End If 
    Next b 
End Function 

enter image description here

+0

ausgezeichnet, das funktioniert sehr gut. Es gibt jedoch ein Problem - Wenn eine Zelle einen Wert AE in Spalte A und Spalte B AA hat; AE; CC die Anzahl in Spalte C ist 0. Ist es wegen Semikolon oder Leerzeichen? – user7357285

+0

@ user7357285 Ich habe ein kleines Update für den Code ... bitte kopieren Sie es erneut. –

+0

@ user7357285 Ich muss zusätzliche Änderungen vornehmen, um die Leerzeichen anzupassen. –

Verwandte Themen