Filtern Sie mehrere Werte mit dem Filter nach Bedingungstool in Google Spreadsheet

10

Ich versuche, eine lange Liste von URLs zu filtern, um einzugrenzen, an welchen ich interessiert bin. Ich habe meine URL-Liste in Google Spreadsheet und verwende das Filtertool, um Daten zu entfernen, die ich nicht möchte.

Momentan mit der Filtereinstellung: Nach Bedingung filtern, Text enthält keinen Text.

Dies funktioniert gut, aber bisher konnte ich dort nur den Wert für Eingang 1 einstellen. Dh pinterest

Was ich tun möchte, ist mehrere Werte in diese Box IE zu setzen. "pinterest" OR "facebook" OR "twitter"oder so ähnlich pinterest, facebook, twitter. Wie das Bild unten (obwohl, wenn ich dies ausführe, es überhaupt nicht filtert .. irgendwelche Ideen?

Ich habe hier eine gemeinsame Tabelle zum Testen erstellt

Bildschirmfoto

Sam
quelle
Ich kann nicht auf die Tabelle zugreifen
Entschuldigung, anscheinend habe ich die Freigabeeinstellungen nicht aktualisiert, es ist jetzt behoben
Sam

Antworten:

14

Sie können mit einem regulären Ausdruck filtern . Verwenden Sie die Optionen Nach Bedingung filtern> Benutzerdefinierte Formel ist ...

=not(regexmatch(N:N, "(?i)facebook|pinterest|twitter"))

um nur die Zeichenfolgen zu sehen, die keine der oben genannten enthalten.

Hier ist N die Spalte, die Sie filtern, und der reguläre Ausdruck bedeutet: Die Zeichenfolge enthält Übereinstimmungen mit den Wörtern Facebook, Pinterest, Twitter und Groß- und Kleinschreibung. Und notist die Negation davon.


quelle
Danke, @Normal, wenn ich nur Einträge zeigen wollte, die nicht enthalten, facebook|pinterest|twitterwie würde das geschrieben werden? - Ich habe mir die anderen Regex-Funktionen angesehen Regexrepalceund Regexextractgemäß dem von Ihnen freigegebenen Google-Link, aber sie schienen nicht geeignet zu sein
Sam
Verwenden Sie =not(regexmatch(...))stattdessen .. Ich habe die Frage anfangs falsch verstanden.
Ich bekomme nur "TRUE" oder "FALSE", ich bekomme nicht die Zeilen, die übereinstimmen ... Mache ich etwas falsch?
Drewdavid
7

Und für diejenigen, die die Option "Benutzerdefinierte Formel" verwenden, müssen Sie wissen, dass die Formel auf der Zelle direkt unter dem Filter basiert. Wenn Sie also einen Filter in Zelle A1 haben, verwenden Sie A2 in der benutzerdefinierten Formel.

Hier ist ein Beispiel

= (A2 = $ C $ 1)

John Pratt
quelle
2
+ 1K wenn es möglich wäre, einer der besten Ratschläge aller Zeiten! Vielen Dank.
Danidemi
1
Wertvoller Rat! Warum dokumentiert Google das nicht?
Alessandro Alinone
Ich verstehe nicht
Raffi Khatchadourian
0

Das REGEXMATCH()funktioniert sicherlich, aber es ist schwer zu merken und nach meinen begrenzten Tests viel langsamer als einfach so etwas zu verwenden OR():

=NOT(OR(N2="facebook",N2="pinterest",N2="twitter"))

Bei einem Blatt mit 250.000 Zellen und einem Filter mit 135 Zeichenfolgen (dies sind einfach die tatsächlichen Daten, die ich filtern wollte) REGEXMATCH()dauert das Filtern des Blattes 22 Sekunden, während die OR()Version etwa 3,5 Sekunden dauert.

Das hat REGEXMATCH()sicherlich das Potenzial, viel komplexere und leistungsfähigere Suchvorgänge durchzuführen, sodass es sich lohnt, es zu wissen.

Hinweis: In meinem Beispiel gehe ich davon aus, dass Sie in der ersten Zeile einen Header haben, sodass der Verweis auf die Daten in der Spalte Nauf die zweite Zeile ausgerichtet ist (wo die tatsächlich zu filternden Daten beginnen). N2 (Danke an John Pratts Antwort oben!) . Wenn Sie keine Kopfzeile haben, verwenden Sie N1stattdessen einfach .


In die gleiche Richtung; Diese Version der REGEXMATCH()Antwort von user79865 ist effizienter und dauert ungefähr 20 Sekunden (ungefähr 10% schneller) auf meinem Blatt, da sie nicht die gesamte Spalte verkettet und REGEXMATCH()das Ergebnis für jede Zeile auf das Ergebnis anwendet .

=REGEXMATCH(N2,"(?i)facebook|pinterest|twitter")

Der einzige Unterschied zur Antwort von user79865 besteht darin, dass diese Version N2anstelle von N:N(oder N1wenn Sie keine Kopfzeile haben) verwendet.

RedYeti
quelle