Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1340to1344
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

Dynamische Liste mit Variabler Suche

Dynamische Liste mit Variabler Suche
30.12.2013 17:11:14
nontacky
Hallo Leute,
ich hoffe ihr habt alle eine schöne Zeit "zwischen den Jahren". Ich habe mal eine Frage zur Optimierung einer Formel die ich nutze.
Ich möchte aus einer langen Liste (10000 Einträge) eine dynamische Liste in einem anderen Tabellenblatt erstellen, die mir nur die Zeilen anzeigt in denen bestimmte Werte stehen. Ich habe das immer nur mit einem Suchwert gemacht, das klappt - aber jetzt muss es mit einem Platzhalter funktionieren, das kriege ich nicht hin.
Das ist meine aktuelle Formel:
{=WENN(ZEILEN($1:1)>ZÄHLENWENN([Tabelle1.xlsm]Bestellungen!$I:$I;$L$2);0; KKLEINSTE(WENN([Tabelle1.xlsm]Bestellungen!$I$1:$I$10000=$L$2;ZEILE($1:$10000));ZEILE(A1))) }
Damit wurde mir, wenn in Tabelle1.xlsm in Spalte I mein Suchwert den ich Zelle L2 eingetragen habe auftaucht, immer der Zeilenwert der entsprechenden Zeile in Tabelle 1 zurück gegeben, aufsteigend. Den Rest habe ich dann mit der Index Funktion gemacht um die dynamische Liste zu erstellen.
Jetzt habe ich aber das Problem, dass in Spalte I von Tabelle 1 mehrere Werte stehen, die ich in meiner dynamischen Liste anzeigen lassen möchte. Diese Werte haben alle die Gemeinsamkeit, dass sie die mit den Buchstaben "QP " anfangen (also QP Leerzeichen). Ich habe also versucht als Suchwert *QP * einzugeben, oder "*QP *", das klappt aber alles nicht.
Was muss ich machen, damit mir ein "Treffer" angezeigt wird, sobald dieses "QP " in einer Zelle in Spalte I von Tabelle 1 vorkommt?
Vielen Dank und Guten Rutsch,
Martin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
da gibt es mehrere Lösungsansätze ....
30.12.2013 17:27:21
neopa
Hallo Martin,
... eine davon wäre z.B.
{=WENNFEHLER(INDEX(I:I;KKLEINSTE(WENN(LINKS(I$1:I$10000;2)=$L$2;ZEILE($1:$10000));ZEILE(A1)));"") }
und Formel nach unten kopieren(ich würde die Auswertung auch im Quelltabellenblatt vornehmen und die Ergebnisse durch einfachen Bezug in die Ergebnisdatei holen) .
Gruß Werner
.. , - ...

... wenn allgemeiner, dann ...
30.12.2013 17:50:53
neopa
Hallo Martin,
... wenn in L2 ein beliebiger langer Anfangstext stehen soll, dann so:
{=WENNFEHLER(INDEX(I:I;KKLEINSTE(WENN(LINKS(I$1:I$10000;LÄNGE(L$2))=L$2;ZEILE($1:$10000));ZEILE(A1))) ;"") }
und wenn Du noch die exakte Groß-/Kleinschreibung berücksichtigen willst, dann z.B. so:
{=WENNFEHLER(INDEX(I:I;KKLEINSTE(WENN(IDENTISCH(LINKS(I$1:I$10000;LÄNGE(L$2));L$2);ZEILE($1:$10000)); ZEILE(A1)));"") }
und wenn die Zeichenkette in L2 an beliebiger Stelle in den Textwerten der Spalte I stehen können, so:

{=WENNFEHLER(INDEX(I:I;KKLEINSTE(WENN(ISTZAHL(SUCHEN(L$2;I$1:I$10000));ZEILE($1:$10000));ZEILE(A1))); "") }
und wenn Du noch die exakte Groß-/Kleinschreibung dabei berücksichtigen willst, dann anstelle SUCHEN() die Funktion FINDEN() einsetzen.
Gruß Werner
.. , - ...

Anzeige
AW: da gibt es mehrere Lösungsansätze ....
30.12.2013 17:52:42
nontacky
Hallo Werner,
vielen Dank - das funktioniert so weit. Ist aber in der Tat etwas langsam. Deine Anregung die Auswertung in der Quelldatei zu machen interessiert mich da. Die Auswertung in jeder Zeile der Quelldatei bekomme ich hin, aber ich frage mich wie ich dann, ohne wieder eine Index Formel bzw. eine Formel mit {} verwenden zu müssen. Wenn ich also in der Quelldatei die Auswertung jeder Zeile in Spalte X schreibe, wie kriege ich dann die ganzen Zeilen in meiner neuen Liste nicht angezeigt in denen der Suchwert nicht enthalten ist und das ohne Performance hungrige Index / {} Formel?
Viele Grüße,
Martin

Anzeige
MAZ
30.12.2013 18:00:59
neopa
Hallo Martin,
... angenommen die Ergebnisse stehen in Spalte N, dann einfach =Tabelle1!N1 und nach unten ziehen. Wobei ich =INDEX(Tabelle1!N:N;) nutzen würde. Denn nicht INDEX() ist so Ressourcen hungrig sondern die zuvor aufgezeigte Matrixformel.
Gruß Werner
.. , - ...
oT ich bin dann erst mal wieder w wie weg. Guten Rutsch.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige