Ich habe eine einzelne Spalte mit codierten Daten in Excel wie folgt:
a
b
ab
bc
ad
b
ac
Ich weiß, dass ich mit die Instanzen aller Zellen finden kann, die „a“ enthalten =COUNTIF(A1:A7,"*a*")
. Das würde mir 4 geben. Ich kann auch „b“ zählen, =COUNTIF(A1:A7,"*b*")
was 4 ergibt.
Was ich jedoch brauche, ist, Zellen zu zählen, die "a" ODER "b" enthalten, aberzählt nicht doppeltZellen, die beides enthalten. =COUNTIF(A1:A7,"*a*")+COUNTIF(A1:A7,"*b*")
= 8, aber ich möchte eine ODER-Bedingung, die 7 zählt, indem „ab“ nicht doppelt gezählt wird.
Wenn dies ein regulärer Ausdruck wäre, könnte ich etwas wie Folgendes tun, =COUNTIF(A1:A7,"[ab]")
aber ich kann nicht …
UPDATE: Wie inein Kommentar, dies ist ein vereinfachtes Beispiel. Ich habe AM im Datensatz und muss möglicherweise Kombinationen von zwei, drei oder sogar sieben verschiedenen Werten zählen, daher brauche ich eine skalierbare Lösung.
Antwort1
Diese Lösung sollte als skalierbare Implementierung funktionieren, die problemlos für andere Zeichenfolgen erweitert werden kann.
=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))>0))
Beispiel für das Hinzufügen einer weiteren Zeichenfolge:
=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))+ISNUMBER(FIND("c",A1:A7))>0))
Dies funktioniert, indem die FIND
Funktion für jede Zelle im Bereich ausgeführt wird und mithilfe von ISNUMBER
ermittelt wird, ob eine Übereinstimmung gefunden wurde. Die Ergebnisse werden für jede Zelle addiert, und dann >0
gibt am Ende an, dass jede Zelle gezählt werden soll, die mindestens einer der Übereinstimmungen entspricht FIND
. Das SUMPRODUCT
addiert alles, um eine endgültige Antwort zu erhalten.
Für eine Groß-/Kleinschreibung nicht berücksichtigende Übereinstimmung können Sie die FIND
Funktion durch ersetzen SEARCH
.