Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere Ergebnisse als DropDown darst.?

Mehrere Ergebnisse als DropDown darst.?
04.01.2023 14:35:43
Janine
Hallo zusammen,
ich bitte um etwas Hilfe zu folgender Fragestellung:
''Produkt'' (= definierter Bereich) aus TB1 vereinfacht dargestellt:
Nr. Artikel Daten
1 Banane gelb
2 Banane grün
Bisher ist es so: Wenn ich in TB2 in Zelle A1 eine Nummer eingebe, zieht B1 sich automatisch den Artikel aus ''Produkt''. Jetzt gibt es einige Artikel allerdings häufiger - daher würde ich die Sache gern umstellen:
Ich gebe den Artikel ein und dann soll C1 nicht nur die erste entsprechende Zelle aus ''Produkt'' ausspucken - das tut es -, sondern auch
a.) merken, wenn der Artikel mehr als einmal in ''Produkt'' vorkommt und
b.) dann bestenfalls eine Drop-Down-Liste der entsprechenden Zellen ausspucken (Banane in B1 = Drop-Down "gelb; grün" in C1).

Hat jemand einen Ansatz für mich? Geht das überhaupt mit INDEX (als Quelle)?
Danke!
Janine
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Ergebnisse als DropDown darst.?
04.01.2023 16:02:35
Janine
Danke erstmal!
Die Liste an sich bekomme ich relativ gut hin, wenn auch nur auf TB1 - und da sollte eigentlich nichts hin ...
Jedenfalls scheitere ich nun an der Formel, die die Wiederholung verhindern soll: Welche Rolle nimmt C dort ein?
AW: Mehrere Ergebnisse als DropDown darst.?
04.01.2023 18:11:17
Yal
Moin,
ganz einfach ist es nicht.
Was Du möchtest, die Dropdown-Liste, ist mit "Datenüberprüfung" zu haben. Diese ist per Hand unter Menü "Daten", "Datenüberprüfung" zu haben.
Nun sollte diese Auswahlilste in Spalte C sich jedesmal ändern, wenn in Spalte B bzw. A einen neuen Wert eingetragen wird.
d.h., bei Änderung in TB2!Ax
_ Wert in TB2!Bx lesen
_ neue Liste auf Basis von TB1, Spalte B als Filter, Spalte C als Werte für die Liste
_ Liste als Datenüberprüfung in TB2!Cx setzen
Auf dem Reiter vom Blatt TB2 rechtklicken und "Code anzeigen" auswählen. Dort folgende Code copy-pasten und eventuell BlattName in "Eigenschaften_auflisten" anpassen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Z As Range
Dim Erg
Application.EnableEvents = False
For Each Z In Target.Cells
If Z.Column = 2 Then 'nur Spalte 2 "B"
With Z.Offset(0, 1)
Erg = Eigenschaften_auflisten(Z.Value)
.Validation.Delete
.ClearContents
If UBound(Erg) >= 0 Then .Validation.Add Type:=xlValidateList, Formula1:=Join(Erg, ",")
End With
End If
Next
Application.EnableEvents = True
End Sub
Private Function Eigenschaften_auflisten(ByVal Filter As String)
Dim D As Object 'Dictionary. Listet alle Einträge nur einmal (Eindeutig)
Dim Z As Range 'Objekt für einzelne Zelle
Const cBlattName = "TB1"
Filter = LCase(Filter)  'Filter aus Kleinschreibung umstellen
Set D = CreateObject("Scripting.Dictionary")
With Worksheets(cBlattName)
For Each Z In Range(.Range("B2"), .Cells(.Rows.Count).End(xlUp))
If LCase(Z.Value) = Filter Then D(Z.Offset(1, 0).Value) = 1
Next
End With
Eigenschaften_auflisten = Array() 'Default-Value
If D.Count > 0 Then Eigenschaften_auflisten = D.Keys
End Function
VG
Yal
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Excel Dropdown für mehrere Ergebnisse erstellen


Schritt-für-Schritt-Anleitung

  1. Datenstruktur erstellen: Erstelle in einem Tabellenblatt (TB1) eine Liste deiner Artikel. Achte darauf, dass die Artikel mehrmals vorkommen können, z.B.:

    Nr.   Artikel    Daten
    1     Banane    gelb
    2     Banane    grün
  2. Zielblatt vorbereiten: In einem anderen Tabellenblatt (TB2) gibst du die Artikelnummer in Zelle A1 ein. In Zelle B1 soll der Artikel automatisch angezeigt werden.

  3. INDEX und VERGLEICH verwenden:

    • Um den Artikel aus TB1 zu ziehen, kannst du folgende Formel in B1 nutzen:
      =INDEX(TB1!B:B;VERGLEICH(A1;TB1!A:A;0))
  4. Datenüberprüfung für Dropdown: Um eine Dropdown-Liste in C1 zu erstellen, gehe zu „Daten“ → „Datenüberprüfung“. Wähle „Liste“ und gib die Formel ein, die auf die Daten in TB1 basiert.

  5. VBA-Code hinzufügen: Um dynamisch die Dropdown-Liste zu aktualisieren, füge den folgenden VBA-Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Z As Range
    Dim Erg
    Application.EnableEvents = False
    For Each Z In Target.Cells
    If Z.Column = 2 Then 'nur Spalte 2 "B"
    With Z.Offset(0, 1)
    Erg = Eigenschaften_auflisten(Z.Value)
    .Validation.Delete
    .ClearContents
    If UBound(Erg) >= 0 Then .Validation.Add Type:=xlValidateList, Formula1:=Join(Erg, ",")
    End With
    End If
    Next
    Application.EnableEvents = True
    End Sub
  6. Funktion für Dropdown-Werte: Füge die folgende Funktion in das VBA-Modul ein:

    Private Function Eigenschaften_auflisten(ByVal Filter As String)
    Dim D As Object
    Dim Z As Range
    Const cBlattName = "TB1"
    Filter = LCase(Filter)
    Set D = CreateObject("Scripting.Dictionary")
    With Worksheets(cBlattName)
    For Each Z In Range(.Range("B2"), .Cells(.Rows.Count).End(xlUp))
    If LCase(Z.Value) = Filter Then D(Z.Offset(1, 0).Value) = 1
    Next
    End With
    Eigenschaften_auflisten = Array()
    If D.Count > 0 Then Eigenschaften_auflisten = D.Keys
    End Function

Häufige Fehler und Lösungen

  • Dropdown zeigt keine Werte an: Überprüfe, ob die Daten in TB1 korrekt eingegeben wurden und ob die Datenüberprüfung richtig konfiguriert ist.

  • VBA-Code funktioniert nicht: Stelle sicher, dass Makros aktiviert sind, und dass der Code im richtigen Modul eingefügt wurde (z.B. in das Blattmodul von TB2).

  • Artikel nicht gefunden: Wenn der Artikel in TB1 fehlt, wird keine Dropdown-Liste erstellt. Achte darauf, dass die Artikel korrekt geschrieben sind.


Alternative Methoden

  1. SVERWEIS: Anstatt INDEX und VERGLEICH zu verwenden, kannst du auch SVERWEIS nutzen, um die Artikel zu finden. Dies ist jedoch weniger flexibel bei mehrfachen Ergebnissen.

  2. Pivot-Tabellen: Du kannst Pivot-Tabellen verwenden, um Daten zu aggregieren und eine Übersicht über die Artikel zu erhalten, aber sie bieten keine Dropdown-Funktionalität.


Praktische Beispiele

  • Beispiel 1: Für einen Artikel „Apfel“ in C1, der sowohl „rot“ als auch „grün“ hat, wird die Dropdown-Liste „rot, grün“ angezeigt.

  • Beispiel 2: Wenn in TB2!A1 „Banane“ steht, zeigt C1 die Optionen „gelb, grün“ an, basierend auf der Liste in TB1.


Tipps für Profis

  • Tastenkombinationen: Du kannst die Dropdown-Liste schnell aufrufen, indem du die Tastenkombination Alt + verwendest.

  • Standardwert setzen: Um einen excel dropdown default wert zu vergeben, kannst du eine Formel in die Zelle einsetzen, die den gewünschten Wert anzeigt, wenn die Dropdown-Liste nicht ausgewählt ist.

  • Dropdown in einer Zelle: Wenn du excel dropdown mehrere werte in einer zelle kombinieren möchtest, kannst du die Werte mit einem Semikolon trennen.


FAQ: Häufige Fragen

1. Kann ich mehrere Dropdown-Listen in einer Zelle haben?
Nein, Excel erlaubt nur eine Dropdown-Liste pro Zelle. Du kannst jedoch mehrere Zellen mit unterschiedlichen Listen erstellen.

2. Wie funktioniert die Sortierung in einer Dropdown-Liste?
Um die excel spalte sortieren dropdown zu nutzen, musst du die Daten in der Quelle sortieren, bevor du die Datenüberprüfung einrichtest.

3. Ist VBA notwendig für diese Funktionalität?
Ja, um die Dropdown-Liste dynamisch basierend auf den Eingaben zu aktualisieren, ist VBA erforderlich. Alternativ kannst du eine manuelle Auswahl mit festen Listen verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige