Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Filter für Dropdownliste
#1
Ausgangslage:

Eine vorhandene Tabelle "Stammdaten" enthält: Vorname, Name, Geburtstag usw.
Eine Spalte in der Tabelle enthält die berechneten Werte des Alters, eine weitere Spalte: minderjährig / volljährig.
Die Tabelle enthält zusätzlich Name / Vorname der Erziehungsbrechtigten.
Aus praktischen Gründen werden alle Daten mittels Formular erfasst und in eine einzige Tabelle übertragen.

Ziel:
Erstellen einer Dropdownliste, die alle Namen / Vornamen der Stammdaten enthält.
Die Herausforderung:
a)
falls noch nicht volljährig, soll die Dropdownliste nur mit den Namen der Erziehungsberechtigten gefüllt werden,
falls nicht,
mit den Namen / Vornamen der Schüler*Innen.
b)
Zelle XY im worksheet wird vorher angekreuzt: volljährig? Ja / nein;
entsprechend soll die Dropdownliste gefüllt werden.

Trotz etlicher Versuche ist es mir als Einsteiger in Excel leider noch nicht gelungen diese Herausforderung zu meistern.
Bei Datenüberprüfung, ob Aggregat, Index usw. erhalte ich leider nur Fehlermeldungen!

Von daher wäre ich für Ratschläge und / oder Beispieldateien sehr dankbar.
Falls mit VBA Code, bitte mit entsprechender, für Einsteiger nachvollziehbarem Code-Kommentierung / -Erklärung.

Danke,
Grüße aus El Salvador, Peter

PS.:
Bitte nicht wundern, wenn ich auf Antworten nicht sofort reagiere.
(Ich bin ja völlig buff, wie schnell ich hier als Einteiger Antworten in diesem Forum erhalte: !muchas gracias!)
Oft fällt hier vor Ort das Internett für Tage aus oder ist so gedrosselt, dass ich keine Web-Seite aufrufen kann – sorry.
(Nervig, aber es gibt schlimmeres.)
Antworten Top
#2
Hallöchen,

Du könntest z.B. per Formel Daten filtern und an eine andere Stelle im Blatt übernehmen und das als Basis für die Datenüberprüfung nehmen
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • peschiber
Antworten Top
#3
Hallo,

danke für deinen Hinweis.
Hatte bereits, glaube ich, inzwischen selber eine Lösung gefunden > AdvanceFilter > copy in anderen Bereich.
Sau-schnell! > bei 1000 Dummy-Zeilen und 25 column unterhalb einer Sekunde.

Was ich bislang gelernt habe:
Das definierte Suchkriterium wird im NamensManger unter "Suchkriterium" automatisch generiert.
Kleiner Nachteil:
Das Filterkriterium muss im AdvanceFilter bei einem geändertem Suchkriterium neu definiert werden.

Frage:

Wie lösche ich in VBA das Suchkriterium beziehungsweise ändere ich das Suchkriterium auf den neuen Wert? > statt "S" jetzt "E"
(Auch wenn ich bislang VBA vemeiden wollte, da keine Ahnung davon, unternehme ich gerade die ersten Gehversuche in VBA, weil ich scheinbar nicht darum herumkomme.
Auch deshalb aufwendig, da mit Sicherheit vieles für LibreOffice Calc später geändert werden muss.)

Ich habe es leider noch nicht geschafft, den Wert im Bereich "NamensManger" entsprechend per VBA Code zu ändern.

Für Lösungshinweise, möglichst mit Beispiel bin ich sehr dankbar.

Danke, Peter, El Salvador

PS.:

In dem Zusammenhang eine Frage, die nur bedingt zu Thema "Filter für Dropdownliste" passt.
Als Excel noch auf einer 750 KB Diskette ausgeliefert wurde - glaube 1983 - hat frau / man darauf geachtet, wenig "Platz" zu verschwenden.
Auch wenn der Speicherplatz heute eine untergeordnete Rolle spielt, bin ich als Wiedereinsteiger in Excel immer noch "geprägt" von der Vorstellung: keine Zelle zu viel zu vergeuden.
Bezogen auf "Filter für Dropdownliste" überlege ich:
Wenn Speicherplatz heute eine untergeordnete Rolle spielt, warum nicht gleich mehrere AdvancedFilter gleich von Anfang anlegen und in verschiedenen Breichen der Tabelle kopieren?
Wenn in Zelle xy das Suchkriterium "S" steht, nimm: "SuchkriteriumS, suche im Ergebnisbereich "S" und dort die Column z zur Erstellung der Dropdownliste
wenn in Zelle xy das Suchkriterium "E" steht, tome: "SuchkriteriumE, suche im Ergbenisbereich "E" und dort die Column z zur Erstellung der Dropdownliste
usw.
Frage:
Ist so eine Vorgehensweise sinnvoll oder "Verschwendung"?
Gibt es elegantere Lösungen?
Zu welcher Vorgehensnweise ratet Ihr mir?

Danke
Antworten Top
#4
Hallöchen,

Zitat:Ich habe es leider noch nicht geschafft, den Wert im Bereich "NamensManger" entsprechend per VBA Code zu ändern.

Musst Du auch nicht. Du änderst den Wert in der Zelle, hier C2.

   

Zitat:Wenn Speicherplatz heute eine untergeordnete Rolle spielt,

da bin ich bestimmt nicht der Einzige, der das nicht so sieht.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo,



per neuer Filter-Funktion sollte das auch gehen. siehe Beispiel


Angehängte Dateien
.xlsx   Mappe1.xlsx (Größe: 9,85 KB / Downloads: 7)
Cadmus
[-] Folgende(r) 1 Nutzer sagt Danke an Cadmus für diesen Beitrag:
  • peschiber
Antworten Top
#6
Hallöchen,

ich weiß nicht, ob meijn Ansatz mit dem Spezialfilter in LO so funktioniert, aber gibts "per neuer Filter-Funktion" dort auch

Zitat:Auch deshalb aufwendig, da mit Sicherheit vieles für LibreOffice Calc später geändert werden muss.)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hallo Cadmus,

vielen Dank für deine Hinweise und deine Beispieltabelle.

Für mich ist es leider ziemlich schwer, die beiden Formeln nachzuvollziehen.
Im NamensManger die Formel:
=BEREICH.VERSCHIEBEN(Tabelle1!$F$2;0;0;ANZAHL2(Tabelle1!$F$2:$F$10);1)
und in der Zelle F2:
=WENN(D2="Nein";FILTER(A2:A5;B2:B5="X");FILTER(A2:A5;(B2:B5="x")+(B2:B5="")))

Ich habe versucht das ganze jetzt über eine Filterfunktion zu lösen > siehe Beispieldatei.

Was dann allerdings nicht mehr geht:
die Spalte mit der Filterberechnung in eine „intelligente“ Tabelle umgewandelt wird > „Überlauf“
(Trifft auch auf deine Beispieldatei zu.)

Falls du eine Lösung hast, wie ich die Dropdownliste so variabel gestallten kann, dass sie sich nach der Anzahl der Einträge anpasst, lass es mich wissen.
Ich habe noch keine Lösung gefunden wie die Syntax lauten muss,  damit der Bereich variabel ist.
Suche nach einer Formel die z. B.:
Bereich $A$2: $A$ [ANZAHL2(A:A)-1]
abdeckt. So funktioniert sie leider nicht.

Danke, Peter


Angehängte Dateien
.xlsx   Dropdown Filtern02.xlsx (Größe: 13,34 KB / Downloads: 3)
Antworten Top
#8
Zitat:Falls du eine Lösung hast, wie ich die Dropdownliste so variabel gestallten kann, dass sie sich nach der Anzahl der Einträge anpasst, lass es mich wissen.


Genau das macht die Formel im Namensmanager.

Die Formel in F2 erstellt die Dropdownliste in Abhängigkeit von "Unter 18" Ja oder Nein.



Zitat:Was dann allerdings nicht mehr geht:
die Spalte mit der Filterberechnung in eine „intelligente“ Tabelle umgewandelt wird

Stimmt muss so bleiben. Intelligente Tabelle an dieser Stelle ist auch nicht nötig.
Cadmus
[-] Folgende(r) 1 Nutzer sagt Danke an Cadmus für diesen Beitrag:
  • peschiber
Antworten Top
#9
Hallo,

du bist ja schneller als die Feuerwehr. Danke.

bezüglich F2:
genau diese Formel habe ich überhaupt nicht verstanden.
=BEREICH.VERSCHIEBEN(Tabelle1!$F$2;0;0;ANZAHL2(Tabelle1!$F$2:$F$8);1)
Sorry, für Anfänger ist es wirklich so einfach, sich in die Syntax einzuarbeiten.

Ich hatte zunächst es mit deiner Beispieldatei probiert und 20 weitere Zeilen: Spalte A > Namen, Spalte B mit und ohne x gefüllt.
Da der Bereich für die gefilterte Liste bei dir aber nur bis Ax festgelegt ist, werden zusätzlich Einträge verständlicherweise nicht aufgezeigt.
Wenn ich den Bereich auf zum Beispiel bis zu A30 / F30 erweitere, tauchen dann in der Spalte F dort "0" auf, wenn weniger als 30 Zeilen gefüllt sind.

Danke, Peter
Antworten Top
#10
Wenn sich Leerzellen im zu filternden Bereich befinden, tauchen logischerrweise Nullwerte auf.

Du kannst die Ausgangsliste mit den Namen auch als intelligente Tabelle formatieren und arbeitest in den Filter-Formeln mit den Spaltennamen.

Und/Oder die Filter-Formel erweitern und leere Zellen ausschließen.

Zum Verständnis der einzelnen Funktionen vielleicht mal das ein oder andere Videotuorial auf Youtube anschauen.

https://www.youtube.com/results?search_q...erschieben&page&utm_source=opensearch


Angehängte Dateien
.xlsx   Mappe1.xlsx (Größe: 11,48 KB / Downloads: 3)
Cadmus
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste