Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

menge von Teilstrings enthalten?

menge von Teilstrings enthalten?
07.12.2022 09:55:44
Teilstrings
Hallo
Ich habe einen String aus einer Zelle, also z.B.INDEX(TabelleA!B:B;2;2)
Und ich habe eine Menge von Teilstrings. z.B.: TabelleB!A1:A10
Ich suche nun eine Formel, die mir beantwortet, ob mindestens einer der Teilstrings in dem Ausdruck enthalten ist.
Irgendwie fällt mir da nix ein....vielleicht mit "Vergleich"?...das kann ja Bereiche verarbeiten, oder?

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
=MAX(--ISTZAHL(SUCHEN(B1:B10;A1)))=1
07.12.2022 10:02:05
lupo1
AW: =MAX(--ISTZAHL(SUCHEN(B1:B10;A1)))=1
07.12.2022 10:15:13
Stefan
@lupo1
Danke.
Aber:
Die Fornel verstehe ich nicht.
Ich verstehe nicht das doppelte Minus und das 2.Gleichheitszeichen
und sie bringt bei mir auch kein Ergebnis...?
Kannste das vielleicht nochmal erläutern?
Erklärung
07.12.2022 10:24:06
lupo1
Deine Frage war, OB (und nicht etwa durch WAS genau, bitte jetzt nicht plötzlich abändern!) ein Wert aus B1:B10 in A1 auftaucht.
Das habe ich hier mit MAX erledigt. Gibt es keine Übereinstimmung, ergibt die Formel FALSCH.
AW: =MAX(--ISTZAHL(SUCHEN(B1:B10;A1)))=1
07.12.2022 10:26:28
Daniel
Hi
Lupo hat die Zellbereiche etwas verändert (vermutlich so, wie er die Formel bei sich getestet hat)
du müsstest also B1:B10 durch TabelleB!A1:A10 und A1 durch INDEX(TabelleA!B:B;2) austauschen, damit die Formel bei dir funktionert
A1 ist also der Text, der durchsucht werden muss und B1:B10 die Liste der Teiltexte.
"--" wandelt den Wahrheitswert, den dir das IstZahl gibt, in eine 1 (Wahr) oder 0 (Falsch), damit kann dann MAX was anfangen, weil es Zahlen braucht.
etwas logischer ist vielleicht:

=ODER(IstZahl(Suchen(TabelleB!A1:A10;INDEX(TabelleA!B:B;2))))
Suchen gibt die Postion des gesuchten Textes im Geamttext, oder einen Fehler, wenn der gesuchte Text nicht vorhanden ist.
IstZahl wandelt dann dieses Zahl/Fehler in WAHR oder FALSCH
ODER fasst dann die Menge der 10 WAHR/FALSCH-Werte zusammen und gibt dir ein WAHR, wenn mindestens einmal WAHR vorkommt und ein FALSCH, wenn alles FALSCH ist.
Gruß Daniel
Anzeige
Danke, Daniel, ist sogar kürzer
07.12.2022 10:28:01
lupo1
AW: mit ANZAHL() ist aber noch kürzer owT
07.12.2022 10:35:21
neopa
Gruß Werner
.. , - ...
Hast recht, habe jetzt gelernt ANZAHL fehlertoler.
07.12.2022 11:37:17
lupo1
AW: mit ANZAHL() ist aber noch kürzer owT
07.12.2022 11:38:56
Stefan
Hallo Werner und Daniel
In einer frischen Tabelle klappen beide Formeln.
Aber in meiner originalen XLSM Datei klappt Daniels Formel leider nicht
da bleibt die Formel einfach wie ein String stehen.
Ich habe auch schon versucht, sie mit Ctrl-Shift Enter als Matrixformel zu schließen -hat nix gebracht.
Habe 365 for Business, automatische Updates....
Was kann das sein?
Oh oh
07.12.2022 11:42:35
lupo1
A. 365 benötigt (fast) nie {}
B. Bleibt die Formel syntaktisch ungültig, kannst Du sie nicht eingeben. Das ist nicht nur Grundwissen, sondern sogar wissensunbedürftig. Du steckst doch auch keinen Pfennig in eine Telefonzelle. Ja auch, weil es beides (bald) nicht mehr gibt.
Anzeige
AW: mit ANZAHL() ist aber noch kürzer owT
07.12.2022 11:47:36
Stefan
hmmm...liegt an der Spalte....
AW: wa genau willst Du uns damit sagen? owT
07.12.2022 11:49:39
neopa
Gruß Werner
.. , - ...
AW: =MAX(--ISTZAHL(SUCHEN(B1:B10;A1)))=1
07.12.2022 11:16:33
Stefan
funktionieren alle drei Formeln. danke!
Allerdings nicht in der XLSM Datei sondern nur in einer frischen datei....
wofür sollte man jemals .XLSM brauchen?
07.12.2022 11:39:38
lupo1
AW: meinst Du =INDEX(TabelleA!B:B;2)? ...
07.12.2022 10:02:07
neopa
Hallo Stefan,
... denn =INDEX(TabelleA!B:B;2;2) kann nur einen Fehlerwert ergeben.
Wenn ja, dann gibt es eine Lösung dafür. Doch eine kleine Beispieldatei wäre trotzdem hilfreich.
Gruß Werner
.. , - ...
AW: meinst Du =INDEX(TabelleA!B:B;2)? ...
07.12.2022 10:06:57
Stefan
Ja, sorry, schreibfehler.
Ich meine natürlich =INDEX(TabelleA!B:B;2)
AW: dann ...
07.12.2022 10:25:41
neopa
Hallo Stefan,
... sollte in Deiner XL-Version =ANZAHL(SUCHEN(TabelleA!A1:A10;INDEX(TabelleA!B:B;2)))&gt0 ausreichend sein (in älteren XL-Versionen muss die Formel als Matrixformel abgeschlossen werden).
Gruß Werner
.. , - ...
Anzeige
AW: dann ...
07.12.2022 12:16:56
Stefan
Das funktioniert super
Kann ich die Frage noch erweitern?:
Kann der Wert auch noch herausgeben, WELCHE der Zehn Möglichkeiten A1:A10 matched?
AW: ja, aber ...
07.12.2022 12:21:53
neopa
Hallo Stefan,
... das geht in XL365 etwas einfacher (kürzer) als in meiner XL2016er Version. Lupo1 wird Dir das sicher aufzeigen können.
Gruß Werner
.. , - ...
Ich habe es doch gewusst!
07.12.2022 12:27:58
lupo1
=MAX(ZEILE(B1:B10)*ISTZAHL(SUCHEN(B1:B10;A1))) ergibt den letzten Eintrag (dessen Zeile)
=SUMME(2^ZEILE(B1:B10)*ISTZAHL(SUCHEN(B1:B10;A1))) ergibt jede einzelne Zeile zurück in einer binär aufzudröselnden Zahl
=FILTER(B1:B10;ISTZAHL(SUCHEN(B1:B10;A1))) zeigt alle Einträge, die passen
Anzeige
AW: Ich habe es doch gewusst!
07.12.2022 14:53:05
Stefan
Nochmals vielen Dank Euch allen, das hat mir SEHR geholffen!!!!
Tabelle mit den Werten aus Powerquery heisst: "Eingabe"
neue angelegte Tabelle heisst: "Eingabe ohne Namen"
ursprüngliche von mir verwendete Formel war :
=WENN(ODER(ZÄHLENWENN($A$2:$A$16;INDEX(Eingabe!G:G;ZEILE(A2)))>0;ZÄHLENWENN($A$2:$A$16;RECHTS(INDEX(Eingabe!G:G;ZEILE(A2));LÄNGE(INDEX(Eingabe!G:G;ZEILE(A2)))-FINDEN(" ";INDEX(Eingabe!G:G;ZEILE(A2)))))>0+N("Entweder der String direkt oder der Teil des Strings nach der ersten Leerstelle - also nach dem Datum - findet sich in den Zellen A2-A16 wieder"));INDEX(Eingabe!G:G;ZEILE(A2));"nicht in der Datenbank")
was fehleranfällig war, weil leider nicht alle Kunden alles in der richtigen Reihenfolge eingetragen haben oder sinnlose Leerzeichen gesetzt haben
jetzige Formel heisst
=WENN(ODER(ISTZAHL(SUCHEN(A$3:A$13;INDEX(Eingabe!G:G;ZEILE(A2)))));INDEX(A$1:A$13;MAX(ZEILE(A$1:A$13)*ISTZAHL(SUCHEN(A$1:A$13;INDEX(Eingabe!G:G;ZEILE(A2))))));"Nicht in der Datenbank")
funktioniert VIEL besser, weil sie eben nur den Teilstring sucht
die Tabelle ist riesig
da sie sich bei jedem Powerqueryabruf umstrukturiert kann ich beim neuafufbau der Tabellle nicht verwenden: Eingabe_ohne_Namen!A19= Eingabe!A1
sondern musste immer verwenden Eingabe_ohne_Namen!A19= Index(Eingabe!A:A;Zeile(A1))
sonst "verschluckt" sich die Tabelle beim Datenabruf
Darin kombinieren sich die Formeln von Daniel und
Anzeige
AW: dann ...
07.12.2022 12:33:08
Daniel
kann immer nur eine Möglichkeit matchen oder auch mehrere?
wenn mehrere matchen können, was willst du dann als Ergebnis haben?
wenn die Formel alles auflisten soll, wäre in Excel 365 hier das einfachste (ungetestet, für Teiltexte und Langtext bitte die entsprechenden Zellbezüge einsetzten):

=Textverketten("; ";Wahr;Wenn(IstZahl(Suchen(Teiltexte;Langtext));TeilTexte;""))
Gruß Daniel
AW: dann ...
07.12.2022 12:50:31
Stefan
Ich kann das so beeinflussen, dass immer nur eine matched

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige