Calc: Auftreten eines Zeichens feststellen

Hallo,
ich möchte in einer Spalte feststellen, ob sich ein bestimmtes Zeichen
in der Zeichenkette der jeweiligen Zelle findet. Dazu habe ich in der
Funktionsliste in der Kategorie "Text" die Funktion SUCHEN() gefunden.
Mein erster Versuch mit

=SUCHEN(y,B3)

   schlägt jedoch fehl mit dem Wert

#NAME?

Setze ich das Zeichen in Anführungszeichen:

=SUCHEN("y";B3)

  ernte ich

#WERT!

Wie mache ich es richtig?

Ziel ist, daraus dann eine bedingte Formatierung zu machen, die den
Hintergrund einfärbt.

Mit freundlichem Gruß Best regards
                           Boris Kirkorowicz

Hallo Boris

Hallo,
ich möchte in einer Spalte feststellen, ob sich ein bestimmtes Zeichen
in der Zeichenkette der jeweiligen Zelle findet. Dazu habe ich in der
Funktionsliste in der Kategorie "Text" die Funktion SUCHEN() gefunden.
Mein erster Versuch mit

=SUCHEN(y,B3)

    schlägt jedoch fehl mit dem Wert

#NAME?

Setze ich das Zeichen in Anführungszeichen:

=SUCHEN("y";B3)

   ernte ich

#WERT!

Wie mache ich es richtig?

Ziel ist, daraus dann eine bedingte Formatierung zu machen, die den
Hintergrund einfärbt.

nimm als Bedingung in der bF:
``Formel ist`` ``SUCHEN("y";B3)``

Werner

Hallo,
ich möchte in einer Spalte feststellen, ob sich ein bestimmtes Zeichen
in der Zeichenkette der jeweiligen Zelle findet. Dazu habe ich in der
Funktionsliste in der Kategorie "Text" die Funktion SUCHEN() gefunden.
Mein erster Versuch mit

=SUCHEN(y,B3)

   schlägt jedoch fehl mit dem Wert

#NAME?

Weil 'y' weder ein String noch eine Adresse oder ein Makronaem o. ä. ist.

Setze ich das Zeichen in Anführungszeichen:

=SUCHEN("y";B3)

  ernte ich

#WERT!

Weil der gesuchte String nicht gefunden wird. Aus der Hilfe:

SUCHEN
Gibt die Position eines Textsegments innerhalb einer Zeichenkette
aus.

Das impliziert, dass der Rücgabewert undefiniert ist, wenn es keine
solche Position gibt. Ok, das könnte man in der Hilfe explizit erwähnen.

Du musst also abfragen, ob ein Fehler vorliegt, z. B. so:

=WENN(ISTFEHLER(SUCHEN("y";B3));-1;SUCHEN("y";B3))

Ziel ist, daraus dann eine bedingte Formatierung zu machen, die den
Hintergrund einfärbt.

Da ist es egal, ob ein Fehler auftritt, wenn der Teilstring nicht
gefunden wird; das Ergebnis ist in dem Fall einfach nicht gleich WAHR.
Du hast also folgende Möglichkeiten:

"Formael ist" "NICHT(ISTFEHLER(SUCHEN("y";B3)))"
"Formael ist" "SUCHEN("y";E3)>0"
"Formael ist" "SUCHEN("y";E3)"

Ersteres ist die sauberste Variante, letzteres die schlampigste. Sie
nutzt den Effekt, dass Calc nur den exakten Wert 0 (oder einen Fehler)
als FALSCH interpretiert, alle anderen Werte (egal ob größer oder
kleiner 0, sogar Dezimalbrüche) als WAHR.

BTW sucht SUCHEN case-insensitive. Wenn Du Groß-/Kleinschreibung
unterscheiden willst, musst Du FINDEN nehmen.

Wolfgang

Hallo,

> SUCHEN
> Gibt die Position eines Textsegments innerhalb einer Zeichenkette
> aus.

Das impliziert, dass der Rücgabewert undefiniert ist, wenn es keine
solche Position gibt. Ok, das könnte man in der Hilfe explizit erwähnen.

dann hätte ich eher 0 erwartet als eine Fehlermeldung. Der Text in der
Hilfe:

Die Formel ergibt einen Wert, der nicht der Definition entspricht,
oder eine in der Formel referenzierte Zelle enthält Text anstelle

einer Zahl.
ist für mich eher irreführend als unvollständig.

das Ergebnis ist in dem Fall einfach nicht gleich WAHR.

Dann könnte da FALSE stehen, oder eben die Position 0. So fühlt sich das
an wie ein Programmfehler.

Danke Dir für die Aufklärung, und auch Werner für seine Lösung.

Mit freundlichem Gruß Best regards
                           Boris Kirkorowicz

Hallo,

> SUCHEN
> Gibt die Position eines Textsegments innerhalb einer Zeichenkette
> aus.

Das impliziert, dass der Rücgabewert undefiniert ist, wenn es keine
solche Position gibt. Ok, das könnte man in der Hilfe explizit erwähnen.

dann hätte ich eher 0 erwartet als eine Fehlermeldung. Der Text in der
Hilfe:

Die Formel ergibt einen Wert, der nicht der Definition entspricht,
oder eine in der Formel referenzierte Zelle enthält Text anstelle

einer Zahl.
ist für mich eher irreführend als unvollständig.

Eher beides; trotzdem ist es richtig ('nicht gefunden' entspricht nun
mal nicht der Definition der Formel).

das Ergebnis ist in dem Fall einfach nicht gleich WAHR.

Dann könnte da FALSE stehen,

Nein; Fehler und FALSE sind zwei verschiedene paar Stiefel.

oder eben die Position 0.

Es *hätte* der Fehlerfall auch durch einem ungültigen Wert (z. B. 0 oder
-1 o. ä.) signalisiert werden können (und /wird/ bei anderen Funktionen
teilweise auch gemacht), ja. Aber das ist immer Geschmackssache, der
eine mag es so, der andere anders. Der User muss sich da einfach an den
Geschmack des jeweiligen Programmierers halten.

Allerdings sollte die Hilfe eben vollständig sein.

So fühlt sich das
an wie ein Programmfehler.

Nein; schließlich *gibt* es die Funktion ISTFEHLER für genau solche Fälle.

Wolfgang