Abhängige (dynamische) Drop-Down-Listen

In Formularen sind abhängige Drop-Down-Listen oftmals unabdingbar. Was bedeutet das? Wählt man im ersten Feld eine Oberkategorie "Obst" oder "Fleischwaren", dann sollen in einer zweiten Auswahlliste nur die entsprechenden Einträge zur Option stehen. Wir haben diese abhängigen Drop-Down-Listen bereits im Beitrag "Dropdown einer Dropdown-Liste erstellen - abhängige Dropdown" illustriert. Das funktioniert dann einwandfrei, wenn sich die Inhalte der Unterkategorien nicht ändern. Ansonsten ist es notwendig, die Bereiche (Namen) von "Obst" oder "Fleischwaren" den neuen Umständen entsprechend anzupassen (Bereich erweitern oder reduzieren). Es suggeriert also eine dynamische Drop-Down-Liste. Wie man einen solchen Namen (mit der Formel BEREICH.VERSCHIEBEN) anlegt, kannst Du in diesem Beitrag nachschlagen: Bereich eines Namens automatisch erweitern

Wir würden also alle Namen für die Drop-Down-Listen entsprechend anlegen, wie im Screenshot unten dargestellt (mit der Formel "BEREICH.VERSCHIEBEN", referenzierend auf das separate Blatt "Parameter"):

Namenslisten-Dynamisch

Wählt man im Anschluss im Formular die erste Option zu "Essen", sollte in der abhängigen Drop-Down-Liste dann die jeweilige Unterkategorie abrufbar sein. Dies ist jedoch nicht der Fall, die Auswahl-Liste lässt sich mit Klick auf den Erweiterungspfeil gar nicht erst aufrufen und anzeigen. Wie können wir also sowohl abhängige wie auch dynamische Drop-Down-Listen erstellen? Das Vorgehen zeige ich Dir nachfolgend Schritt für Schritt auf, lösche jedoch bitte im Namensmanager (Menüpunkt "Formeln" → "Namensmanager") allfällige bereits definierten Namen für Deine Drop-Down-Listen.

Abhängige, dynamische Drop-Down-Listen (Lösungsansatz)

Wir müssen die ursprünglichen Daten auf dem separaten Blatt "Parameter" also anders definieren, um jederzeit unsere Auswahl-Kriterien ergänzen und unmittelbar nachher im Formular abrufen können. Gehe dazu im Menüband auf das Register "Einfügen" und selektiere die Option "Tabelle". Du erstellst nun also eine Tabelle und wählst als erstes den Bereich "A1:A3" aus, um die Oberkategorie abzubilden. Falls Du die Zeile 1 inkludierst, wähle zudem "Tabelle hat Überschriften".

TabelleEinfuegenUndDefinieren

Wiederhole den Vorgang auch für die Unterkategorien "Fleischwaren" und "Obst".

Wenn Du nun in der Spalte A Fleischwaren und Obst markierst, siehst Du links oben im Namensfeld (normalerweise steht da die Zelle "A2" und so weiter) "Tabelle1" stehen. Der Name "Tabelle1" ist aktuell also stellvertretend für diesen Bereich. Klicke in dieses Namensfeld und überschreibe einfach "Tabelle1" mit "Essen" - bestätige mit der Enter-Taste. Du wirst in dem Namensfeld kurz etwas aufblinken sehen, danach steht allerdings wieder "Tabelle1" drin. Mache das nun auch für B2:B3 (=Tabelle2) und setze da den Namen "Fleischwaren" sowie für C2:C4 (=Tabelle3) und definiere da "Obst". Rufe nun erneut Deinen Namensmanager auf (Menüpunkt "Formeln" → "Namensmanager"). Dort siehst Du die Resultate entsprechend - beachte auch die Spalte "Bezieht sich auf", die auf die jeweilige Tabelle referenziert:

NamensmanagerTabellenReferenzen

Navigiere nun auf Dein effektives Formular. Wähle die Hauptkategorie (Essen) und versuche nun, Deine Unterkategorie (Drop-Down-Einstellung: =INDIREKT(B5) -- wobei B5 dem Feld mit Fleischwaren/Obst entspricht) kann nun korrekt aufgerufen werden:

FormularDynamischeDropDownUnterkategorie

Zuletzt kannst Du prüfen, ob Deine Listen auf dem Blatt "Parameter" tatsächlich dynamisch sind. Gib einfach einen neuen Begriff unterhalb ein, beispielsweise "Schweinefleisch" als zusätzliche Fleischware. Die Tabelle erweitert sich automatisch (Du siehst dies auch farblich) - und auf der Drop-Down-Liste im Formular kannst Du die neue Option ebenfalls gleich selektieren.

Dropdown- einer Dropdown-Liste erstellen (abhängige Dropdown)

Über normale Dropdown-Listen haben wir bereits in diesem Beitrag gesprochen. Nun gehen wir einen Schritt weiter: Anhand des ersten selektierten Kriteriums soll eine zweite, abhängige Dropdown-Liste verfügbar sein. Konkret: Wählen wir "Essen" aus, sollen beispielsweise "Ravioli" und "Pizza" zur Auswahl stehen - bei "Trinken" soll "Coca Cola" und "Rotwein" aufgeführt werden.

Als erstes erstellen wir eine ganz normale Dropdown-Liste (wie im oben verlinkten Beitrag erklärt) mit der Auswahl "Essen" und "Trinken". Benennen wir diesen Bereich "Typ", um später in der "Datenüberprüfung" diesen Namen als Liste aufrufen zu können:

D1Typ

Als nächstes definieren wir die nächsten Namen: "Essen" und "Trinken". Dies sind unsere jeweiligen Auswahlkriterien:

D2EssenTrinken

Beachte, dass ich lediglich den Bereich "C3:C6" auswähle und der Name ("Essen" oder "Trinken") exakt mit dem jeweiligen Auswahlkriterium der Liste "Typ" übereinstimmen muss! Nun ist sämtliche Vorarbeit geleistet - gehen wir weiter zu den effektiven Dropdown-Listen: Sobald Du eine beliebigen Zelle selektiert hast, gehe auf "Daten" → "Datenüberprüfung" und selektiere in der Auswahl "Liste" und gebe unterhalb "=Typ" ein:

D1Liste

Jetzt wirst Du in Deiner Zeile entweder "Essen" oder "Trinken" auswählen können. Möchtest Du nun nebenan die abhängige Dropdown-Liste erstellen, selektierst Du diese eine Zelle und gehst wiederum auf "Daten" → "Datenüberprüfung". Auch hier selektierst Du "Liste", gibst aber bei "Quelle:" eine Formel ein, welche sich auf Deine erste Dropdown-Liste bezieht. Die Formel heisst "=INDIREKT":

D2Liste

Beachte zudem, dass wir keinen Bezug absolut ($) gesetzt haben - folglich kannst Du die Zelle im Anschluss einfach kopieren und wirst immer den relativen Bezug zu der Ausgangs-Dropdown bewahren.

Weitere Anwendungsmöglichkeiten dieser abhängigen Dropdown-Listen sind beispielsweise Anmeldungen zu einem gewissen Datum, wo mehrere Zeiten zur Verfügung stehen (von 10:00 - 11:00 oder 14:00 - 15:00) sowie verschiedene Produkte in mehreren Ausführungen (Schuh X; Grösse 44 oder 45).

Formularfelder und Inhalte vordefinieren

Wer Formulare erstellt, der hat mindestens eine vage Vorstellung, in welcher Form die einzelnen Felder ausgefüllt werden sollen. Somit macht es Sinn, Formularfelder und deren Inhalte vorzudefinieren. Eine Möglichkeit sind Dropdown-Listen, welche wir in diesem Beitrag behandelt haben. Man kann also die Möglichkeit "Frau"/"Mann" mittels Auswahlliste vorgeben. Folglich wird niemand "Fr."/"Herr" oder dergleichen hineinschreiben können.

Gleich wie bei der Erstellung der Dropdown-Liste gehst Du via dem Menüpunkt "Daten" auf "Datenüberprüfung". In den Einstellungen definierst Du, welche Werte überhaupt gestattet sind – standardmässig ist jeder Wert erlaubt:

Datenueberpruefung

Das heisst, dass wir zu Beginn in jeder Zelle einen beliebigen Text, eine beliebige Zahl oder Formel schreiben können – nichts hindert uns daran. In einem Formular sollen die Eingabemöglichkeiten so weit als möglich eingeschränkt werden. Dies kann geschehen, indem man konkret eine ganze Zahl, ein Datum oder eine spezifische Textlänge verlangt. Bei einem Datum kann man zudem ein Start- und Enddatum festlegen, um die Eingabe weiter einzuschränken. Damit auch mögliche Vertipper, Zahlendreher etc. eher vermieden werden können, kann beispielsweise auch die Formel "=HEUTE()" als Enddatum hilfreich sein:

DatenueberpruefungDatum

Eine Postleitzahl beispielsweise kann man mittels Ganzzahl zwischen 1'000 und 9'999 eingrenzen:

DatenueberpruefungGanzeZahl

Ähnlich wie die Eingrenzung von Daten funktioniert auch die Textlänge. Eine Telefonnummer kann man beispielsweise darüber steuern, indem man im Minimum und auch im Maximum 10 Zeichen verlangt. Die Nummer 0791234567 kann mittels Apostroph (') erfasst werden. Solche Besonderheiten sind für den Benutzer oder die Benutzerin nicht immer sofort klar und verständlich – damit man sicher versteht, wie die Informationen genau einzutragen sind, sollte man möglichst behilflich sein. In der Datenüberprüfung findet man nämlich weitere Register ("Eingabemeldung" sowie "Fehlermeldung") – diese Zusatzangaben steigern die Benutzerfreundlichkeit enorm! Als Beispiel für ein Datum kann man "Bitte geben Sie hier ein Datum im Format 01.01.2016 ein" (oder TT.MM.JJJJ) als Eingabemeldung hinterlegen. Sobald man nun auf das entsprechende Feld geht, erscheint eine Art Kommentar:

EingabemeldungDatum

Wer sich nicht an das entsprechende Format hält, der wird eine Fehlermeldung erhalten. Die Standardmeldung ist nicht unbedingt ansprechend, deshalb empfehle ich, die Fehlermeldung präzise zu formulieren und möglichst mit einem Beispiel zu versehen.

FehlermeldungDatum

Mit diesen entscheidenden Details können Formulare und deren Inhalte gelenkt werden, was wiederum bei der Weiterverarbeitung enorm an Aufwand einspart und insgesamt die Qualität steigert.

Eine weitere Möglichkeit, Deine Formulare und Vorlagen zu optimieren, ist das komplette Ausblenden von Tabellenblatt-Leiste und Bildlaufleiste (Scroll Bar). Alles zu diesen Optionen findest Du in diesem Beitrag.