Bedingte Formatierung mit OR () ignoriert eines der Argumente

381
Guilherme Taffarel Bergamin

Ich versuche, die Daten in einer Spalte basierend auf Daten in einer anderen Spalte einzufärben.

Was stimmt nicht mit der folgenden Formel?

=OR($D1 = "TEXT 1", SEARCH("TEXT 2", $D1) > 0) 

Was ich hier machen möchte, ist "die Zelle einzufärben, wenn sie genau ist TEXT 1oder TEXT 2ein Teil ihres Wertes ist".

Wenn ich dies tue, wird das Argument nur innerhalb von SEARCH()und nicht validiert TEXT 1, aber ich weiß, dass das erste richtig ist, denn wenn ich das SEARCH()Argument als Argument entferne, wird es validiert TEXT 1(sogar innerhalb des OR()).

Was fehlt mir hier?

Wenn es einen besseren Weg gibt, die TEXT 2Validierung durchzuführen, würde ich mich über das Wissen freuen. Ich mag die Syntax von Excel wirklich nicht. Eine ähnliche Validierung wie "LIKE" von SQL, eine Funktion namens "CONTAINS" oder ähnliches wäre großartig.

0

1 Antwort auf die Frage

0
Scott Craner

Wenn TEXT 2nicht gefunden wird, wird der SEARCH-Fehler ausgegeben, und als solches wird das gesamte ODER fehlerhaft und wird unabhängig davon, ob D1 = ist, als FALSE angesehenText 1

Verwenden Sie ISNUMBER, um FALSE oder TRUE zurückzugeben:

=OR($D1 = "TEXT 1", ISNUMBER(SEARCH("TEXT 2", $D1))) 

Warten Sie wirklich? Ich war mir sicher, dass '> 0' einen Boolean zurückgeben würde. Übrigens, ich dachte, "SEARCH" hat immer eine Zahl zurückgegeben. Was passiert hier? Es hat tatsächlich funktioniert (Verwirrter Programmierer, der zum ersten Mal mit Excel arbeiten muss) Guilherme Taffarel Bergamin vor 5 Jahren 0
SEARCH gibt eine Nummer zurück, wenn sie gefunden wurde, und `# Value`-Fehler, falls nicht gefunden. In VBA gibt Instr `0 zurück, wenn nicht gefunden, aber nicht die Arbeitsblattfunktionen. Scott Craner vor 5 Jahren 1
Oh ich verstehe. Vielen Dank, Scott. Ich denke, mein Problem war die Unfähigkeit zu visualisieren, wenn Fehler auftreten und nicht zu erwarten, dass ein Fehler tatsächlich ein Rückgabewert sein könnte. Guilherme Taffarel Bergamin vor 5 Jahren 0