W końcu wymyśliłem, jak zbudować dynamiczny kaskadowy zestaw list w programie Excel za pomocą sprawdzania poprawności danych i funkcji POŚREDNIE. Mam jednak problem.
Chciałbym skonfigurować mój arkusz kalkulacyjny, aby za każdym razem, gdy wprowadzana była zmiana na liście sprawdzania poprawności danych, wszystkie kolejne listy były ustawiane na wartość domyślną. Na przykład:
Powiedzmy, że mam List1, List2, List3 i List4. Wartości każdej listy zależą od wyboru dokonanego na liście przed nią. Kiedy uruchamiam arkusz kalkulacyjny, chcę, aby wszystkie listy były domyślnie ustawione na „WSZYSTKO”. Gdy użytkownik wybierze wartość z Listy 1, Lista 2 zostanie zaktualizowana o zestaw prawidłowych wyborów. Chciałbym ustawić List2 na jedną z tych opcji. Jednakże, chociaż mogę sprawić, by List2 zapełnił się prawidłowym zestawem opcji wyboru, nie mogę mu przypisać żądanej wartości domyślnej.
Podobnie, jeśli użytkownik dokona wyboru na List1, List2 i List3, a następnie wróci i zmieni List1, chciałbym, aby List2-List4 domyślnie powrócił do „WSZYSTKICH”.
Jak mam to zrobic?
=IF(A1="List1",C1:C5,D1:D4)
. Przetestowałem to z wartością komórki A1 wybraną z listy i działa ona tak, jak szukasz.Odpowiedzi:
Metodą inną niż VBA, którą stosuję do tego problemu, jest zastosowanie formatowania WARUNKOWEGO do kolejnych komórek, które sprawdzają, czy bieżąca wartość, którą przechowuje, odpowiada wartości w bieżącym zakresie referencyjnym INDIRECT (). Jeśli NIE, wówczas komórka zmienia kolor na czerwony lub wartość znika (pasująca czcionka / tło), więc użytkownik wie, że wartość tej komórki musi zostać zaktualizowana / ponownie wybrana.
Aby to zilustrować (i metodę VBA wspomnianą przez innych powyżej), znajduje się tutaj przykładowy plik . Plik, który chcesz to DependentLists3.xls
źródło