Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Dynamischer Zelldropdown in Tabellenobjekt (ohne VBA!)
#1
Moin!
Ist - glaube ich - meine erste Frage hier im Forum.
Geht also nicht so streng mit mir um!  :19:

Ich schildere mal kurz mein Vorhaben.
(meine abgespeckte Übungsdatei befindet sich im Anhang)
Bekanntlich gibt es zu vielen PLZ mehrere Orte.
(die 54636 hat 39!)

Ich bin bereits so weit, dass bei Eingabe einer gültigen PLZ in der Nachbarzelle eine dynamische Datengültigkeit, Liste aktiviert wird.
(zu sehen im Tabellenobjekt DÜ1)
Dies erreiche ich durch den dynamischen Namen OrtSpez1 mit der schlanken Formel
=INDEX(Ort;VERGLEICH(DÜ1[@[PLZ_DÜ1]];PLZ;0)):
       INDEX(Ort;VERGLEICH(DÜ1[@[PLZ_DÜ1]];PLZ;0)+
       ZÄHLENWENN(PLZ_Ort_DB[PLZ];DÜ1[@[PLZ_DÜ1]])-1)

So weit, so logisch …
Nun dachte ich mir, dass man dies doch (besser) in der Tabelle DÜ2 mit der neuen Funktion FILTER() bewerkstelligen kann.
Schließlich lautet die Zellenformel dazu
=INDEX(FILTER(PLZ_Ort_DB;PLZ_Ort_DB[PLZ]=DÜ2[@[PLZ_DÜ2]]);;2)

Wenn ich diese nun aber dem Namen OrtSpez2 übergebe, tut sich … nix.

Es bringt auch nichts, wenn ich die Formel in eine mit RPP_test benamte Zelle übergebe und der DÜ die Listengültigkeit =RPP_test# übergebe (im Namensmanager ist das Doppelkreuz erst gar nicht erlaubt), …
… weil ich ja für jede Zeile der Tabelle eine aktuelle Auswahl benötige und ich mit obigem Workaround einen #ÜBERLAUF! produziere.

Ich bleibe jedenfalls am Ball und würde mich über Tipps freuen.

Gruß Ralf


Angehängte Dateien
.xlsx   DG_PLZ_Ort.xlsx (Größe: 13,53 KB / Downloads: 10)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#2
Update:
Ich kann zwar neben die Tabelle DÜ2 eine transponierte dynamische Formel schreiben und per =I2# darauf verweisen …
GHIJKLMNO
1PLZ_DÜ2Ort_DÜ2
2222222-Ort 22-Ort 12-Ort 22-Ort 3
3444444-Ort 54-Ort 14-Ort 24-Ort 34-Ort 44-Ort 54-Ort 6
4111111-Ort 11-Ort 2

NameBezug
Ort=PLZ_Ort_DB[Ort]
PLZ=PLZ_Ort_DB[PLZ]

ZelleFormel
I2=MTRANS(INDEX(FILTER(PLZ_Ort_DB;PLZ_Ort_DB[PLZ]=DÜ2[@[PLZ_DÜ2]]);;2))
I3=MTRANS(INDEX(FILTER(PLZ_Ort_DB;PLZ_Ort_DB[PLZ]=DÜ2[@[PLZ_DÜ2]]);;2))
I4=MTRANS(INDEX(FILTER(PLZ_Ort_DB;PLZ_Ort_DB[PLZ]=DÜ2[@[PLZ_DÜ2]]);;2))

ZelleGültigkeitstypOperatorWert1Wert2
H2Liste=I2#
H3Liste=I3#
H4Liste=I4#

… aber sobald ich das Tabellenobjekt erweitere (um den Vorhalt an Formeln zu verhindern) geht es den Bach herunter, sprich #ÜBERLAUF!

Es scheint tatsächlich so zu sein, dass sich die dynamischen Formeln nicht mit Tabellen vertragen.
Eigentlich schade, denn mein bewusst simples Beispiel diente mir ja dazu, zukünftig vollkommen andere Datenmodelle (ohne VBA!) zu entwickeln.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
Hallo Ralf,

sehe ich auch so, mit Tabellen haben dynamische Arrays noch so ihre Probleme.
Mal schauen, ob sich das vielleicht in Zukunft ändern wird.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Top
#4
Hallöchen,

weil's ja auch bisschen die Tabellen tangiert - schade auch, dass man bei der Datengültigkeit selbige bzw. deren Spalten nicht direkt verwenden kann Sad Ich muss mir stattdessen einen Namen definieren, der auf die entsprechende Spalte verweist.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


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