Google Sheets-Formel für "Wenn enthält"

38

Ich versuche herauszufinden, wie man IFeine Liste von Elementen in einer Zelle identifiziert, die einen Wert oder eine Zeichenfolge enthält.

BEISPIEL

Zelle A1 enthält sites, sheets, docs, slides.

Ich möchte, dass Zelle B1 eine 1 anzeigt, wenn Zelle A1 die Zeichenfolge enthält sites.

FORMEL

=if(A1 ?????? "sites", 1,0)

Ich bin nicht sicher, was ich ??????in der obigen Formel ersetzen soll ODER ob diese Formel möglich ist. Ideen, wie das gewünschte Ergebnis erzielt werden kann, werden sehr geschätzt.

Mr. B
quelle

Antworten:

53

Sie können REGEXMATCH verwenden:

=IF(REGEXMATCH(A1, "sites"), 1, 0)

Um dies zu erklären, gibt REGEXMATCH nur dann true zurück, wenn das Argument eine Teilzeichenfolge Ihrer Zeichenfolge ist.

Aurielle Perlmann
quelle
10
Mit Hilfe regexmatchwäre einfacher: if(regexmatch(A1, "sites"), 1, 0).
1
Das "if" wird nicht benötigt, da regexmatch bereits einen Booleschen Wert zurückgibt, also nur "REGEXMATCH (A1," sites ")"
David,
2
Das if ist da, damit sie das true in ein 1 oder 0 konvertieren können, wenn false
Aurielle Perlmann
7

=if(search("sites",B2)>0,1,0)

=if(IFERROR(search("sites",B2)>0,0),1,0)

Beide arbeiten. Der zweite schreibt eine 0, wenn ein Fehler vorliegt.

Tom Woodward
quelle
2
Die erste Formel gibt niemals 0 zurück, da SEARCH(search_for, text_to_search, [starting_at])sie einen Fehler zurückgibt, wenn search_forsie nicht gefunden wird.
Rubén
1

Sie tun dies wahrscheinlich, weil Sie die Anzahl oder durchschnittliche Anzahl der Zeilen mit dem Wort "sites" wissen möchten. Angenommen, Sie haben 100 Zeilen mit Einträgen in Spalte A, können Sie mit dieser Funktion herausfinden, wie viele Zeilen das Wort "sites" enthalten:

=QUERY(A1:A100, "select count(A) where A like '%sites%'")

Dies ist viel schneller als das Erstellen einer Spalte mit Einsen und Nullen und das anschließende Verarbeiten dieser neuen Spalte.

Ryan Shillington
quelle
Kann dies über eine Box anstatt nur über eine Spalte funktionieren?
Adam Starrh
Jep. Stattdessen A1:A100könnten Sie es machen A1:C100und dann eine Abfrage mit den Spalten A, B und C schreiben.
Ryan Shillington
1

Eine Lösung ohne REGEX:

=if(iserror(FIND("sites",B2)),0,1)

Groß- und Kleinschreibung und ifLogik müssen umgekehrt werden, da die Antwort lautet, truewenn die Zeichenfolge nicht gefunden wird.

Adrià
quelle
Dies ist im Grunde das Gleiche wie diese Antwort , nur dass die Groß- und Kleinschreibung beachtet wird. Übrigens beinhalten die vom OP zur Verfügung gestellten Beispieldaten sheetsnicht Sheets.
Rubén
0

=IF(QUERY(A1, "where A contains 'sites'")<>"", 1, )

0

user0
quelle
0

Wenn Sie, wie Ryan Shillington vorschlägt, die Anzahl der Zellen in einem Bereich mit "Standorten" ermitteln möchten, versuchen Sie Folgendes:

=COUNTIF(A1:A100;"*sites*") 

Das * fungiert als Platzhalterbegriff, sodass überall in der Zelle nach Übereinstimmungen gesucht wird, nicht nur nach genauen Übereinstimmungen für die gesamte Zelle.

Ich habe dies auch mit einem Zellverweis anstelle von " Sites " durchgeführt, aber dann müssen Sie dem Text in der Zelle Platzhalter-Sternchen hinzufügen.

Heidi
quelle
0

Wenn Sie sich für die Option "Sternchen" entscheiden und einen Zellbezug wünschen, können Sie die Sternchen mit der Funktion "KONKATIEREN" hinzufügen

=COUNTIF(A1:A100,CONCATENATE("*",A1,"*"))

arh
quelle