Excel Interaktive Suchmaske

Gummi-Guru

Newbie
Registriert
Mai 2016
Beiträge
3
Hallo liebe Forumisten,

ich habe hier und in vielen anderen Foren schon einige Stunden gestöbert und habe auch schon einiges an Hilfen gefunden, auf eine Lösung meines Problemes bin ich aber noch nicht zu 100 gestoßen.

Jedes Element hat 1 "Bezeichnung", bis zu 3 "Zusätze" und bis zu 5 "Eigenschaften".
Es gibt eine Vielzahl an Eigenschaften, Zusätzen und Bezeichnungen.
Ich benötige nun eine Suchmaske/Suchfunktion, in der ich die geforderte Bezeichnung, Zusatz und Eigenschaft eintrage und dann soll mir das Element angezeigt werden. Allerdings muss die Suchmaske/Suchfunktion auch funktionieren, wenn ich z.B. keine Bezeichnung und nur 1 Zusatz und 3 Eigenschaften eintrage.

Ich habe dazu mal eine kleines Beispiel gebastelt: Jeder Spieler hat eine Nummer und einen Namen. Seine Position ist die oben genannte Bezeichnung (im Beispiel 5 Spieler mit der Bezeichnung Abwehr). Es gibt verschiedene Zusätze und Eigenschaften, die ggf. in unterschiedlichen Spalten eingetragen sind. In die Suchmaske möchte ich nun eingeben: Abwehr, Zusatz B, Eigenschaften: sprinten, passen. Als Ergebnis sollen mir dann die Spieler angezeigt werden, die in der Abwehr spielen, mindestens den Zusatz B haben und mindestens die Eigenschaften sprinten und passen.
* stehen dafür, dass kein Wert angegeben ist.

Ich lade die Datei mal mit hoch damit Ihr euch ein besseres Bild machen könnt.

Bisher habe ich mit den Filtern -> Textfiltern -> Enthält.... gearbeitet und alle Zusätze waren in einer Zelle und alle Eigenschaften in einer weiteren Zelle, dies wird aber mit steigender Anzahl der Daten zu unübersichtlich.
Ich hatte gehofft mit SVerweisen und WennDann Funktionen arbeiten zu können, weiß aber nicht wie ich die Verknüpfung Von SVerweis auf WennDann-Funktion weiter zur Ergebnis Ausgabe/Makierung hinbekommen kann.

Über Hilfen oder Tipps bin ich sehr dankbar.

Viele Grüße

Gummi-Guru
 

Anhänge

  • Beispiel.xlsx
    11,1 KB · Aufrufe: 599
Mach eine Hilfsspalte in der Du alle Eigenschaften zusammen in ein Feld schreibst, dann reichts als Filter enthält "sprinten" zu nehmen unabhängig von der Reiehenfolge und nimm diese Spalte nur zum Filtern. Einfach die Inhalte per Formel erstellen lassen (=C1&D1 etc).
Du hast hier eigentlich etwas was man mit Datenbanken geschickter lösen kann, sofern man da etwas Ahnung hat.
Wenn die Reihenfolge keine Rolle spielt war Dein erster Ansatz schon der richtige. Wenn Du nach 2 oder mehr Eigenschaften suchen willst musst Du sowas bauen wie
Wenn(Finden(suchtext1;Hilfsspalte)>0;1;0)+wenn(Finden(suchtext2;Hilfspalte)>0;1;0) etc
Die Summe muss dann exakt der Anzahl von Suchfeldern entsprechen für Treffer.
Das funktioniert auch nur solange die Reihenfolge egal ist und solange Deine Parameteranzahl fest bleibt.
Vermutlich kannst Du auch zig geschachtelte Arrayformeln nehmen, macht aber spätere Anpassungen und Fehlerbehebungen nicht einfacher.
Am schnellsten (auch von der Performance, ist jetzt bei den paar Daten aber unerheblich) bekommt man sowas in Excel immer hin mit Hilfsspalten die man fürs suchen und filtern nehmen kann, bei festgelegter Reihenfolge ist das natürlich einfacher (also z.B. Sprinten immer erst an erster Stelle etc.). Manchmal baut man sich auch mehrere Hilfsspalten die man dann mit einer Formel auswertet und nach dem Ergebnis dann filtert.
 
Vielen Dank alxtraxxx für die super schnelle Hilfe!

Wie bereits gesagt ich möchte ungern mit Filtern arbeiten, da es in der späteren Anwendung u.U. eine sehr große Anzahl an Bezeichnungen und Eigenschaften gibt. Ich habe deinen Vorschlag mit dem Filter versucht, bekomme aber kein Ergebnis, wenn ich in der Suche eine andere Reihenfolge angebe als in der Tabelle.

Würdest du deinen Vorschlag mit "Wenn(Finden(suchtext1;Hilfsspalte)>0;1;0)+wenn(Finden(suchtext2;Hilfspalte)>0;1; 0) etc" etwas ausführen können? Wie kann ich mir anzeigen lassen, auf welcher Spieler (im Beispiel) die gesuchten Eigenschaften zutreffen? Am liebsten Wäre mir eine Auflistung mit allen Nummern:
Bezeichnung Z1 Z2 Z3 E1 E2 E3 E4 E5
Suche * B * * passen * * * *
Ergebnis: 2
10
11

Ich hätte jetzt gedacht, ich mache zwischen Suche und Ergebnis Hilfsspalten mit den Formeln, die ich dann verbergen kann.

Zur Finde-Funktion: Kann ich eine Finde-Funktion für E1 schreiben, dann den gesamten Datenbereich E1 - E5 auswählen?

Wäre die ganze Sache einfacher, wenn es anstatt der drei Kriterien Bezeichnung, Z(x3), und E(x5) nur ein Kriterium E (x8) geben würde?

Vielen Dank für die Hilfe!

Update: Ich habe mal die Beispieltabelle ergänzt. Im Prinzip würde es dann auch reichen, wenn man gesamt nur 4 Suchkriterien eingeben kann, sprich die Suchmaske hätte nur 4 mögliche Felder. Als Resultat würden dann natürlich mehre Ergebnisse in Frage kommen.
 

Anhänge

  • Beispiel 2.xlsx
    13 KB · Aufrufe: 404
Zuletzt bearbeitet: (Datei angehängt)
Wenn alle gleichstark zählen und sich alle gegnseitig ausschliessen kannst Du 1 Hilfsspalte machen in der du alle verkettest, es würde also E (x8) gehen.
Die Anzahl der Treffer könntest Du über der Ergebnisliste mit einer Excelfunktion angeben, die nur angezeigte Zeilen zählt, nennt sich teilergebnis.
Bei meinem Vorschlag hättest Du dann eine Hilfsspalte die alle Eigenschaften verkettet in einem Feld, ich nenne es jetzt mal Y5, in Z5 wäre dann wenn die Suchbegriffe in Zeile 2 von A-H wären
=wenn(finden(A2;Y5)>0;1;0)+
Wenn(finden(B2;Y5)>0;1;0)+
...
Wenn(finden(H2;Y5)>0;1;0)
Somit würde in der Spalte die Summe der Einzeltreffer stehen, also im Trefferfall müssen da exakt 8 herauskommen.
Wenn Du auch Kritetien herausnehmen willst aus dem Filter müsstest Du noch Ergänzen
=wenn(oder(finden(H2;Y5)>0;h2="*";1;0)
Vielleicht kann ich Dir heute das in Dein Beispiel reinbauen, je nachdem wieviel Zeit mir mein Kind läßt ;)
Ergänzung ()

So hab das mal hingebastelt, Du könntest einen Knopf neben die Suchfelder machen der bei Klick den
Autofilter automatisch neu setzt (einmal filter rausnehmen und dann wieder wie vorher setzen, kannst Du auch
mit dem Macrorecorder aufzeichnen). Ich weiss jetzt nicht welche Excel-Version Du hast, mit den älteren geht WennFehler(..) nicht. Ich hab * als "egal" interpretiert.
 

Anhänge

  • Beispiel 2.xlsx
    13,8 KB · Aufrufe: 359
Vielen Dank Für deine Hilfe. Leider verstehe ich deine Formel/Tabelle nicht. Ich verstehe auch nicht, wie ich die Suchkriterien eingeben kann. Ich benutze Excel 2010.

Ich hatte mir sonst überlegt, das ganze über ein "Punktesystem" zu regeln:
- Für jedes Suchkriterium (Eigenschaft1 - Eigenschaft 8), das erfüllt ist +1
- Für jedes Suchkriterium, das nicht erfüllt ist +0
- Am Ende wird es absteigend sortiert.

Klappt soweit auch ganz gut. Ist zwar etwas "unschön" aber erfüllt seinen Zweck.
Kann ich einstellen, dass die Spalte"Punktzahl automatisch sortiert wird, nach dem ich meine Suchkriterien eingegeben habe?

Vielen Dank.
 

Anhänge

  • Beispiel 2.xlsx
    16,1 KB · Aufrufe: 326
Die Suchkriterien trägst Du oben ein wo Deine Beispiele schon standen, sollte direkt mit meiner Vorlage funktionieren. Man kann ein Macro zum automatischen filtern entweder als Ereignis auslösen wenn der letzte Suchbegriff eingegeben wurde oder als Knopf hinten dran pappen.
Die Formel macht das genauso wie Du es Dir überlegt hast, es sucht jeden Suchbegriff einzeln und addiert dann 1 bei Treffer oder 0 bei nicht. Wenn * als Suchbegriff eingetragen ist soll er 1 ausgeben (deshalb das oder). Das WennFehler wird benötigt weil sonst #Wert rauskommt wenn Finden nix findet. Du solltest aber filtern nicht sortieren wenn nur noch die Treffer angezeigt werden sollen. Vielleicht kann ich Dir heute mittag mal den Knopf und Makro reinbasteln und ne Minidoku schreiben

Update:
So hab die mal dran gehangen, den Knopf brauchste Du theoretisch nicht, sobald ein Suchkriterium eingegeben wird sollte er filtern. Rechts im Tabellenblatt hab ich die Formeln ein bisschen erklärt.
Makros musst Du aber erlauben damit die auch was tun ;)
 

Anhänge

  • Beispiel 2.zip
    20,5 KB · Aufrufe: 470
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: sturmfan28
Echt super Tipps die alxtraxxx hier gibt. Hast auch mir als "Neuling" hier im Forum direkt weitergeholfen. Danke nochmal.
 
alxtraxxx dien Lösung passt nahezu perfekt zu meinem Problem.
wie kann ich den Such Algorithmus adaptieren, wenn ich weitere Spalten und Zeilen hinzufüge?

Danke schön und LG
 
Zuletzt bearbeitet:
Zurück
Oben