Überprüfen auf einen von zwei Textwerten (Microsoft Excel)
Chris möchte Zellen, die den Textwert A oder den Textwert B enthalten, an einer beliebigen Stelle im Text der Zelle zählen. Wenn die Zelle sowohl A als auch B enthält, möchte sie sie zählen, aber nur einmal. Zum Beispiel hat Chris drei Zellen, die „Apfelsamen“, „Apfelbaum“ und „Pfirsichsamen“ enthalten, und sie möchte wissen, wie viele Zellen entweder „Apfel“ oder „Samen“ enthalten. (Die richtige Antwort, die zurückgegeben werden sollte, ist 3.)
Es gibt viele Möglichkeiten, wie dies angegangen werden kann. Bei der Prüfung von Lösungen habe ich nur die Lösungen untersucht, bei denen Zwischenantworten vermieden werden und die zusätzliche Spalten belegen. Die erste Lösung besteht darin, die COUNTIF-Funktion folgendermaßen zu verwenden:
=COUNTIF(A1:A9,"apple")+COUNTIF(A1:A9,"seed") -COUNTIF(A1:A9,"seedapple")-COUNTIF(A1:A9,"appleseed")
Die Formel zählt alle Zellen, die entweder „Apfel“ oder „Samen“ enthalten
und subtrahiert dann alle Zellen, die „Samen“ enthalten, gefolgt von „Apfel“
(beide Wörter befinden sich in der Zelle) oder „Apfel“, gefolgt von „Samen“ (dieselben Wörter in umgekehrter Reihenfolge).
Eine andere, etwas kürzere Lösung basiert auf den hier gezeigten Funktionen COUNTA und FIND:
=COUNTA(A1:A9)-SUMPRODUCT(--(ISERROR(FIND("apple",A1:A9))) * --ISERROR(FIND("seed",A1:A9)))
Die Formel zählt die Zellen, die Werte enthalten, und subtrahiert dann alle Zellen, die weder „Apfel“ noch „Samen“ enthalten.
Wenn Sie möchten, können Sie auch eine der Datenbankfunktionen von Excel verwenden.
Vorausgesetzt, Sie haben eine Spaltenüberschrift für Ihre ursprünglichen Phrasen, ist dies nicht so schwierig und führt zu der kürzesten Formel. Sie müssen lediglich eine entsprechende Kriterientabelle einrichten. Angenommen, Ihre Daten befinden sich in A1: A9, und die erste Zelle in der Spalte enthält eine Überschrift wie „Meine Sätze“. In einer anderen Spalte sollten Sie dieselbe Überschrift einfügen und dann in den beiden Zellen direkt darunter die beiden folgenden Formeln platzieren:
apple seed
Die Kriterien geben an, dass Sie mit allen Zellen übereinstimmen möchten, die „Apfel“ oder „Samen“ in der Zelle enthalten. Mit dieser Einstellung (ich gehe davon aus, dass Sie die Kriterientabelle in D1: D3 platziert haben) können Sie die folgende Formel verwenden:
=DCOUNTA(A1:A9,1,D1:D3)
Natürlich können Sie auch eine Array-Formel verwenden (eingegeben durch Drücken von Strg + Umschalt + Eingabetaste), um Ihre Antwort zu erhalten. Das Folgende ist eine solche Formel, die sich wiederum darauf stützt, dass die Phrasen in A1 überprüft werden: A9:
=SUM(--((ISNUMBER(FIND("apple",A1:A9))+ISNUMBER(FIND("seed",A1:A9)))>0))
Wenn Sie sich mehr für die Arbeit mit Makros interessieren, können Sie eine benutzerdefinierte Funktion erstellen, die die Anzahl für Sie zurückgibt. Das Folgende ist ein Beispiel für eines, das funktionieren wird:
Function FindTwoStrings(rng As Range, s1 As String, _ s2 As String) As Integer Application.Volatile If TypeName(rng) <> "Range" Then Exit Function Dim cell As Range For Each cell In rng.Cells If (InStr(1, UCase(cell.Value), UCase(s1), _ vbTextCompare) > 0) Or (InStr(1, UCase(cell.Value), _ UCase(s2), vbTextCompare) > 0) Then _ FindTwoStrings = FindTwoStrings + 1 Next cell End Function
Um die Funktion zu verwenden, können Sie diese Formel in einer Zelle verwenden:
=FindTwoStrings(A1:A9,"apple","seed")
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (9326) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: