Saya akhirnya menemukan cara untuk membangun serangkaian daftar cascading dinamis di Excel menggunakan Validasi Data dan fungsi INDIRECT. Namun, saya mengalami masalah.
Saya ingin mengatur spreadsheet saya sehingga setiap kali perubahan dibuat dalam daftar validasi data, semua daftar berikutnya diatur ke nilai default. Sebagai contoh:
Katakanlah saya punya List1, List2, List3, dan List4. Nilai masing-masing daftar bergantung pada pilihan yang dibuat dalam daftar sebelumnya. Ketika saya memulai spreadsheet, saya ingin semua daftar default ke "ALL". Ketika pengguna memilih nilai di List1, List2 memperbarui dengan serangkaian pilihan yang valid. Saya ingin default List2 ke salah satu pilihan itu. Namun, sementara saya bisa membuat List2 mengisi dengan set pilihan pilihan yang benar, saya tidak bisa mendapatkan nilai default yang saya inginkan untuk itu.
Demikian pula, jika pengguna membuat pilihan di List1, List2, dan List3, lalu kembali dan mengubah List1, saya ingin List2-List4 secara default kembali ke "ALL".
Bagaimana saya melakukan ini?
=IF(A1="List1",C1:C5,D1:D4)
. Saya telah menguji ini dengan nilai sel A1 yang dipilih dari daftar dan itu berfungsi dengan cara yang Anda cari.Jawaban:
Metode nonVBA yang saya gunakan untuk masalah ini adalah menerapkan pemformatan CONDITIONAL ke sel berikutnya yang memeriksa apakah nilai saat ini yang dipegang cocok dengan nilai dalam rentang ref INDIRECT () saat ini. Jika TIDAK, maka sel berubah menjadi merah, atau nilainya menghilang (huruf / latar belakang yang cocok) sehingga pengguna tahu nilai untuk sel itu harus diperbarui / dipilih kembali.
Untuk menggambarkan ini (dan metode VBA yang disebutkan oleh orang lain di atas), ada file sampel di sini . File yang Anda inginkan adalah DependentLists3.xls
sumber