Dynamische Drop-Down-Listen (Teil 1) 107

Wie sich eine Drop-Down-Liste automatisch einer veränderten Umgebung anpasst.
 

Im Artikel “Eingabemöglichkeiten einschränken” habe ich ja schon beschrieben, wie man eigene Drop-Down-Listen in Excel erstellt, um die Eingaben auf gültige Werte zu beschränken.

Im heutigen Artikel möchte ich noch einen Schritt weitergehen und die Drop-Down-Listen dynamisch gestalten. Und zwar dergestalt, dass die Eingabemöglichkeiten in einer Drop-Down-Liste vom zuvor gewählten Eintrag einer anderen Drop-Down-Liste abhängig sind.

Mein Beispiel ist wie immer sehr einfach gehalten: In meiner Tabelle wähle ich aus einer Drop-Down-Liste einen Automobilhersteller aus. Abhängig vom gewählten Hersteller möchte ich in der zweiten Liste nur noch Automodelle dieses Herstellers angeboten bekommen.

Und so geht’s:

Erste Drop-Down-Liste (statisch)

Meine Beispieltabelle sieht folgendermaßen aus:

Beispieltabelle: Hersteller und Modelle

Beispieltabelle: Hersteller und Modelle

Zunächst erstellen wir für die Herstellerauswahl in Spalte A eine normale statische Drop-Down-Liste. Da dies schon mal ausführlich besprochen wurde, gibt es hier nur noch einen zusammenfassenden Screenshot:

Datenüberprüfung festlegen

Datenüberprüfung festlegen

Damit haben wir also für die Eingabe in Spalte A unsere erste (statische) Drop-Down-Liste mit den Herstellern definiert.

Zweite Drop-Down-Liste (dynamisch)

Damit wir später maximale Flexibilität haben, definieren wir zunächst die einzelnen Herstellermodelle jeweils als eine separate Tabelle. Beginnen wir also mit dem ersten Hersteller “Audi”:

  1. Menü “Einfügen – Tabelle” auswählen
  2. Zellenbereich F1:F6 markieren
  3. Option “Tabelle hat Überschriften” anklicken
Erste Tabelle einfügen

Erste Tabelle einfügen

Wie man sieht, wird die Spalte mit den Modellen jetzt als Tabelle formatiert und hat (noch) einen automatisch vergebenen Namen, hier: “Tabelle1”:

Erste Tabelle wurde erstellt

Erste Tabelle wurde erstellt

Diesen Namen müssen wir nun mit dem Namen des Herstellers ersetzen, und zwar in der exakt gleichen Schreibweise, wie er in der Spaltenüberschrift erscheint:

Tabellennamen ändern

Tabellennamen ändern

Anschließend verfahren wir nach dem gleichen Muster mit den anderen Herstellern: Für den Bereich G1:G7 legen wir eine Tabelle mit dem Namen “BMW” an, für H1:H6 “Mercedes” und so weiter. Zum Schluß haben wir also vier mit eigenen Namen versehene Tabellen:

Die vier definierten Tabellen

Die vier definierten Tabellen

Und nun kommt unsere dynamische Drop-Down-Liste. Markieren wir zunächst den Eingabebereich in Spalte B und rufen dann wieder das Menü “Daten – Datenüberprüfung auf”:

Dynamische Datenüberprüfung

Dynamische Datenüberprüfung

Unter “Zulassen” wählen wir wieder “Liste”. Als Quelle geben wir jedoch jetzt die folgende Formel ein:
=INDIREKT(A2)

Wichtig: A2 muss als relativer Bezug angegeben werden, also ohne irgendwelche $-Zeichen!

Die nachfolgende Meldung erscheint nur, da wir noch keinen Wert in der Spalte A stehen haben. Wir können sie also getrost mit “Ja” bestätigen:

Fehler kann ignoriert werden

Fehler kann ignoriert werden

Was macht nun die eingegebene Formel?
Ganz allgemein gesprochen kann ich mit der INDIREKT-Funktion den Inhalt der Zelle ausgeben, auf deren Adresse ich in einer anderen Zelle verweise. Ich hoffe, folgendes Beispiel macht es etwas deutlicher:
In Zelle B1 steht die INDIREKT-Formel, die auf die Zelle A1 verweist. Und in A1 steht der Text “C5”. Die INDIREKT-Funktion interpretiert diesen Text nun als Zelladresse und gibt deshalb den Inhalt von Zelle C5 aus:

So funktioniert INDIREKT()

So funktioniert INDIREKT()

Anstelle einer Zelladresse kann man auch einen definierten Namen angeben. Und das ist genau, was wir in unserer Drop-Down-Liste machen: =INDIREKT(A2)

Wenn ich also in Zelle A2 den Hersteller “BMW” auswähle, dann entspricht das gleichzeitig auch dem Tabellennamen, den wir zuvor für die einzelnen BMW-Modelle definiert haben.

Hersteller = Tabellenname

Hersteller = Tabellenname

Und damit liefert mir die INDIREKT()-Funktion in der Zelle B2 nur noch die Liste der Werte, die sich an der angegeben Adresse befinden:

Dynamische Drop-Down-Liste

Dynamische Drop-Down-Liste

Wähle ich nun in der nächsten Zeile einen anderen Hersteller, so werden wieder nur die passsenden Modelle angeboten:

Anderer Hersteller - andere Modelle

Anderer Hersteller – andere Modelle

Wie gesagt: Der Trick liegt daran, dass der Name der einzelnen Tabellen jeweils genau dem Hersteller entspricht.

Zusatz-Bonus:
Dass wir die Modell-Listen als Tabellen definiert haben, bringt einen weiteren Vorteil mit sich: Wenn wir später an das Ende einer Tabelle weitere Elemente hinzufügen, so werden diese automatisch auch in der Drop-Down-Liste angezeigt. Denn auch die Tabelle erweitert sich dynamisch, wie man am folgenden Beispiel sieht:

Nachträglich ergänzte Werte

Nachträglich ergänzte Werte

In einem späteren Artikel werde ich nochmal auf dynamische Drop-Down-Listen zurückkommen und weitere Anwendungsmöglichkeiten zeigen.

Das könnte dich auch interessieren:

Und immer daran denken: Excel beißt nicht!

P.S. Die Lösung ist immer einfach. Man muss sie nur finden.
(Alexander Solschenizyn)

P.P.S. Das Problem sitzt meistens vor dem Computer.



Kommentar erstellen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

107 Gedanken zu “Dynamische Drop-Down-Listen (Teil 1)

  • Alexander

    Hallo,

    wirklich tolle Lösung. Dachte schon ich müßte sowas mit Makros lösen, weil die Formeln im Gürltigkeitsbereich ansonsten zu riesig werden.
    Eine Frage hierzu habe ich aber noch.

    Angenommen ich wähle nun den Audi aus und nehme das Model A1.
    Später entscheide ich mich dann doch für einen Volkswagen.
    Nun steht in der Tabelle der Volkswagen Model A1.

    Da dies keinen Sinn macht will ich das natürlich nicht.

    Gibt es eine Möglichkeit, das der Wert im Modell nun wieder auf einen leeren Wert zurückgesetzt wird.

    Ein leerer Wert fällt ins Auge. Ein falscher leider nicht immer.

    Danke.
    Gruß
    Alex

    • Timo Kratzer

      Hallo,
      habe da auch ne gute Möglichkeit dafür gefunden dass das Model gelöscht wird wenn bei Hersteller was verändert wird.

      Dazu an die Tabelle folgenden code anhängen.

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Application.Intersect(Target, Range(“A1”)) _
      Is Nothing Then Range(“F1”) = “”

      End Sub

      Gruss Timo

      • Timo Kratzer

        kleiner fehler eingeschlichen 😉

        muss so natürlich so heissen

        Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Application.Intersect(Target, Range(“A1”)) _
        Is Nothing Then Range(“B1”) = “”

        End Sub

        Gruss Timo

        • Martin Weiß Beitragsautor

          Hallo Timo,

          vielen Dank für diese Lösung. VBA ist sicherlich oft eine gute Möglichkeit, so ein Problem auf elegante Art und Weise zu lösen.

          Danke für den Tipp und schöne Grüße,
          Martin

        • Walter

          Hallo Timo, hallo Martin,

          sowohl das dyn. Dropdown als auch das kleine VBA haben mir sehr geholfen. Vielen Dank dafür.

          Könnte man das VBA auch so anpassen, dass die Zelle B1 nur dann gelöscht wird, wenn der Wert ungültig ist? In meiner Anwendung kommen einige Werte in beiden Dropdowns vor, oder besser: Liste A enthält alle Werte, Liste B ist eine Teilmenge von A.

          Gruß,
          Walter

        • Philip

          Hallo Timo und Martin,

          wie kann ich diesen Code an die Tabelle anhängen?

          Ich bin in Excel nicht so fit und benötige deshalb hierfür eine ausführliche Erklärung.

          Oder geht das überhaupt nicht als Leihe?

          Gruß
          Philip

          • Martin Weiß Beitragsautor

            Hallo Philip,

            auch wenn ich hier keine ausführliche Beschreibung geben kann, soviel zumindest in Kürze: Du öffnest in Excel die Entwicklertools und gehst dort auf die Schaltfläche “Visual Basic”. Damit öffnest Du die VBA-Entwicklungsumgebung. Sofern noch kein VBA-Modul vorhanden ist (wovon ich hier ausgehe), legst Du über das Menü “Einfügen – Modul” ein neues Modul an. Dort kopierst Du dann den Code rein.

            Viel tiefer kann ich an dieser Stelle jedoch nicht einsteigen.

            Grüße,
            Martin

        • Philip

          Nochmal Hallo Timo und Martin,

          also ich habe diesen Code eingegeben, aber bei mir kommt ein Syntaxfehler.

          Private Sub Worksheet_Change(ByVal Target As Range)
          If Not Application.Intersect(Target, Range(“A1″)) _
          Is Nothing Then Range(“B1″) = “”

          End Sub

          Wisst ihr was da sein kann?

          Danke schon mal für den Tipp Martin.

          • Martin Weiß Beitragsautor

            Hallo Philip,

            ich nehme an, dass es an den Anführungszeichen liegt. Verwende doch mal die normalen doppelten Anführungszeichen, die über der Zahl 2 liegen. Ansonsten muss ich leider passen, von VBA habe ich wenig Ahnung.

            Schöne Grüße,
            Martin

        • Antje

          Hallo Timo,
          danke für den Code, habe ihn in meiner Excel Tabelle eingebunden, leider funktioniert es nicht. Meine statische Auswahlliste ist in C4 und die dynamischen in A12, allerdings ist A12 mit B12 verbunden, könnte das die Fehlerquelle sein? Ich würde den Verbund gern erhalten, habe die Zellen auch schon getrennt und nur A12 angegeben, aber nach Änderung in C 4 passiert trotzdem gar nichts, auch keine Fehlermeldung. Ich habe leider auch keinen Plan von VBA, habe ich ev. meine Zellenangaben falsch angegeben, kannst Du mir einen Tipp geben?
          Sub Kostenartlöschen()
          ‘Löscht die Kostenart nach Änderung des Titels
          Private Sub Kostenartlöschen_Change(ByVal Target As Range)
          If Not Application.Intersect(Target, Range(“C4”)) _
          Is Nothing Then Range(“A12”) = “”

          End Sub

  • Martin Weiß Beitragsautor

    Hallo Alex,

    ja, es gibt eine sehr einfache Möglichkeit: In der Registerkarte “Daten” auf den kleinen Pfeil neben der Schaltfläche “Datenüberprüfung” klicken und aus der Liste die Option “Ungültige Daten einkreisen” wählen. Und schon wird der falsche A1 hinter dem Volkswagen rot markiert.

    Nach der Korrektur dann einfach nochmal die Option “Ungültige Daten einkreisen” aufrufen, und die Kreise verschwinden wieder.

    Grüße,
    Martin

  • Marc Wampfler

    Lieber Martin
    Ganz herzlichen Dank für diese tolle und einfache Lösung.
    Genial und sehr gut dokumentiert!!!
    Vor allem die Erläuterung zur “INDIREKT” Formel… Bezug auf einen Benannten Bereich… GENIAL!!!!!
    Danke, danke und liebe Grüsse
    Marc

    • Martin Weiß Beitragsautor

      Hallo Marc,

      danke für das Lob! Das ist das Schöne an Excel: Ein klein wenig um die Ecke gedacht bringt oft die besten Lösungen…

      Liebe Grüße,
      Martin

  • Jasmin

    Hallo Martin,

    die Anleitung ist super und ich habe alles realisieren können. Jetzt möchte ich allerdings einen Schritt weitergehen und eine dritte Dropdown-Liste hinzufügen, um bspw. das jeweilige Baujahr der Modellreihe auszuwählen. Hierbei brauche ich jedoch deine Hilfe!

    Vielen Dank vorab!

  • Herbert

    Hallo Martin

    Super Anleitungen und einfach verständlich! Ich bin begeistert.

    Ich hab hierzu auch noch eine Frage: Besteht die Möglichkeit das Vom Audi und dem Golf usw. ein Bild dargestellt wird?

    (Bei mir sollte Bild, Art. Nr, Farbe und Grösse zu wählen sein…)

    Grüsse aus der Schweiz

    Herbert

  • Patrick

    Hallo,

    ich habe ein kleines Problem und bin durch google auf diese Seite gestoßen.
    Ich hoffe, dass ich hier vielleicht auf meine lösung stoße.

    Ich soll für mein Unternehmen eine Lieferantenliste im Excel bauen.
    Diese Tabelle soll dabei helfen, dass die Mitarbeiter nicht andauernd die selben Preise 2-3 mal in der Woche bei den Lieferanten anfragen.

    Die Tabelle ist soweit schon gebaut aber ich scheitere an einem Punkt.

    Ich habe zB. in Zeile A12 den ersten Lieferanten stehen.

    In Zeile B12 steht der Artikel.

    In Zeile C12 habe ich ein Drop-Down Menü eingebaut, wo man die Stückzahl auswählen kann, für den man den Preis wissen möchte.

    Ist es möglich, dass wenn ich zB. in C12 eine beliebige Stückzahl auswähle, dass in Zelle D12 der Preis für die ausgewählte Stückzahl angezeigt wird?

    Ich würde mich über Hilfe sehr freuen.

    Liebe Grüße
    Patrick

    Microsoft Office Professional Plus 2010

  • Kevin Bohl

    Hallo, das ist eine super Anleitung, habe das sofort und ohne Schwierigkeiten umsetzen können.
    Jetzt habe ich jedoch das Problem das ich nur eine Untergruppierung habe, sondern 3. Habe das mit der obigen Methode versucht, aber da dauert es Mega lange bis ich alle Tabellen von allen Gruppen erstellt habe.
    Fällt dir zufällig eine schnellere Methode ein?
    also ich habe zum Beispiel:
    Marke-Modell-Edition-Ausstattung
    Wäre top, wenn dir da was einfällt.
    Mit freundlichen Grüßen
    Kevin

    • Martin Weiß Beitragsautor

      Hallo Kevin,

      da gibt es schon Methoden dafür, aber das lässt sich nicht in zwei, drei Sätzen hier darstellen. Aber ich arbeite an einem Leitfaden für Dropdown-Listen, der alle möglichen Aspekte behandeln wird. Bis der fertig ist, dauert es allerdings noch eine Weile, daher muss ich Dich im Moment noch vertrösten.

      Grüße,
      Martin

      • Gego

        Hallo Martin,

        erst einmal ein großes Lob für deine Seite. Ich selbst habe auch schon an eine eigene Excelseite gedacht. Als Admin bekommen ich sehr oft Excelfragen und liebe es wenn es etwas kniffliger wird.
        Dann macht Excel erst richtig Spaß!

        Leider habe ich es bisher zeitlich nicht geschafft eine solche Seite aufzubauen. Deshalb “Hut ab” – du steckst hier wirklich viel Arbeit und Zeit rein.

        Aber auch als Excelfreak versuche ich verzweifelt eine einfache Variante für die variablen Dropdowns mit 3 Ebenen (Bereich, Teilbereich & Aufgabenpaket) zu erstellen.
        Lösungen habe ich schon, aber die sind definitiv nicht für den Endbenutzer. Deshalb bin ich sehr gespannt, wie du das gelöst hast. Obige Variante ist auch viel einfacher als meine mit “Bereich.Verschieben” gelöste Variante.

        Wann wird deine Lösung für die 3. Ebene denn veröffentlicht? Oder gibt es eine Möglichkeit diese schon vorher zu bekommen? 😉

        • Martin Weiß Beitragsautor

          Hallo Gego,

          danke für das Lob. Es steckt in der Tat viel Arbeit und Herzblut in diesem Blog, aber es macht auch unheimlich viel Spaß, und insbesondere dann, wenn es so positives Feedback von den Lesern gibt.

          Das Thema “Dropdown-Liste” ist ein echter Dauerbrenner und das Interesse hier ist ziemlich groß. Es wird voraussichtlich bis Ende März dauern, bis mein Leitfaden fertig sein wird. Bis dahin muss ich Dich und alle anderen Interessierten noch um etwas Geduld bitten.

          Schöne Grüße,
          Martin

  • Max

    Ich habe auch eine Frage.
    Eine Dropdownliste habe ich bereits erstellt.
    Doch nun brauche ich hilfe und zwar:
    Indem ich etwas in der Dropdown liste anklicke soll die komplette Zeile markiert werden.
    Weist du ich das hinbekomme?

    • Martin Weiß Beitragsautor

      Hallo Max,

      wenn Du mit “markieren” meinst, dass die Zeile z.B. eingefärbt werden soll: Das lässt sich ohne Probleme über eine bedingte Formatierung lösen. Wenn du mit “markieren” aber tatsächlich die Zellen (wie mit der Maus) selektieren möchtest, dann wird das nicht ohne VBA machbar sein.

      Grüße,
      Martin

    • Martin Weiß Beitragsautor

      Hallo Max,

      es ist ja hier bereits gepostet. Wenn also ein anderer Leser hier vorbeikommt und darauf antworten kann und möchte, kann er das hier tun.

      Schöne Grüße,
      Martin

  • Annette

    Hallo Martin,
    dynamische Drop-Down-Listen – das ist genau die Lösung, die ich für mein Formular gesucht habe! Toll erklärt, so dass ich als absoluter Laie damit auch etwas anfangen konnte. Vielen Dank! Dummerweise arbeiten wir in der Firma mit einer älteren Excel Version. Hier gibt es die Funktion Tabelle einfügen noch nicht. D.h. ich komme bis zum ersten Drop-Down-Feld und danach funktioniert nichts mehr. (Habe das Formular mit einer neueren Version erstellt.) Gibt es für ältere Versionen ggf. eine andere Lösung?
    Viele Grüße
    Annette

    • Martin Weiß Beitragsautor

      Hallo Annette,

      das Ganze geht auch ohne die Funktion “Tabellen einfügen”. Du kannst einfach einen Namen für den jeweiligen Bereich mit den Modellen vergeben. Also z.B. “Audi” für den Bereich F2:F6, “BMW” für G2:G7 usw.
      Die Anwendung in der Datenüberprüfung funktioniert genauso über die Indirekt-Funktion: =INDIREKT(A2).

      Der Nachteil ohne Tabellen ist lediglich, dass man die benannten Bereiche manuell anpassen muss, wenn neue Werte dazukommen.

      Schöne Grüße,
      Martin

  • Walter

    Hallo Martin,

    wie kann ich im abhängigen Dropdown sofort einen gültigen Eintrag wählen?
    Denn nach dem Ändern des ersten Feldes (hier: Hersteller) bleibt im zweiten Feld (Modelle) der zuletzt gewählte Eintrag (also ggf. ein Modell, dass nicht zum Hersteller passt) stehen.

    Danke für die Hilfe und beste Grüße

    Walter

    • Martin Weiß Beitragsautor

      Hallo Walter,

      ja, dieses Problem ist bekannt. Ohne VBA gibt es nur die Möglichkeit, den vorhandenen (und damit falschen) Eintrag über bedingte Formatierung farblich hervorzuheben. Ein automatisches Entfernen ist wie gesagt ohne VBA nicht möglich.

      Dieses Thema wir übrigens auch in meinem demnächst hier auf dem Blog erscheinenden Dropdown-Leitfaden behandelt (kommt voraussichtlich Ende März).

      Grüße,
      Martin

  • Thomas

    Hallo,
    ich verwende Excel 2003…
    Wie funktioniert dort das “Erstellen der Tabelle”.
    Also das was im ersten Abschnitt von “Drop-Down dynamisch” passiert.

    Ich google mir gerade die Finger wund, allerdings finde ich da keine wirklich Anleitung!

    Danke für die Hilfe.
    Grüße
    Thomas

    • Martin Weiß Beitragsautor

      Hallo Thomas,

      Deine Suche hat hier (leider) ein Ende: formatierte Tabellen gibt es erst seit Excel 2007.

      Schöne Grüße,
      Martin

      • Thomas

        Ich habs mir mittlerweile schon gedacht, aber ich hab es jetzt trotzdem hinbekommen.
        Also die Abhängigkeiten zwischen zwei “Drop-Downs”.

        Nur eben nicht so schön.

        Jetzt muss ich noch rausfinden, wie ich die Summe ermitteln kann von allen Einträgen die “Lebensmittel” sind! (Ich erstell mir gerade ein haushaltsbuch)
        Kannst du mir da nen Hinweis geben, welche Funktion ich da verwenden muss???

        Danke dir & bitte weiter diese Seite füllen!
        Sind für mich als Excel-Einsteiger, wirklich gute Tipps drauf!

          • Martin Weiß Beitragsautor

            Hallo Thomas,

            freut mich, dass Du hier noch fündig geworden bist. SUMMENPRODUKT ist extrem vielseitig; ansonsten hätte ich noch SUMMEWENN bzw. SUMMEWENNS im Angebot gehabt (wobei ich mir nicht sicher bin, ob letztere unter Excel 2003 schon verfügbar war).

            Schöne Grüße,
            Martin

  • Hans

    Super Tipps hier aber mich würde noch interessieren wie man es mancht wenn man mehrere Zellen auf den Hersteller bezieht jedoch mit unterschiedlicher Auswahl, z.B. wenn BMW gewählt wird dann in einer Zelle die Auswahl der Modellreihe und in einer zweiten Zelle die Auswahl der Werkstatt oder ähnlich.

    • Martin Weiß Beitragsautor

      Hallo Hans,

      das ist mit ein paar Worten hier leider nicht erklärt. Ganz grob gesagt müsstest Du mehrere Quellbereiche anlegen, auf die dann in den Dropdown-Listen verwiesen wird. Um bei Deinem Beispiel zu bleiben: Wenn in Spalte A “BMW” ausgewählt wird, dann verweist die Datenüberprüfung in Spalte B für das Modell auf den einen Quellbereich und die Datenüberprüfung in Spalte C für die Werkstatt auf einen zweiten Quellbereich. Hier wären dann nur die Werkstätten von BMW hinterlegt.

      Vielleicht werde ich dazu nochmal einen eigenen Artikel schreiben, denn das Thema Dropdown-Listen ist hier ein Dauerbrenner.

      Schöne Grüße,
      Martin

  • Rebekka

    Hallo,

    erst einmal ein großes Lob für diesen Blog und die Mühe, die du dir hier machst inkl. Beantwortung von Fragen. Das ist wirklich sehr selten!

    Eine tolle Anleitung, die ich wirklich leicht 1:1 umsetzen konnte.
    Allerdings aktualisiert sich bei mir die Tabelle nicht automatisch, wenn ich einen neuen Eintrag hinzufüge. Obwohl ich es als Tabelle definiert habe. Im Menüpunkt Datenüberprüfung bleibt als Quelle immer der alte Wertebereich stehen.
    Auch, wenn ich versuche, den Tabellennamen anstatt des Wertebereichs einzugeben, passiert nichts. Habe ich irgendetwas übersehen?

    Viele Grüße
    Rebekka

    • Martin Weiß Beitragsautor

      Hallo Rebekka,

      vielen Dank für das Lob!
      Hast Du in der Datenprüfung mit der INDIREKT-Funktion gearbeitet? Denn mit einem fest eingegebenen Wertebereich bekommst Du keine Dynamik. Und ein Tabellenname lässt sich direkt nicht in der Datenprüfung verwenden.

      Also entweder die INDIREKT-Funktion einsetzen (wie oben beschrieben) oder Du vergibst zusätzlich einen weiteren Namen für die Werte in der Tabelle (also zusätzlich zum ohnehin schon vorhandenen Tabellennamen). Und diesen Namen verwendest Du dann in der Datenprüfung. Dann sollte es eigentlich funktionieren…

      Grüße,
      Martin

  • Rebekka

    Hallo Martin,

    das war es. Vielen Dank!
    Mir war aus dem Text heraus nicht klar, dass ich zusätzlich zu dem vorhandenen Tabellennamen noch einen weiteren Namen anlegen muss.
    Jetzt klappt alles 🙂

    Gruß
    Rebekka

  • Basti

    Hallo Leute 🙂

    erstmal vielen vielen Dank für diese super Anleitung!

    Nun habe ich leider ein Problem:

    Wie oben beschrieben möchte ich auch dass mein Zelleninhalt bei der Änderung gelöscht wird.

    If Not Application.Intersect(Target, Range(“D3”)) _
    Is Nothing Then Range(“E3”) = “”

    habe ich verwendet und funktioniert einmandfrei.

    Wenn ich diese Funktion jedoch auf alle meine Dropdownlisten haben möchte muss ich das alle Zellen in VBA schreiben? oder gibt es da eine möglichkeit das i-wie zu verallgemeinern?

    gemeint ist quasi:

    If Not Application.Intersect(Target, Range(“D3”)) _
    Is Nothing Then Range(“E3”) = “”

    If Not Application.Intersect(Target, Range(“D4”)) _
    Is Nothing Then Range(“E4”) = “”

    If Not Application.Intersect(Target, Range(“D5”)) _
    Is Nothing Then Range(“E5”) = “”

    Das würde ja kein Ende nehmen…

  • Lars Huwe

    Hallo Martin,

    ich hätte zum Bereich Dropdown Menü zwei Fragen. Am Besten benutze ich hierfür als Beispiel PLZ.
    Wie kann ich in einer Dropdown Liste einer übergeordneten Begriff einfügen; also im Falle der PLZ 50, 51, 52 etc., so dass ich nicht jedes Mal gezwungen bin, alle PLZ des Bereichs 50…. anzuklicken.
    In meiner Excelliste sind die PLZ nicht von 01 bis 99 sortiert, sondern ab einer Stelle sind Sie kreuz und quer. Spalte mit PLZ markiert, Befehl Zellen formatieren gewählt, benutzerdefiniert und dann im Feld fünf 00000 eingetragen. Tja, diese Lösung klappt aber nicht, denn gehe ich dann auf von A bis Z sortieren bleibt das oben genannte Problem weiterhin bestehen.

    • Martin Weiß Beitragsautor

      Hallo Lars,

      sprichst Du jetzt von einer selbst erstellten Dropdown-Liste oder von der normalen Filter-Funktion? In der Filterfunktion gibt es die Möglichkeit, Zahlen- oder Textfilter zu verwenden, abhängig vom jeweiligen Feld. Hier kann man dann z.B. Bereiche angeben oder Kriterien wie “Beginnt mit”, “Größer als” etc.
      Wenn Du jedoch selbst erstellte Dropdown-Listen meinst, geht das nicht. Hier müsstest Du z.B. über eine Hilfsspalte eine gekürzte PLZ zur regulären PLZ erstellen und darauf filtern.

      Nun zur Sortierung:
      Ich vermute mal, dass es sich trotz benutzerdefiniertem Format tatsächlich um Texteinträge handelt. Und damit greift die normale alphanumerische Sortierung. Allerdings erkennt Excel normalerweise, wenn Zahlen als Text formatiert sind und frägt dann beim Sortieren nach (“Alles was wie eine Zahl aussieht, als Zahl sortieren” oder “Zahlen und als Text formatierte Zahlen getrennt sortieren”).

      Sollte das nicht funktionieren, empfehle ich, die PLZ mit der WERT-Funktion erst in echte Zahlen umzuwandeln und dann nochmal die benutzerdefinierte Formatierung (“00000”) anzuwenden. Es gibt übrigens auch PLZ als eigenes Format, zu finden in der Kategorie “Sonderformat”.

      Grüße,
      Martin

  • Tim

    Hallo,

    Ich habe dazu ein kleines Problem. Habe soweit die erste Dropdownliste erstellt und möchte nun die dynamische erstellen. Wenn ich allerdings =INDIREKT dort eingebe und die erste dropdownliste auswähle, macht er automatisch die $-Zeichen dazwischen und gibt mir anschließend die Fehlermeldung raus. auch wenn ich das per Hand eingebe ohne $-Zeichen, zeigt der mir keine Werte an und gibt eine Fehlermeldung raus. Was mache ich falsch? ich habe es heute einmal hinbekommen, wie auch immer. danach nicht mehr.

    Gruß
    Tim

    • Martin Weiß Beitragsautor

      Hallo Tim,

      die Fehlermeldung kommt üblicherweise bei der Eingabe immer dann, wenn im ersten Dropdown-Feld noch kein Wert ausgewählt wurde. Diesen Fehler kann man aber getrost bestätigen. Sobald Du in der ersten Liste etwas eingibst, sollten in der zweiten Liste auch die passenden Werte angezeigt werden.

      Grüße,
      Martin

  • Bernd

    Hallo zusammen!

    Super Seite, habe die Lösung für mein Formular!

    Ich würde gerne allerdings die auserwählten Textpasssagen, in diesem Bsp. die Modelle nach Häufigkeit bewerten und diese in einem Diagramm erfassen. Möchte die “Modelle” gerne mit einem Prozentwert erfassen.

    Hat mir vielleicht jemand einen Denkanstoß, bzw. eine idee, wie die auserwählten “Modelle” per Dropdown erfasst werden können, dass ich einen Summenwert erhalte und dies so abgrenzen kann?

    Vielen Dank vorab! 🙂
    Mit freundlichen Grüssen

    • Martin Weiß Beitragsautor

      Hallo Bernd,

      um ein Diagramm zu erstellen, würde ich einen separaten Tabellenbereich anlegen, der genau die für das Diagramm benötigten Elemente enthält. Also z.B. Modellname und Häufigkeit. Die Häufigkeit kannst Du ja dynamisch mit der ZÄHLENWENN-Funktion berechnen lassen. Wenn also die Modelle wie in meinem Beispiel in Spalte B eingegeben werden, dann lautet die Formel für die Anzahl der 1er-Reihe:
      =ZÄHLENENN(B2:B20;”1er-Reihe”)

      Und aus dieser separaten Tabelle erstellst Du dann das Diagramm.

      Schöne Grüße,
      Martin

  • Georg F.

    Hallo.

    Hat im Ersten Moment SUPER geklappt dank der übersichtlichen Anweisung und Erklärung.

    Ich habe damit eine Haushaltsbuch mit mehreren Währungen erstellt.

    Nur bei Nachbesserungen muß man wirklich aufpassen, dass die Bereichsnamen richtig sind, (gegebenenfalls die Spalte löschen und neu aufbauen) sonst bekommt man auf einmal leere dynamische Felder.
    Beim Einfügen einer zusätzlichen Spalte ist auf einmal die Tabelle über 2 Spalten gegangen.

    Nochmals DANKE für die perfekt Anleitung

    LG Georg

  • Gernot

    Hallo,
    sehr gute Beschreibung. Nun habe ich noch eine Frage,
    ist es möglich in meine erste Dropdown Liste eine Zweite zu integrieren. Sprich, ich wähle zB Hersteller BMW, und habe innerhalb der Dropdown Liste die Möglichkeit zusätzlich das Modell/ die Modelle durch Häkchen auszuwählen. Also ohne die Extra Tabelle in der eigentlichen Matrix.

    Vielen Dank im Voraus!

    • Martin Weiß Beitragsautor

      Hallo Gernot,

      eine Dropdown-Liste innerhalb einer Dropdown-Liste ist leider nicht möglich. Du kannst Dir nur behelfen, indem Du auch die Unterwerte (also z.B. die Modelle) in der Hauptliste unterhalb der Hersteller auflistest und z.B. durch Einrückung optisch hervorhebst. Mehr geht leider nicht.

      Schöne Grüße,
      Martin

  • Antje

    Hallo Martin, danke für den Beitrag und ein dickes Lob, funktioniert wunderbar. Allerdings habe ich das Problem, dass meine dynamischen Auswahllisten eine Zahlenkombination (Haushaltstitel) als Überschrift haben und Tabellenüberschriften nur mit einem Buchstaben oder Unterstrich beginnen dürfen. Also habe ich den Unterstrich davor gesetzt. Dieser Unterstrich erscheint nun allerdings in der ersten statischen Auswahlliste und sieht unschön aus. Hast Du einen Tipp, wie ich das lösen kann?

    • Martin Weiß Beitragsautor

      Hallo Antje,

      die Beschränkungen bei Feldnamen von formatierten Tabellen sind leider eine der “Kröten”, die man in diesem Zusammenhang schlucken muss. Hier habe ich leider keinen Tipp, wie das umgangen werden könnte.

      Schöne Grüße,
      Martin

      • Antje

        Hallo Martin, danke, sehr schade. Gibt es eine Möglichkeit, die Dynamik ohne definierte Tabellen hinzukriegen? Ich habe schon versucht, den ganzen Block als Quelle anzugeben oder die einzelnen Bereiche ohne Tabellenfunktion, funktioniert leider nicht. Kann ich die Spalten irgendwie ohne Tabellenfunktion als Quelle für “Indirekt” angeben???

  • Lutz

    Hallo Zusammen,
    vielen Dank an den Autor für diese tolle Zusammenfassung. Das war genau das was ich gesucht habe.

    Folgende Frage, nicht zwingend an den Autor:
    Kann man die Datenüberprüfung/Ungültige Daten Einkreisen eventuell per Makro ausführen?

    Ich habe ein Formular. Dank diesem Tutorial pflege ich die Daten “Dynamische Dropdownlisten” und speicher dieses anschließend per Makro fortlaufend in einer riesigen Excel Tabelle. (das klappt alles)

    Damit es später auch mal andere nutzen können:
    Möchte ich jetzt aber gerne das es vor dem speichern einen Button gibt – Daten überprüfen und dann alles eingekreist wird.
    Und speichern zukünftig erst möglich ist, wenn alle Daten gefüllt sind.

    Ich hoffe mal das war verständlich.
    Vielen Dank nochmals an den Autor und vielleicht kann ja hier einer helfen. 🙂

    • Martin Weiß Beitragsautor

      Hallo Lutz,

      vielen Dank für das schöne Feedback!
      Da ich hier ja grundsätzlich keine VBA-Tipps gebe, belasse ich es bei folgendem Hinweis: Einfach mal den Makro-Rekorder in den Entwicklertools mitlaufen lassen und dann die Funktion “Ungültige Daten einkreisen” aufrufen. Das wäre zumindest ein Anfang 🙂

      Schöne Grüße,
      Martin

  • Tobias Herold

    Hallo !
    Dieser Tip ist Klasse, ich habe nur ein Problem (vermutlich eher Excel-bedingt): eine meiner Tabellen würde ich gerne mit “BS01” benennen, dies lässt Excel jedoch nicht zu.
    Zwei der Gründe, die in der Fehlermeldung angegeben werden, kann ich ausschließen (Name muss mit einem Buchstaben beginnen & enthält ungültige Zeichen). Ein anderes Objekt habe ich auch nicht so benannt. Bleibt nur ein “internes Objekt”.
    Bitte um einen Hinweis / eine Erklärung.
    Danke !
    Tobias

    • Martin Weiß Beitragsautor

      Hallo Tobias,

      der Grund ist, dass BS01 eine Zelladresse (Spalte BS, Zeile 1) ist und somit nicht als Feld- oder Tabellenname verwendet werden kann. Du kannst so etwas leicht ausprobieren, indem Du die F5-Taste drückst (“Gehe zu”) und in das Feld BS01 eingibst. Dann springst Du direkt dorthin.

      Schöne Grüße,
      Martin

      • Chris K

        Hallo.

        super Anleitung. Danke für die ausführliche Beschreibung!!!

        Allerdings habe ich folgendes Problem: Der Name der Tabelle bzw. der Name des Bereichs muss laut der Anleitung mit den Werten der ersten statischen Liste (im Beispiel Audi, etc.) übereinstimmen.
        Was mache ich, wenn diese Liste Zahlen, Sonder- und Leerzeichen enthält. Da erhalte ich aktuell einen Fehler, dass dies nicht funktioniert.
        Gibt es hierzu Alternativen?

        Viele Grüße
        Chris

        • Martin Weiß Beitragsautor

          Hallo Chris,

          ja, da gibt es verschiedene Ansätze, die allerdings den Rahmen hier sprengen würden. Ich würde dazu mein E-Book “Dropdown-Listen in Excel” empfehlen, in dem unter anderem auch für solche Fälle Lösungen detailliert beschrieben werden.

          Die Investition ist überschaubar und vielleicht wäre das ja etwas für dich?

          Schöne Grüße,
          Martin

  • Claudia

    Lieben Dank! Hat bei mir super funktioniert.

    Eine Frage habe ich noch, kann man in der Drop-Down-Liste auch noch ein freies Feld einfügen. Wenn mein Modell nicht in der Liste, dass ich dann ein zusätzliches eintragen kann ohne diese in die Datenliste einzufügen?

    Viele Grüße

    Claudia

    • Martin Weiß Beitragsautor

      Hallo Claudia,

      nein, wenn man als Liste einen Zellenbereich definiert hat, kann man keine zusätzlichen Werte eintragen. Neue Werte müssen in die Datenliste aufgenommen werden. Ansonsten macht eine Dropdown-Liste ja auch wenig Sinn.

      Grüße,
      Martin

  • Rebecca

    Hallo Martin,
    vielen Dank für die super Beschreibung! Nach langem Suchen hat mir das wirklich das Leben sehr erleichtert!
    Ich habe noch ein Problem, für das ich leider bisher keine Lösung finden konnte: In der zweiten Spalte (Modell), deren Werte von der ersten (Hersteller) abhängen, gibt es bei mir genau einen Fall, in dem anstatt einer weiteren Dropdown-Liste alle Werte möglich sein sollen, also Freitext eingegeben wird. Kann ich das irgendwie einbauen?
    Viele Grüße,
    Rebecca

    • Martin Weiß Beitragsautor

      Hallo Rebecca,

      ich fürchte, dafür gibt es auch keine Lösung: Entweder Dropdown-Liste oder freie Eingabe. Beides zusammen funktioniert leider nicht.

      Grüße,
      Martin

  • Bjoern

    Hallo,

    ich möchte in deinem Beispiel einen weiteren Hersteller, z.B “Ferrari”, hinzufügen, Leider wird der zusätzliche Eintrag nicht mit in die Drop-Downliste übernommen, das bedeutet, die Tabellenheader werden nicht dynamisch in der Drop-Down erweitert (Der Hersteller “Ferrari” ist als Tabelle gesetzt)

    Gibt es eine Möglichkeit, dies umzusetzen? Ich muss eine ähnliche Aufgabe machen und leider wird nur zeilenweise angepasst und nicht spaltenweise.

    Viele Grüße Björn

    • Martin Weiß Beitragsautor

      Hallo Björn,

      das lässt sich ganz einfach umsetzen, indem Du für die Tabellenheader einen eigenen Namen definierst: Nur die Tabellenköpfe markieren, dann Menü “Formeln – Namen festlegen”. Diesen Namen dann als Verweis in der Definition der Dropdownliste verwenden. Wenn jetzt eine neue Tabellenspalte dazukommt, wird diese in der Dropdownliste erscheinen.

      Grüße,
      Martin

  • Erik Täschner

    Hallo,

    ich habe da ein kleines Problem. Für die zweite Drop Down Liste habe ich einen dynamischen Bereich definiert. Damit funktioniert aber die Indirekt Funktion nicht mehr. Sobald ich einen Statischen Bereichsnamen vergebe funktioniert alles so wie es soll. Woran könnte das liegen bzw. gibt es einen anderen Lösungsweg für den dynamischen Bereich?

    Danke und Grüße
    Erik

    • Martin Weiß Beitragsautor

      Hallo Erik,

      warum das nicht geht, lässt sich hier nicht pauschal beantworten. Grundsätzlich spielt es aber keine Rolle, ob der Bereich für die zweite Dropdown-Liste statisch oder dynamisch definiert ist (also z.B. mit BEREICH.VERSCHIEBEN). Wichtig ist lediglich, dass ein fester Name dafür vergeben wird.

      Grüße,
      Martin

  • SKatETCC

    Als erstes mal vielen Dank für diesen Beitrag und Deine Webseite im allgemeinen!

    Das hat mir schon echt weitergeholfen.

    Allerdings hätte ich noch ein “Spezialproblem”, welches ich gerne mit den dynamischen Drop-Down-Listen verbinden würde.

    Ich versuche das mal an einem Beispiel zu erklären:

    In Spalte “A” stehen die Fahrzeughersteller. Jeder Hersteller baut unterschiedliche Serien, welche in Spalte “B” stehen. Also können die Fahrzeughersteller in “A” mehrfach vorkommen. In Spalte “C” stehen die Ausführungen der Serien (z.B. Kombi, Limousine, Cabrio usw.). Jedes einzelne Fahrzeug kann in mehreren Ausführungen vorhanden sein (z.B. BMW 3er Cabrio & 3er Limousine), also kann auch die Serie Spalte “B” mehrfach vorkommen. usw. usw. Bis ich am Ende eine Spalte habe, die die Artikelnummern enthält, welche dann eindeutig sind.

    Am Ende möchte ich mit den dynamischen Drop-Down-Listen so lange auswählen, bis ich einen eindeutigen Artikel ausfindig gemacht habe.

    Das Problem dabei ist, dass ich in den jeweiligen Drop-Down-Listen keine doppelten Werte angezeigt bekommen möchte und in den darauf folgenden Drop-Down-Listen immer nur die Werte stehen, die zur vorherigen Auswahl passen. Also wähle ich als erstes “BMW” aus. In der zweiten Spalte werden dann nur die (ohne Dopplungen) Modelle von BMW angezeigt. Dort wähle ich z.B. die “3er”-Serie und bekomme in dem nächsten Drop-Down nur noch die Liste der Ausführungen des “3er”-BMW angezeigt. So klicke ich mich dann durch, bis ich am Ende den BMW, 3er, Cabrio, 6-Zylinder, rot, ….., QVX173524348 erhalte.

    Bei einer Datenbank würde ich das ganze mit SQL so ähnlich lösen:

    select unique(*) from SpalteA (Also: wähle alles aus Spalte “A”, aber nur eindeutige Werte. –> damit würde ich die erste Drop-Down-Liste füllen)
    select unique(*) from SpalteB where SpalteA=Auswahl_aus_Drop-Down-1 (Also: wähle alle eindeutigen Werte aus Spalte “B”, bei denen in Spalte “A” der ausgewählte Wert steht. –> damit würde ich das Drop-Down #2 befüllen.)

    Das ließe sich dann natürlich so fortsetzen.

    Sorry für den langen Text und das ungewöhnliche Problem. Im Prinzip suche ich also einen SVERWEIS, der mehrere Werte anhand eines Kriteriums zurück gibt, was natürlich so nicht geht.

    Vielleicht hast Du ja spontan eine Idee, oder sogar eine fertige Lösung, die ich nur noch nicht gefunden habe. Ich wäre für alles, was weiter hilft dankbar!

    Gruß,

    Klaus

    • Martin Weiß Beitragsautor

      Hallo Klaus,

      wie man an der Anzahl der Kommentare sieht, ist das Thema ein echter Dauerbrenner. Es ist grundsätzlich auch in Excel möglich, nahezu beliebig viele voneinander abhängige Dropdown-Listen aufzubauen. Das sprengt aber definitiv den Rahmen hier. In meinem E-Book ist aber so ein mehrstufiges Szenario beschrieben:

      http://www.tabellenexperte.de/der-grosse-dropdown-leitfaden/

      Damit sollte sich Dein Problem mit hoher Wahrscheinlichkeit lösen lassen.

      Schöne Grüße,
      Martin

      • Sarah Schulz

        Hallo,
        vielen Dank für die verständliche Anleitung, ich konnte es auch schon umsetzen. Ich möchte eine ganze Tabelle so vordefinieren , dass die Benutzer immer nur aus Dropdownlisten auswählen können. Bei Spalten ohne diesen dynamischen Bezug kann ich das ganz einfach für die ganze Spalte voreinstellen. Muss ich bei dem dynamischen Bezug dies für jede einzelne Zeile eingeben, also immer die Formel =INDIREKT(C1) usw. oder gibt es irgendwie die Möglichkeit in kurzer Zeit bei einer Spalte D für jede einzelne Zeile anzugeben, dass sie sich immer auf die jeweilig gleiche Zeile in Spalte C beziehen soll?
        Ich habe das bisher nicht geschafft, der Bezug ist dann immer auf die Ausgangszeile, also z.B. bei Spalte D1-3 wird immer auf C1 verwiesen und so stimmt die Auswahl dann nicht.
        Vielleicht habe ich das auch hier überlesen, konnte es aber bisher nicht finden.
        Für eine Antwort wäre ich sehr dankbar!
        Viele Grüße, Sarah

        • Martin Weiß Beitragsautor

          Hallo Sarah,

          genau das macht die vorgestellte Lösung mit der INDIREKT-Formel eigentlich: Sie bezieht sich immer auf die jeweils aktuelle Zeile. Wichtig ist nur, dass Du beim Anlegen der Datenüberprüfung gleich alle Zeilen markiert hast, für die die Dropdownliste gelten soll. Und Du darfst natürlich keine absoluten Bezüge verwenden, also nicht etwa =INDIREKT($C$1).

          Dann sollte es eigentlich klappen.

          Grüße,
          Martin

  • Thorsten

    Hallo Martin,

    auch von mir herzlichen Dank für die große Hilfe. Auf Grund meines Jobs beschäftige ich mich derzeit leider erstmalig intensiv mit Excel. Daher meine Frage:
    Ich beschreibe kurz die Situation:
    Ich habe ein sehr ähnliches Problem wie Patrik im November 2014. Ich muss für diverse Abteilungen Bestellformulare kreieren. Hier möchte ich mit verknüpften Drop-Down Tabellen arbeiten. Derzeit laufen die Bestellungen noch wild aus den Abteilungen direkt an den Lieferanten, was mir die Dokumentation und Rechnungsstellung stark erschwert. Jetzt ist es so, dass das gefüllte Bestell-Formular via Mail an den Einkauf und cc an diverse Freigabestellen geschickt wird.
    Da bei unseren Bestellvorgängen immer ein großer Verteiler dahinter steckt, möchte ich natürlich nicht die gesamte Datei inkl. der Tabellen mit den Preisen auf die die Drop-Down Menus Bezug nehmen mit zu den einzelnen Personen schicken.

    Meine Frage:
    Kann ich die Referenztabellen mit durch die ich die Lieferanten und Produkte festlege auch in die Tabelle2 schreiben und diese für andere Schreibschützen? Kann könnten unsere Mitarbeiter das als A4-Blatt angelegte Formular aus Tabelle1 in einen Ordner speichern und dann verschicken.

    Gruß
    Thorsten

    • Martin Weiß Beitragsautor

      Hallo Thorsten,

      ja, die Referenztabellen können auch in einem anderen Tabellenblatt liegen (innerhalb der gleichen Arbeitsmappe). Dieses Tabellenblatt könntest Du z.B. ausblenden und den Arbeitsmappenschutz zusammen mit einem Passwort aktivieren, so dass es auch nicht mehr von Unbefugten eingeblendet werden kann.

      Wenn Deine Mitarbeiter jedoch nur das erste Arbeitsblatt mit dem Formular speichern und versenden würden, dann wäre die Funktion mit den Dropdown-Listen nicht möglich. Denn die Referenztabellen würden sich ja dann in einer anderen Datei befinden.

      Schöne Grüße,
      Martin

  • Oliver

    Hallo Martin,
    vielen Dank für diese tolle Erklärung.
    Ich stehe gerade vor dem Problem, Kosten zu ermitteln, die jedoch von drei Parametern abhängen.
    Es geht dabei um Ort, Typ I und Typ II:
    Ort: Oregon oder Ireland (AWS Rechenzentrum)
    Typ I: OnDemand oder Reserved (Laufzeitmodell)
    Typ II: Instanz (= t2.medium, m4.large, m4.xlarge, m3.large und m3.xlarge = AWS Instanzen)
    Die Kosten einer Instanz ist also von diesen drei Parametern abhängig.
    Nach Adam Riese habe ich also 20 verschiedene Kosten.

    Ich stelle mir die Tabelle so vor, dass ich
    – Ort
    – OnDemand oder Reserved (0 und1) und
    – die Instanz
    plus bis zu drei zusätzliche Features (mit fixen Kosten) sowie die Laufzeit in Tagen eingebe.
    Am Ende erhalte ich die genauen Kosten addiert in einer Spalte.

    Betrachte ich nur einen Ort und nur ein Laufzeitmodell, ist die Tabelle kein Problem. Aber bei zwei Orten und zwei Laufzeitmodellen
    lege ich mir die Karten… Mir fehlt ein zündender Funke, wie ich das angehen soll. Hast Du eine Idee?

    Danke und Gruß,
    Oliver
    PS: Nutze Excel 2016

    • Martin Weiß Beitragsautor

      Hallo Oliver,

      wenn ich es richtig verstehe, geht es Dir nicht um die Erstellung der Dropdown-Listen, sondern um die anschließende Berechnung der Kosten auf Basis der gewählten Werte. Da kann ich jetzt nur bedingt einen Tipp geben, da ich nicht weiß, wie die eigentliche Kostentabelle aufgebaut ist. Üblicherweise ist das ein Anwendungsfall für den SVERWEIS. In Deinem Fall könntest Du vermutlich die verschiedenen Kriterien (z.B. über eine Hilfsspalte) zu einem einzigen zusammenfassen und dann über SVERWEIS die Kosten aus der Kostentabelle abrufen. Was voraussetzt, dass auch dort diese kombinierte Kriterium vorkommt. Vielleicht hilft das ja als Denkanstoß.
      Ansonsten wird es mit einer Ferndiagnose leider schwierig…

      Schöne Grüße,
      Martin

      • Oliver

        Danke! Ich habe es vermutet, doch hatte ich meine Tabelle anders dargestellt. Umgebaut und es funktioniert.
        Und, btw. setze ich zumindest statische Drop-Downs ein. 🙂

        Gruß aus Berlin,
        Oliver

  • Henning Jordan

    Hallo Martin,

    ich habe auch ein Problem mit Excel, was ich seit Wochen versuche zu lösen.

    Ich versuche für mich in unserem Betrieb eine Tabelle für die Arbeitsplanung zu erstellen.
    Hier soll der eingetragene Wert für jeden Mitarbeiter mit Veränderung der Kalenderwoche
    “hinterlegt” sein.
    Wenn ich also für z. B. KW31 für Mitarbeiter A Baustelle B eingetragen habe, jetz zur KW 35 springe und ich da für Mitarbeiter A
    Baustelle C eingebe, möchte ich beim erneuten springen zu KW31 automatisch wieder Baustelle B angezeigt bekommen.
    So soll die Planung für die Woche gespeichert werden.

    Gibt es da eine Möglichkeit?

    Für jede Hilfe bin ich dankbar.
    Ich habe schon in meiner Tabelle deine Dropdown Listen implementiert und wäre froh meine Tabelle weiter
    verbessern zu können.

    MfG

    H. Jordan

    • Martin Weiß Beitragsautor

      Hallo Henning,

      das funktioniert nur, wenn Du mit zwei Tabellen arbeitest:

      In einer sind alle Werte für die Mitarbeiter und Kalenderwochen enthalten, also z.B. je Kalenderwoche eine Spalte. In dieser Tabelle werden die Daten also eingegeben.
      In einer zweiten Tabelle kannst Du dann über Dropdownfelder die Kalenderwoche und/oder den Mitarbeiter auswählen. Und Dir dann über entsprechende Verweis-Funktionen (SVERWEIS, INDEX etc.) die dazu passende Baustelle aus der ersten Tabelle anzeigen lassen.

      Die gleichzeitige Eingabe der Werte und anschließende wechselnde Anzeige innerhalb einer einzigen Tabelle ist leider nicht möglich.

      Schöne Grüße,
      Martin

  • Peter

    Hi Martin,
    Vielen Dank für das super tutorial !
    Habe noch ne Kleinigkeit rausgefunden bei der Verwendung dieser dynamischen Dropdown Liste.
    Und zwar schreibst du:
    “Diesen Namen müssen wir nun mit dem Namen des Herstellers ersetzen, und zwar in der exakt gleichen Schreibweise, wie er in der Spaltenüberschrift erscheint:”
    Allerdings kann man mit Hilfe des Modulooperators ‘&’ Zeichen ergänzen.
    Ein kleines Beispiel:
    Bei Werten die mit einer Ziffer beginnen aber als Tabellennamen eingesetzt werden sollen, muss man ein ‘_’ voranstellen, weil Excel sonst bei der Namensvergabe für die Tabelle meckert.

    3x30x10 als Wert in statischer
    _3x30x10 als Tabellenname

    In dynamische Liste =INDIREKT(“_” & A2) eintragen.

    Vieleicht hilft das ja einigen.

    PS: auch mit mehreren Buchstaben, Zeichen kombinierbar

  • Jan

    Vielen Dank für das Tutorial,hat mir sehr geholfen.
    Ich würde im meiner Tabelle im ersten Drop-Down gern Leerzeichen und Bindestrichen mit anzeigen ( hier biete sich Mercedes – Benz als Beispiel an),was ja durch die Namensvergabe für die Tabelle nicht funktioniert.
    Lässt sich das irgendwie bewerkstelligen ?

    Gruss,Jan

    • Martin Weiß Beitragsautor

      Hallo Jan,

      da die Namensregeln in Excel fix sind, wirst Du auf Leerzeichen und Bindestrichen vermutlich leider verzichten müssen. Im Zusammenhang mit dynamischen Dropdowns ist mir hier keine Lösung bekannt.

      Schöne Grüße,
      Martin

      • Stefan

        Hallo Jan.
        Hallo Martin.

        Es geht höchstens über zwei getrennte Dropdownlisten mit zwei unabhängigen Listen / Tabellen im Hintergrund. In der ersten Dropdownliste wird der Hersteller aus einer Tabelle gewählt (Hersteller: Mercedes – Benz, Audi, BMW etc.). In der zweiten Dropdownliste wird dann über eine dynamische Tabellenzuweisung (verschachtelte WENN-Funktionen, z.B. WENN(A1=”Mercedes – Benz”;MB-Modelle;WENN(… ) die jeweiligs zum Hersteller gehörige Modell-Tabelle (z.B. MB-Modelle) als Quelle ausgewählt.

        Gruß
        Stefan

        • Martin Weiß Beitragsautor

          Hallo Stefan,

          ja, das wäre vermutlich eine Möglichkeit. Dann müssen allerdings bei jeder Änderung der Dropdown-Werte auch die Formeln angepasst werden. Aber ich habe auch keine bessere Lösung parat.

          Schöne Grüße,
          Martin

  • Phil

    Vielen Dank diese Anleitung hat mir sehr Gut und schnell geholfen!

    Nun habe ich eine Frage.
    Ist es möglich dies wie folgt zu erweitern?

    Ich möchte gerne, dass nach der Auswahl des Herstellers links daneben Kurzinfos zu dem Hersteller auftauchen. NAch Auswahl des Modells sollten dann weitere Informationen zu dem Modell ercheinen. All diese Information kann ja in einem Weiterem Tabellenblatt hinterlegt werden.

    Wie könnte ich diese Idee verwirklichen?

    Vielen Danke

    • Martin Weiß Beitragsautor

      Hallo Phil,

      wenn diese Informationen in einer separaten Tabelle hinterlegt sind, dann könntest Du einfach über eine SVERWEIS-Funktion darauf zugreifen. Also in die Zelle neben dem Dropdown-Feld für den Hersteller einen SVERWEIS auf die Hersteller-Tabelle und in die Zelle neben dem Modell einen SVERWEIS auf die Modell-Tabelle.

      Schöne Grüße,
      Martin

  • Christoph

    Hallo Martin,

    vielen Dank für diesen super Tipp und die Klasse Erklärung zu den dynamischen Dropdowns.
    Ich musste ähnliche Aufgaben bisher mit diversen Hilfstabellen und in ziemlicher Kleinstarbeit erstellen… So ist es viel besser.

    Ich versuche derzeit eine andere Tabelle mit dem selben Ansatz zu erstellen, bin aber noch nicht auf eine Sinnvolle Lösung gekommen:
    In der Tabelle soll der Bearbeiter den Kategorien eins bis vier die Prioritäten von A bis D zuordnen. Die Auswahl der Prioritäten soll über eine DropDown-Liste funktionieren. Soweit kein Problem. Ich möchte allerdings, dass die Auswahl im DD sich jeweils um die bereits gewählten Prioritäten verringert.
    Bsp:
    Zelle B2 = Kategorie 1
    Zelle C2 = Dropdown ( Prio A;B;C;D)
    Zelle C2 = Prio C ausgewählt
    Zelle B3 = Kategorie 2
    Zelle C3 = Dropdown (Prio A;B;D)
    usw.
    Am besten sogar ohne eine Reihenfolge vorauszusetzen.

    Gibt es da eine genauso einfache Lösung?

    Viele Grüße, großes Lob und vielen Dank,
    Christoph

    • Martin Weiß Beitragsautor

      Hallo Christoph,

      danke für das Lob!
      Das von Dir beschriebene Problem lässt sich grundsätzlich lösen, ist aber nicht ganz trivial und daher nicht mein ein paar Sätzen hier zu beschreiben. Wenn es Dir wirklich wichtig ist (und DU 15,- Euro investieren möchtest), kann ich Dir mein E-Book empfehlen:
      http://www.tabellenexperte.de/der-grosse-dropdown-leitfaden/

      Dort habe ich unter anderem ein Beispiel beschrieben, wie man mit beschränkte Ressourcen in Dropdown-Listen umgeht. Also mit Einträgen, die nicht beliebig oft verwendet werden dürfen.
      Vielleicht wäre das ja etwas.

      Schöne Grüße,
      Martin