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.

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.


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.


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.


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.


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


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.


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,"*"))

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.