Suchfunktion in einer Tabelle einbauen - Excel

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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.

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
Screenshot - (Computer, Microsoft Excel, Datenbank)
Oubyi, UserMod Light  11.10.2012, 16:33

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

0
platin90 
Fragesteller
 12.10.2012, 11:33
@Oubyi, UserMod Light

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

0
Oubyi, UserMod Light  12.10.2012, 16:01
@platin90

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".

0
platin90 
Fragesteller
 15.10.2012, 10:11
@Oubyi, UserMod Light

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

0
Oubyi, UserMod Light  16.10.2012, 23:23
@platin90

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

Neue Antwort

da ich in einem Kommentar leider keinen Screenshot einfügen kann.

0

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.

CholoAleman  11.10.2012, 15:07

Eisenbahn muss dabei zwischen zwei Sternen stehen, wird hier aber zur Formatierung benutzt...

0
platin90 
Fragesteller
 11.10.2012, 15:14

Hallo,

ja das habe ich auch schon einmal überlegt. Müsste mich aber auch erst wieder einwenig in Access reinfuchsen.

0
platin90 
Fragesteller
 11.10.2012, 15:28

Das Problem ist nur, das wir auf Arbeit nicht mit Access arbeiten.

0

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.

Neue Antwort

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)));"")}

WICHTIG:

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!?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
Screenshot - (Computer, Microsoft Excel, Datenbank)