Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
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

mehrere Werte in einer Zelle finden

mehrere Werte in einer Zelle finden
02.09.2015 09:56:14
bassi
Hallo Ihr Lieben,
ich bin ein wenig ratlos.
Sämtliche mir bekannten Suchfunktionen finden nur EIN Wort pro Zelle :-(
Die Situation:
Eine Spalte mit 100 Zellen.
Jede Zelle enthälte unterschiedlich viele Wörter mit Komma und Leerzeichen getrennt. (Komma könnte man zur Not auch weglassen wenn das hilfreich wäre)
Im Suchfeld stehen mindestens zwei Suchwörter.
Es sollen nun (per Hilfszellen) alle Zellen angezeigt werden, welche neben den anderen Worten, diese mindestens zwei Suchwörter enthalten.
Liste:
A1 Brot, Butter, Fleisch
A2 Eier, Nudeln, Brot
A3 Butter, Messer, Wasser
A4 Käse, Tofu, Eis, Milch
A5 Vollkorn, Eier, Fleisch
Suchfeld:
B1 Butter, Fleisch
Zelle A1, A3 und A5 müssten nun angezeigt werden...
Kann mir jemand einen Tipp geben?
Viele Grüße
bassi

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: auch hier nachgefragt ...
02.09.2015 10:29:50
...
Hallo bassi,
... warum trennst Du Deine Datenzellen nicht in entsprechend viele Spaltenzellen auf?
Dazu bedarf es nur einer einfachen Aktivität (Text in Spalten) und danach vereinfacht sich die von Dir gewünschte Auswertung wesentlich, wenn Du auch die Suchbegriffe in entsprechend viele Datenzellen schreibst.
Gruß Werner
.. , - ...

AW: auch hier nachgefragt ...
02.09.2015 10:37:13
bassi
Hallo Werner,
danke für die schnelle Rückmeldung.
Genau das wollte ich eben nicht...
Im Gegenteil werden diese "Worte" in anderen Zellen / Datenblättern, sortiert, zugeordnet, eingesammelt, verkettet, gemeinsam dargestellt und sollten im anderen Datenblatt dort nun entsprechend markiert werden.
Klingt wohl was doof... ist aber so angedacht.
Viele Grüße
bassi

Anzeige
AW:ist Deine Entscheidung ...
02.09.2015 10:46:11
...
Hallo bassi,
... ich würde es so eben nicht tun.
Nun, dann wäre hier wohl eine VBA Lösung sinnvoll bzw. eine Lösung mit einer UDF von Luc (aus beiden halte ich mich heraus, dann stell den thread auf offen)
Eine Formellösung wäre auch möglich, diese würde ich aber nur über eine Hilfsspalte realisieren.
Für was entscheidest Du Dich?
Gruß Werner
.. , - ...

AW: AW:ist Deine Entscheidung ...
02.09.2015 11:00:50
bassi
..ja leider ist die datei schon lange - knapp 5 Jahre - aktiv. Eine Suchfunktion für das damalige "Endergebnis" - diese Verkettete Anzeige, war so nie angedacht.
Eine Hilfsspalte ist problemlos realisierbar.
UDF sagt mir auf anhieb garnichts :-( muss ich erstmal googel fragen.
VBA wäre möglich. Ich weiß nun nicht wie weit die Formellösung die Berechnungszeit verzögert. Wie aufwändig diese also gestaltet ist. Wenn dies realtiv "einfach" wäre (die "Datenbank" / Liste hat 3700 Einträge) würde ich bald zur Formellösung greifen wollen.
Vermute aber das VBA bei der Menge sinnvoller sein wird?
Was meinst du mit "stell den thread auf offen"? wie kann ich das machen?
sorry :-(

Anzeige
AW: VBA wäre hier sinnvoll ... und ...
02.09.2015 11:10:17
...
Hallo bassi,
... wenn Du im Forum die FORUMSLISTE aktiviert hast, ist mein Beitrag mit einem roten Ausrufezeichen versehen. Das geschieht dadurch, dass ich die Option neben der Passworteingabe in der Beitragerstellung an gehäkelt habe.
Gruß Werner
.. , - ...

AW: mehrere Werte in einer Zelle finden
02.09.2015 12:20:34
bassi
oha... ich hoffe mach das jetzt hier richtig mit dem Ausrufezeichen / Frage noch offen Signal...?
wir sind momentan bei dem Stand, dass diese Frage über VBA zu lösen sein müsste / sollte...
Hat vielleicht da jemand eine Idee zu?
Viele Grüße
bassi

Es ist mit (m)einer UDF im Prinzip kein ...
02.09.2015 19:44:29
Luc:-?
…Problem, Bassi,
das mit einer ZellFml zu lösen, nur hast du leider vergessen, genaue Angaben zur Ergebnisform zu machen, so dass ich mich erst mal für nachfolgende 1zellige MatrixFml mit meiner Standard-UDF (benutzerdefinierte, also eigenpgmmierte Fkt) für solche Fälle, VSplit*, entschieden habe:
{=WENN(ODER(VSplit(A1;", ")=MTRANS(VSplit(B$1;", ")));ZEILE();"")}
Im Ergebnis wird die jeweilige ZeilenNr bei Auffinden von mindestens einem der Suchbegriffe aus dem Auflistungstext in B1 in Spalte A, sonst Leertext wiedergegeben.
Das UDF-Pgm ist in Gänze in ein (normales, nicht Klassen-)Modul des VBA-Projekts (VBEditor öffnen: Tasten Alt+F11) der Datei zu kopieren (Modul anlegen: Rechtsklick auf dann gezeigten Projekt-Strukturbaum → entsprd MenüPkt anklicken!).
Falls das Ergebnis separat (ohne Leerwerte) und ggf mit TextÜbernahme statt der ZeilenNrn erstellt wdn soll, müsstest du das noch mitteilen, falls du es nicht allein schaffst.
* Die unter dem Link ebenfalls vorhandene UDF VJoin ist nicht die letzte Version! Bei Interesse nach Version1.4 suchen (nur in einer hochgeladenen Date)!
Gruß, Luc :-?
Besser informiert mit …

Anzeige
Alternative Ergebnisformen
03.09.2015 02:28:50
Luc:-?
1. Die ZeilenNrn können auch untereinander ohne zwischen­liegende Leertext-Zeilen mit einer mehrzelligen MatrixFml ausgegeben wdn:
{=MTRANS(VSplit(VJoin(WENN(LÄNGE(WECHSELN(A1:A5;VSplit(B1;", ");""))<LÄNGE(A1:A5);ZEILE(1:5);"");; -1);;1)) }
Falls mehr Zeilen für die FmlErgebnisse markiert wurden als letztlich Werte ermittelt wdn (Leertext­Werte entfallen hierbei in Gänze!), zeigen die überzähligen Zellen den in dieser Form nicht eliminier­baren Fehlerwert #NV.
2. Falls alle gefundenen ZeilenNrn aber in einer einzigen Zelle ausgegeben wdn sollen, kann die dafür benötigte einzige (1zellige) MatrixFml so lauten:
{=VJoin(WENN(LÄNGE(WECHSELN(A1:A5;VSplit(B1;", ");""))<LÄNGE(A1:A5);ZEILE(1:5);"");", ";-1)}
3. Sollen dagg alle beim Vergleich gefundenen Werte aus Spalte A in der Reihenfolge ihres Auftretens lückenlos ausgegeben wdn, dann mit mehrzelliger MatrixFml bspw so:
{=WENNFEHLER(INDEX(A1:A5;KKLEINSTE(VSplit(VJoin(WENN(LÄNGE(WECHSELN(A1:A5;VSplit(B1;", ");""))< LÄNGE(A1:A5);ZEILE(1:5);"");;-1);;1);ZEILE(1:5)));"") }
Vorteil aller bisher gezeigten Varianten → es wird stets nur eine Zelle mit Aufführung aller jeweils relevanten Such­begriffe in gleicher Form wie die zu durch­suchenden Daten benötigt.
Beide UDFs sind in dieser hochgeladenen Datei (zu einem anderen Problem) in aktueller Version zu finden.
Luc :-?

Anzeige
AW: Alternative Ergebnisformen
03.09.2015 09:12:09
bassi
Guten Morgen Luc,
ich bin quasi begeistert.
Habe das eben mal in einem Probeblatt angepasst.
Zunächst jedoch will ich mich entschuldigen, dass ich nicht korrekt beschrieben habe, wie sich das Ergebnis darstellen soll und du Dir liebenswürdiger Weise so mehr Arbeit gemacht hast.
Allerbesten Dank dafür.
Es funktioniert tatsächlich fast so wie ich es mir gedacht habe, wobei ich wohl die allererste Formel favorisiere, da dies wohl für die nachfolgende Darstellung einfacher sein wird.
Nun muss ich das in der nächsten Spalte nur noch ohne Leerzellen untereinander sortiert bekommen.
Muss ich mal gucken, ob mir die #WERT! Ausgabe bei einer Leeren Zelle im Suchbereich da keinen Strich durch die Rechnung macht...
Ich danke Dir!
:-)

Anzeige
Na, dann bitte sehr! Allerdings hast du die ...
03.09.2015 17:47:29
Luc:-?
…Lösung (Nr 1, nicht die allererste) schon, Bassi,
wenn ich dich richtig verstehe und wie du dann hier sehen kannst:
 ABC
1Brot, Butter, FleischButter, Fleisch1
2Eier, Nudeln, Brot 3
3Butter, Messer, Wasser 6
4  #NV
5Käse, Tofu, Eis, Milch
6Vollkorn, Eier, Fleisch  
7   
8C1:C4: {=MTRANS(VSplit(VJoin(WENN(LÄNGE(WECHSELN(A1:A6;
VSplit(B1;", ");""))<LÄNGE(A1:A6);ZEILE(1:6);"");; -1);;1))}
Dabei habe ich auch noch eine Leerzelle (A4) eingebaut, so dass sich Zeile 6 als letzte Referenz ergibt. Der Fehler #WERT! kann dabei eigentlich nur entstehen, wenn der Suchbegriff (B1) leer ist, während #NV hier Xl-bedingt ist (hatte ich dir zuvor erklärt), weil der Ergebnis­Wiedergabe­Bereich hier zu groß gewählt wurde.
Die MatrixFml ist mehrzellig, weil sonst nicht die Leertext­Zellen aussortiert wdn könnten, wenn keine Filterung benutzt wdn soll/kann.
Luc :-?

Anzeige
AW: mehrere Werte in einer Zelle finden
02.09.2015 21:17:42
Daniel
Hi
wenn du weningstens die Suchbegriffe aus B1 in mehrere Zellen verteilen könntest (das sollte ja machbar sein, da die sowieso immer neu eingegeben werden müssen, dh bspw in B1-B5
dann könntest du mit dieser Formel dir in spalte C die gefundenen Zeilen mit WAHR kennzeichnen lassen:
=SUMME(WENN(B$1:B$5"";WENN(ISTZAHL(FINDEN(" "&$B$1:$B$5&",";", "&A1&", "));1)))>0
ist ne Matrix-Formel, dh du musst die Eingabe immer mit STRG+SHIFT+ENTER abschließen
das Trennzeichen ", " habe ich in die Suche mit aufgenommen, damit immer auch nur bei ganzen Wörtern ein Treffer erzeugt wird (denn wird nach "EI" gesucht, soll ja "Eis" nicht gefunden werden.
Die Funktion FINDEN, sorgt zusätzlich dafür dass die Gross-Kleinschreibung mit berücksichtigt wird (bei SUCHEN ist sie egal.
wenn die einzelnen Wörter in den Zellen sortiert sind, dann könntest du auch mit Platzhalter arbeiten und so vorgehen:
in B1: "*Butter*Fleisch*"
und in der Kennzeichnungsformel ab C1 dann: =ZählenWenn(A1;B1)
bei Treffen steht dann in C die 1, sonst die 0
wobei das nur funktioniert, wenn die Werte sortiert vorliegen.
denn wenn du mit "*Butter*Fleisch*" suchst erzeugt ein "Brot Butter Fleisch" einen Treffer, "Fleisch Butter Brot" jedoch nicht.
Gruß Daniel

Anzeige
AW: mehrere Werte in einer Zelle finden
03.09.2015 09:13:36
bassi
Guten Morgen Daniel,
Ich danke Dir für Deine schnelle Antwort und die sehr gute Beschreibung.
In einem Probeblatt eingefügt funktioniert es tadellos.
Nur bin ich etwas unschlüssig ob ich es so verwenden kann/sollte.
Bei der derzeitigen Version, werden die Suchbegriffe tatsächlich in entsprechenden Kombinationen in eine Zeile geschrieben.
Diese werden dann in der Suchmaske nur noch über Dop Down angewählt und stehen damit wieder in einer Zeile.
Ich will mich mal an den Vorschlag von Luc probieren. Sollte ich an dem dort bei Leerzelle ausgeworfenen #WERT! versagen, werde ich
wohl umbauen und die Suchwörter tatsächlich mehrzellig anlegen.
Auch dir will ich herzlich für Deine Hilfe danken.
Ich wünsche Dir einen schönen Donnerstag :-)
Anzeige

383 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige