Suchfunktion in einer Tabelle einbauen - Excel
Hallo Com,
Ich möchte in meiner Exceltabelle eine eigene Suchfunkltion einbauen.
Die Tabelle die ich besitze beinhaltet eine Datenbank von knapp 850 Datensätzen mit mehreren Informationen die bereits schon durch die Funktion "VERWEIS" verknüpft sind.
Jetzt soll die Suchfunktion mir dabei helfen, wenn ich die Artikelnummer nicht weiß, ich den Begriff eingebe mir mehrere Artikel nennt als vorschlag. Davon möchte ich mir dann den richtigen aussuchen und und mir als Ergebnis die Artikelnummer ausgeben lassen.
Bsp.: Ich suche die Artikelnummer Eisenbahn per Suchfunktion
Dabei werden mir mehrere Vorschläge ( zum Beispiel in einem Drop-Down-Menü).
- Eisenbahnschienen
- Spielzeugeisenbahn
- Eisenbahn
- Eisenbahngüterzug
- Bahnhof einer Eisenbahn
- etc.
In dem Menü wähle ich dann Eisenbahn aus, wodurch mir dann die Artikelnummer 12345 in einer anderen Zelle ausgegeben wird.
Ich hoffe ich konnte mein Problem einigermaßen schildern und ich hoffe das ihr dazu gute Ideen habt.
Mfg platin90
5 Antworten
Das mit dem Dropdown-Menü habe ich erstmal "außen vor gelassen".
Schau Dir mal meinen Screenshot an!
Formel in F2:
=WENNFEHLER(INDEX(INDIREKT("B"&H2&":B$20");VERGLEICH("*
"&$D$2&"*
";INDIREKT("B"&H2&":B$20");0));"")
und runterkopieren.
Formel in G":
=WENNFEHLER(INDEX(INDIREKT("A"&H2&":A$20");VERGLEICH("*
"&$D$2&"*
";INDIREKT("B"&H2&":B$20");0));"")
und runterkopieren.
In H2 steht nur:
1
in H3 die Formel:
=WENNFEHLER(ZEILE(INDEX(INDIREKT("A"&H2&":A$20");VERGLEICH("*
"&$D$2&"*
";INDIREKT("B"&H2&":B$20");0)))+1;"")
und runterkopieren.
Die Hilfsspalte kann natürlich ausgeblendet werden!
Entspricht das in etwa Deinen Vorstellungen?
Lässt sich natürlich noch verfeinern.
P.S.: Wenn Du den Screenshot nicht siehst, musst Du die Seite nochmal neu laden, ggf. mehrmals.

Hallo,
erstmal brauche ich deine Adresse und Name. Muss mal vorbei kommen und abknutschen :D
Also ich habe es jetzt auf mein Beispiel angewandt und umgeschrieben weil meine Anordnung natürlich ein wenig anders ist. Aber es funktioniert einwandfrei.
Ja, meine Idee war im Ansatz in etwa das gleiche. Ich wusste halt nur nicht wirklich wie ich das mit der Mitlaufvariable mache. Kenne es nur von C++ und anderen Programmierprogrammen.
Aber wirklich vielen Dank.
Vielleicht hast du noch eine Idee wie ich gewisse bedingungen da einfügen kann. So dass sich die Suchergebnisanzahl schon direkt verringert.
MFG platin
Freut mich, dass ich helfen konnte ☼
Danke fürs ☆
Um "gewisse Bedingungn" einzufügen, kannst Du z.B. direkt im Suchwort, also in D2 mit Wildcards arbeiten.
Wenn Du dort z.B. Eisenbahn? eingibst, als ein ? anhängst (Platzhalter für EIN Zeichen), dann werden nur: Eisenbahnschienen und Eisenbahngüterzug angezeigt, weil bei den anderen Eisenbahn das letzte Wort ist.
Mit ?Einsenbahn, erhältst Du nur Spielzeugeisenbahn und Bahnhof einer Eisenbahn, weil nur dort Eisenbahn NICHT das erste Wort ist.
Und mit Eisen*bahn würden alle angezeigt, zusätzlich aber auch z.B. "Eisenautobahn".
Hi,
die Formel möchte ich ja ansich nicht weiter verändern, weil dieses Dokument auch für andere Mitarbeiter zugänglich sein soll. Also soll es so benutzerfreundlich wie möglich sein.
Die Produkte haben ja auch noch andere Eigenschaften und Datensätze in der Datenbank als nur Artikelnummer und Name. Zum Beispiel ob sie für Kinder geeignet sind oder nicht. Also eine einfach binäre Auswahlmöglichkeit. Das würde ich ganz einfach so machen, das man in einer Zelle mit einem "x" makiert, das nur Sachen für Kinder rausgesucht werden sollen. Ich frage mich das einfach wo ich da genau eine Wenn- Funktion jetzt einbauen soll.
Wäre cool, wenn man da noch eine Lösung finden würde.
UNd kein Problem für den Stern. Schließlich ist er berechtigt :D
MfG
Da Excel leider nur in wenigen Funktionen Wildcards erlaubt, und ich damit keine zweite Bedingung eingefügt bekomme, würde ich jetzt, für diese erweiterte Aufgabe, eine andere Vorgehensweise vorschlagen.
Dafür schreibe ich Dir jetzt eine
da ich in einem Kommentar leider keinen Screenshot einfügen kann.
Hallo Platin,
schon mal dran gedacht dass mit Access zu machen? Etwas schwierig wenn man noch nie mit Access gearbeitet hat, aber die Suchfunktionen und -möglichkeiten sind enorm flexibel, z.B. etwas wie Like "Eisenbahn" würde alle Deiner Worte oben finden und nett in einer Liste darstellen. Daten zwischen Excel und Access auszutauschen ist sehr einfach.
Das Problem ist nur, das wir auf Arbeit nicht mit Access arbeiten.
Hallo,
ja das habe ich auch schon einmal überlegt. Müsste mich aber auch erst wieder einwenig in Access reinfuchsen.
Eisenbahn muss dabei zwischen zwei Sternen stehen, wird hier aber zur Formatierung benutzt...
Es geht über eine Kombobox aber hier wird entweder auf den FirstLetter oder das gesamte Wort abgeglichen. Sprich du kannst bekommst bei Eingabe von "Eisen" das Wort "Spielzeugeisenbahn" nicht mit angezeigt.
Eventuell nicht ganz das was du suchst, aber für diesen Zweck anwendbar sind Pivottabellen, die du in Excel erzeugen kannst.
Und zwar kannst du deine Datensätze hiermit filtern lassen. z.B. hast du eine Auswahlliste für den Artikel. Dort kannst du auswählen, welche sichtbar sein sollen. Auch die Suchfunktion innerhalb der bestehenden Werte wie beschrieben (Eisenbahn) funktioniert. Anschließend werden nur noch die Treffer in der Liste angezeigt und du kannst die Artikelnummer bequem ablesen.
Habe leider keine wirklich gute Anleitung gefunden, die ich dir nennen könnte, um dein Problem zu lösen. Einfach mal mit herumspielen. Ansonsten einfach mal per PN melden, dann schicke ich dir eine Beispieldatei.
wegen Screenshot:
Schau Dir den Screenshot mal kurz an, der Aufbau hat sich nur etwas geändert, aber die Formel sind total anders aufgebaut:
Ich habe jetzt in Spalte C die Kinderoption hinzugefügt und statt in H eine Hilfsspalte in Spalte D eingebaut. In D2 steht jetzt die einfache Formel:
=ISTZAHL(SUCHEN($E$2;B2))
und runterkopiert, die - diesmal mit der SUCHEN-Funktion - für jeden Artikel in Spalte B WAHR zurückgibt, wenn in dem String der Text aus E2 vorkommt (SUCHEN arbeitet quasi genau so wie die Wildcards).
In F2 wird angegeben, ob die Kinderoption berücksichtigt werden soll.
In G2 (und runterkopiert) steht jetzt:
{=WENNFEHLER(INDEX($B$1:$B$20;KKLEINSTE(WENN(($D$1:$D$20=WAHR)*
($C$1:$C$20="x")=0;9^9;ZEILE($1:$20));ZEILE(A1)));"")}
In H2 entsprechend (nur der INDEX - Bezug wurde geändert):
`{=WENNFEHLER(INDEX($A$1:$A$20;KKLEINSTE(WENN(($D$1:$D$20=WAHR)*
($C$1:$C$20="x")=0;9^9;ZEILE($1:$20));ZEILE(A1)));"")}
Hierbei fragt der Teil ($D$1:$D$20=WAHR) ab, ob Eisenbahn vorkommt, und ($C$1:$C$20="x") ob die Kinderoption gesetzt ist.
Diese beiden Teile werden multipliziert, was einer UND-Verknüpfung entspricht
Weitere Bedingungen kannst Du zufügen, indem Du mit einer entsprechenden Abfrage multiplizierst, also z.B. (ohne genaueren Sinn):
{=WENNFEHLER(INDEX($B$1:$B$20;KKLEINSTE(WENN(($D$1:$D$20=WAHR)*
($C$1:$C$20="x")*
($J$1:$J$20="x")=0;9^9;ZEILE($1:$20));ZEILE(A1)));"")}
ACHTUNG!
Das sind jetzt Matrixformeln.
Das bedeutet: Die geschweiften Klammern {} NICHT mit eingeben,
sondern die Eingabe der Formel NICHT mit ENTER abschließen,
sondern mit: STRG & SHIFT & ENTER (alle drei gleichzeitig).
DAS erzeugt die {} und macht die { } und macht die Formel zu einer Matrixformel.
Ich hoffe Du kommst damit klar!?

Ich sehe erst jetzt, Du hattest ein ähnliches Konzept schon in Deiner Antwort entworfen.
Da hatten wir wohl die gleiche Idee.