Ich habe endlich herausgefunden, wie man mithilfe der Datenvalidierung und der INDIRECT-Funktion einen dynamischen Kaskadensatz von Listen in Excel erstellt. Ich habe jedoch ein Problem.
Ich möchte meine Tabelle so einrichten, dass bei jeder Änderung einer Datenüberprüfungsliste alle nachfolgenden Listen auf einen Standardwert gesetzt werden. Beispielsweise:
Angenommen, ich habe Liste1, Liste2, Liste3 und Liste4. Die Werte jeder Liste hängen von der Auswahl in der vorherigen Liste ab. Wenn ich die Tabelle starte, möchte ich, dass alle Listen standardmäßig "ALL" sind. Wenn der Benutzer einen Wert in Liste1 auswählt, wird Liste2 mit einer Reihe gültiger Auswahlmöglichkeiten aktualisiert. Ich möchte List2 standardmäßig auf eine dieser Optionen einstellen. Obwohl ich List2 mit den richtigen Auswahloptionen füllen kann, kann ich ihm nicht den gewünschten Standardwert zuweisen.
Wenn der Benutzer eine Auswahl in Liste1, Liste2 und Liste3 trifft, dann zurückgeht und Liste1 ändert, möchte ich, dass Liste2-Liste4 standardmäßig auf "ALLE" zurückgesetzt wird.
Wie mache ich das?
=IF(A1="List1",C1:C5,D1:D4)
. Ich habe dies mit dem Wert von Zelle A1 getestet, der aus einer Liste ausgewählt wurde, und es funktioniert so, wie Sie es suchen.Antworten:
Eine Nicht-VBA-Methode, die ich für dieses Problem verwende, besteht darin, eine CONDITIONAL-Formatierung auf die nachfolgenden Zellen anzuwenden, die prüft, ob der aktuelle Wert mit einem Wert im aktuellen INDIRECT () -Referenzbereich übereinstimmt. Wenn NICHT, wird die Zelle rot oder der Wert verschwindet (übereinstimmende Schriftart / Hintergrund), sodass der Benutzer weiß, dass der Wert für diese Zelle aktualisiert / erneut ausgewählt werden muss.
Um dies (und die von anderen oben erwähnte VBA-Methode) zu veranschaulichen, gibt es hier eine Beispieldatei . Die gewünschte Datei ist DependentLists3.xls
quelle