Einfache Funktion 'Enthält'

Hallo Zusammen,

in anderen Programmen gibt es meistens ein einfaches Zeichen, das „Enthält“ bedeutet. z.B. in SPL „!“, Beispiele:

„abcdef“ ! „bcd“ TRUE
„abcdef“ ! „eef“ FALSE

in Excel habe ich ein entsprechenden Vergleichsoperator bisher nicht gefunden. CIh arbeite immer höchst umständlich mit z.B.:

ISTFEHLER(SUCHEN(„abcdef“;„eef“))

Gibt es keinen einfacheren Weg?

Danke für jeden Tip
Conrad

Hallo Conrad

in anderen Programmen gibt es meistens ein einfaches Zeichen,
das „Enthält“ bedeutet. z.B. in SPL „!“, Beispiele:

„abcdef“ ! „bcd“ TRUE
„abcdef“ ! „eef“ FALSE

in Excel habe ich ein entsprechenden Vergleichsoperator bisher
nicht gefunden. CIh arbeite immer höchst umständlich mit z.B.:

ISTFEHLER(SUCHEN(„abcdef“;„eef“))

Gibt es keinen einfacheren Weg?

meinst du die Platzhalterzeichen?

Das wären(Auszug aus der Excel-Hilfe):
? (Fragezeichen)
Ein beliebiges einzelnes Zeichen
Die Eingabe Schmi?d gibt z. B. „Schmied“ und „Schmidt“ zurück

* (Sternchen) Eine beliebige Anzahl von Zeichen
Die Eingabe *ost gibt z. B. „Nordost“ und „Südost“ zurück

~ (Tilde), gefolgt von ?, * oder ~ Fragezeichen, Sternchen oder Tilde
Beispiel: gj91~? findet „gj91?“

Dann gibt es noch „enthält“ im Dialogfeld des Autofilters, wo du entsprechende Zeichenfolgen auch in Kombination mit den Platzhalterzeichen eingeben kannst.

Und dann fällt mir noch die Excel-Funktion =Teil() ein
Syntax:
TEIL(Text;Erstes_Zeichen;Anzahl_Zeichen)
oder
TEILB(Text;Erstes_Zeichen;Anzahl_Bytes)

Auch andere Excel-Funktionen eignen sich, um bestimmte Teilzellinhalte zu ermitteln. Das kommt aber immer darauf an, was in der Zelle steht und was du daraus eliminieren willst.

Du siehst, es gibt einige Möglichkeiten.
Gruß
Marion

Hi Conrad,

in anderen Programmen gibt es meistens ein einfaches Zeichen,
das „Enthält“ bedeutet. z.B. in SPL „!“, Beispiele:

Definitionsdinge sind nicht mein Ding, aber ich würde die eingebauten Excel-Funktionen nicht als Programmiersprache bezeichnen *nixgenauweiß*
Wenn ist Excel-Vba eine Programmiersprache.
SPL kenne ich nicht mal vom Namen, aber kein Problem bei den zigtausend Programmiersprachen die es gibt.

in Excel habe ich ein entsprechenden Vergleichsoperator bisher
nicht gefunden. CIh arbeite immer höchst umständlich mit z.B.:
ISTFEHLER(SUCHEN(„abcdef“;„eef“))
Gibt es keinen einfacheren Weg?

Mit Excel-Vba kann man sich eine Funktion basteln die das macht.
Oder aber auch ohne Vba über vergebene Namen. Naja, evtl.

Eine eigene Funktion würde dann so in Excel benutzt:

=Drin(A1;„ef“)

Gruß
Reinhard

Hallöchen Marion,

hätt ich doch mal diese „Enthaltungs“ Funktion früher gekannt, ich wüßte dann gar nicht was eine Düsseldorfer Tabelle ist.
Bill Gates verklag.

Ups, da steht ja „Enthält“, sorry verlesen und falsch gedacht *grien*

Lieben GuK
Reinhard

Moino!

Schau mal hier:

/t/excel-office-2003-regex-in-formatbedingung/3378205

Die letzte Antwort müsste dir glaube ich helfen:

SUCHEN(„Hotel“;DeineZelleMitDemDatensatz)

mfg

Danke Lukas,

aber suchen und finden kennne ich ja - um sie weiter zu verarbeiten muss man sie noch in istfehler() einbinden - das funzt ist aber sehr umständlich!

Gruß Conrad

Reguläre Ausdrücke in Excel direkt gibt es soweit ich weiß nicht. VBA wäre dann ja noch umständlicher. Und dann wirst du wohl nicht kürzer wegkommen als eine Funnktion aufzurufen und deren Rückgabewert zu prüfen. Deine Lösung ist dann wohl schon die richtige!

Hallo Marion,

mir ist es aber nicht gelungen in einer Formel die Platzhalter unterzubringen:

=„abcdef“ = „*bcd*“ -> wird als falsch interpretiert
=„abcdef“ = *„bcd“* -> wird nicht angenommen

gleiches Problem mit Zellverweisen, z.B.:
=A16=*B16*

Tilde nutzt auch nicht, ganz merkwürdig: Meine Excelhilfe findet unter dem Stichwort „Platzhalter“ so brauchbare Informationen wie
„Weitere Informationen zu Programm und Computer/Sie können überprüfen, welche Version von Microsoft Office 2003 oder Office System auf Ihrem Computer installiert …“
Aber nichts über Platzhalter in Formeln. Ein schönes Beispiel warum ich die Hilfe gar nicht mehr benutze …

Dann gibt es noch „enthält“ im Dialogfeld des Autofilters, wo
du entsprechende Zeichenfolgen auch in Kombination mit den
Platzhalterzeichen eingeben kannst.

Danke, die ist mir bekannt, aber ich brauche das in einer Formel.

Und dann fällt mir noch die Excel-Funktion =Teil() ein
Syntax:
TEIL(Text;Erstes_Zeichen;Anzahl_Zeichen)
oder
TEILB(Text;Erstes_Zeichen;Anzahl_Bytes)

Danke, aber auch die ist mir bekannt. Sie hilft nur wenn man die exakte Position des gesuchten Zeichen kennt. Was ich suchte war eine vereinfachte Alternative für suchen() oder finden(), die ja den Nachteil haben, das man sie immer noch in iserror() einbinden muss.

Du siehst, es gibt einige Möglichkeiten.

Ja - nur - wie bei Microssoft leider üblich - keine einfache Möglichkeit.

Trotzdem nochmals Danke für Deine Mühe
Conrad

Danke Reinhard,

SPL kenne ich nicht mal vom Namen,

Kein Wunder - gibt in Deutschland vielleicht 100 Leute die die kennen - dummerweis die einzige die ich kann :frowning:

Mit Excel-Vba kann man sich eine Funktion basteln die das
macht.

wie schon anderweitig erwähnt - muss mich mal mit VBA auseinandersetzen.

Oder aber auch ohne Vba über vergebene Namen. Naja, evtl.

Keine Ahnung wie Du das meinst - den Tellen einen Namen zu geben nutzt jedenfalls nicht.

Gruss Conrad

Hi Conrad

Kein Wunder - gibt in Deutschland vielleicht 100 Leute die die
kennen - dummerweis die einzige die ich kann :frowning:

Mit Excel-Vba kann man sich eine Funktion basteln die das
macht.

wie schon anderweitig erwähnt - muss mich mal mit VBA
auseinandersetzen.

Oder aber auch ohne Vba über vergebene Namen. Naja, evtl.

Keine Ahnung wie Du das meinst - den Tellen einen Namen zu
geben nutzt jedenfalls nicht.

Nein, so war das nicht gemeint, du gibst der Funktion einen Namen, den kannst du dann anstelle der Funktion in Excel benutzen.
Letztlich nur kürzer in der Anwendung, am problem löst das nix.

=A1 # „ef“
in Excel zu schreiben und als Ergebnis bekommen ja, ist enthalten, oder nein, geht halt nicht, man kann wie in diesem Fall dem # keine Auswertungsfunktion zuweisen.

Gruß
Reinhard

Gruss Conrad

Hallo Conrad,

mir ist es aber nicht gelungen in einer Formel die Platzhalter
unterzubringen:

=„abcdef“ = „*bcd*“ -> wird als falsch interpretiert
=„abcdef“ = *„bcd“* -> wird nicht angenommen

wo hast du das stehen, Tabellenblatt in einer Zelle, in einem Dialogfeld, in einem Makro - in welchem Zusammenhang, sind das Zellinhalte im Format Text oder Zahlen …?

gleiches Problem mit Zellverweisen, z.B.:
=A16=*B16*

was soll das sein - so wie das da steht - wer soll das verstehen, das Zeichen „*“ vor einer Zelladresse ist ein Operator, dahinter nochmal ein Operator - und dann wurde dieser Term gleichgesetzt mit A16

wo willst du das einsetzen, was soll das bewirken?

Tilde nutzt auch nicht, ganz merkwürdig: Meine Excelhilfe
findet unter dem Stichwort „Platzhalter“ so brauchbare
Informationen wie
„Weitere Informationen zu Programm und Computer/Sie können
überprüfen, welche Version von Microsoft Office 2003 oder
Office System auf Ihrem Computer installiert …“
Aber nichts über Platzhalter in Formeln. Ein schönes Beispiel
warum ich die Hilfe gar nicht mehr benutze …

in welcher Hilfe hast du nachgesehen? War es die Excel -Hilfe, wenn du in der Excel-Hilfe (z.B. in dem kleinen Eingabefeld rechts oben im Fenster - neben den Fensterschaltern für „minimieren“, „verkleinern“ bzw. „vergrößern“ und „schließen“) den Begriff „Platzhalter“ oder „Platzhalterzeichen“ eingibst, kommt ganz sicher nicht das, was du geschrieben hast.

Dann gibt es noch „enthält“ im Dialogfeld des Autofilters, wo
du entsprechende Zeichenfolgen auch in Kombination mit den
Platzhalterzeichen eingeben kannst.

Danke, die ist mir bekannt, aber ich brauche das in einer
Formel.

in welcher Formel, schreib die doch mal auf und dazu, was in den Bezugszellen steht

Und dann fällt mir noch die Excel-Funktion =Teil() ein
Syntax:
TEIL(Text;Erstes_Zeichen;Anzahl_Zeichen)
oder
TEILB(Text;Erstes_Zeichen;Anzahl_Bytes)

Danke, aber auch die ist mir bekannt. Sie hilft nur wenn man
die exakte Position des gesuchten Zeichen kennt. Was ich

die Position läßt sich auch in der Formel ermitteln, aber dazu fehlt die Information

suchte war eine vereinfachte Alternative für suchen() oder
finden(), die ja den Nachteil haben, das man sie immer noch in
iserror() einbinden muss.

Geht es um vba-code?

Du siehst, es gibt einige Möglichkeiten.

du siehst, hellseherische Fähigkeiten, die du vielleicht unbewußt voraus setzt, habe ich nicht.

Auf eine allgemeine Frage eine präzise Antwort zu geben, ist mir leider nicht möglich

Ja - nur - wie bei Microssoft leider üblich - keine einfache
Möglichkeit.

manchmal ist man mit einem Urteil ein wenig vorschnell

Gruß
Marion

Hallo Marion,

Danke, aber auch die ist mir bekannt. Sie hilft nur wenn man
die exakte Position des gesuchten Zeichen kennt. Was ich

die Position läßt sich auch in der Formel ermitteln, aber dazu
fehlt die Information

suchte war eine vereinfachte Alternative für suchen() oder
finden(), die ja den Nachteil haben, das man sie immer noch in
iserror() einbinden muss.

Geht es um vba-code?

Du siehst, es gibt einige Möglichkeiten.

du siehst, hellseherische Fähigkeiten, die du vielleicht
unbewußt voraus setzt, habe ich nicht.

Ich leihe dir gern meine Glaskugel, aber in dem fall sieht man nichts, vielleicht sollten wir Skype einsetzen :smile:

Auf eine allgemeine Frage eine präzise Antwort zu geben, ist
mir leider nicht möglich

Ja - nur - wie bei Microssoft leider üblich - keine einfache
Möglichkeit.

manchmal ist man mit einem Urteil ein wenig vorschnell

Nix da, MS ist grundsätzlich an allem Schuld, wo kämen wir denn da hin wenn sie in ihrem erbämlichen Softwareschrott mal paar Zeilen gut programmiert hätten. Soll man das loben? Nö. Die Masse an Schrott machts.

Lieben GuK
Reinhard

Grüezi Conrad

in anderen Programmen gibt es meistens ein einfaches Zeichen,
das „Enthält“ bedeutet. z.B. in SPL „!“, Beispiele:

„abcdef“ ! „bcd“ TRUE
„abcdef“ ! „eef“ FALSE

in Excel habe ich ein entsprechenden Vergleichsoperator
bisher nicht gefunden. CIh arbeite immer höchst umständlich
mit z.B.:

ISTFEHLER(SUCHEN(„abcdef“;„eef“))

Gibt es keinen einfacheren Weg?

IMO gibt es nur weitere Formel-Alternativen, vielleicht ist das ja was für dich:

Tabelle:
[MAPPE3]!Tabelle1

 │ A │ B │ C │ 
──┼────────┼─────┼────────┤
1 │ abcdef │ bcd │ WAHR │ 
2 │ abcdef │ eef │ FALSCH │ 
──┴────────┴─────┴────────┘

Benutzte Formeln:
C1: =LÄNGE(A1)LÄNGE(WECHSELN(A1;B1;""))
C2: =LÄNGE(A2)LÄNGE(WECHSELN(A2;B2;""))

Tabellendarstellung erreicht mit dem Code in FAQ:2363


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Marion,

tut mir aufrichtig leid, daß ich Dir da „auf die Füße getreten“ habe - das war nicht meine Absicht.

in welcher Hilfe hast du nachgesehen? War es die

kommt ganz sicher nicht das, was du geschrieben hast.

Doch - bei „Platzhalter“ kommt bei mir genau das an erster Stelle: Hier ein Link zu einem Screenshot:

http://www.germanbroker.de/loadopn/hilfeplatzhalter.jpg

Wie Du siehts, kommt die Hilfe zu „Platzhalterzeichen“ in der Liste gar nicht vor. (Wenn man „Platzhalterzeichen“ eingibt kommt sie, aber da muss man erst mal drauf kommen … sorry - aber wahr)

du siehst, hellseherische Fähigkeiten, die du vielleicht
unbewußt voraus setzt, habe ich nicht.

Nein, natürlich nicht, sorry wenn das so rüberkam. Ein Vergleichsopertor „enthält“ ist für mich nur eine so selbstverständliche Sache (Habe mich mal erkundigt, in SQL, Javascript etc. gibt es den auch), daß ich nicht auf die Idee kam, daß dies präziserer Erläuterungen bedarf.

Auf eine allgemeine Frage eine präzise Antwort zu geben, ist
mir leider nicht möglich

Ich wollte eigentlich auch nur eine allgemeine Antwort und wie diese Diskussion gezeigt hat, lautet die: Einen Vergleichsopertor „enthält“ gibt es in Excel nicht. Man nmuss sich entweder mit den Funktionen „suchen“ bzw. „finden“ eingebunden in „istfehler“ behelfen oder sich eine einfachere Funktion selbt in VBA basteln - Habe ich doch richtig verstanden Lucas und Reinhard?

Nochmals: Danke für Deine Mühe und Entschuldigung, daß meine vorschnelle Antwort so mißverständlich war - es lag mir fern jemanden persönlich zu verletzen.

Herzliche Grüße
Conrad

Danke Thomas

interssante Variante - aber wie Du sagts auch nicht wirklich „einfach“.

Gruß Conrad

Hi Reinhard

Danke, aber da muss ich passen, Du schreibst:

du gibst der Funktion einen
Namen, den kannst du dann anstelle der Funktion in Excel
benutzen.

Einer Funktion einen Namen geben geht nur mit VBA - oder?

Gruß Conrad

Grüezi Conrad

interssante Variante - aber wie Du sagts auch nicht wirklich
„einfach“.

Das ist halt alles eine Definitionsfrage :wink:

Etwas direkter als mit deiner Version geht es noch:

=ISTZAHL(SUCHEN("abcdef";"eef"))

Hier erhältst Du direkt WAHR, wenn der gesuchte Text enthalten ist und musst nicht erst noch die Negation vornehmen.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Ich wollte eigentlich auch nur eine allgemeine Antwort und wie
diese Diskussion gezeigt hat, lautet die: Einen
Vergleichsopertor „enthält“ gibt es in Excel nicht. Man nmuss
sich entweder mit den Funktionen „suchen“ bzw. „finden“
eingebunden in „istfehler“ behelfen oder sich eine einfachere
Funktion selbt in VBA basteln - Habe ich doch richtig
verstanden Lucas und Reinhard?

Hi Conrad,

ja, so ist es, sie kann so aussehen:

Function Enth(Wort, Teil) As Boolean
Enth = InStr(Wort, Teil) > 0
End Function

Anwendung in Excel:

=Enth(A1;B1)

Es empfiehlt sich, die Bezeichnungen „Wort“ und „Teil“ noch aussagekräftiger zu wählen, es ist hilfreich wenn man die Funktion via Einfügen–Funktion–Benutzerdefiniert einfügt, man sieht dann an den Namensbezeichnungen was genau gemeint ist.

Und meine andere Idee ist halt nur die Namensvergabe für eine Formel, in der Formel wird dann wie dir jetzt bekannt mit Suchen,Finden, wechseln, was auch immer nach dem Teilstring gesucht.

Gruß
Reinhard

Hi Thomas,

=ISTZAHL(SUCHEN(„abcdef“;„eef“))

Hier erhältst Du direkt WAHR, wenn der gesuchte Text enthalten
ist und musst nicht erst noch die Negation vornehmen.

funktoniert bei mir nicht
mach ich was falsch?

LG Marion

Hi Thomas,

IMO gibt es nur weitere Formel-Alternativen, vielleicht ist
das ja was für dich:

Tabelle:
[MAPPE3]!Tabelle1

│ A │ B │ C │
──┼────────┼─────┼────────┤
1 │ abcdef │ bcd │ WAHR │
2 │ abcdef │ eef │ FALSCH │
──┴────────┴─────┴────────┘

Benutzte Formeln:
C1: =LÄNGE(A1)LÄNGE(WECHSELN(A1;B1;""))
C2: =LÄNGE(A2)LÄNGE(WECHSELN(A2;B2;""))

Tabellendarstellung erreicht mit dem Code in FAQ:2363

sehr interessant, gefällt mir (*)

LG Marion