Data Validation động 1:Indirect+Table

 


Hãy hình dung tình huống như thế này: Bạn cần nhập tên của người ký tên cho 1 Form A, nhưng Form A cần 6 chữ ký và có tới hàng chục Form với những người phụ trách khác nhau và bạn không nhớ được Form nào cần những người nào Ký. 

Bạn cũng có thể đọc Procedure để phân biệt nhưng theo kinh nghiệm của mình thì chưa có công ty nào có văn bản quy định về những việc này. 

Và thậm chí có Procedure thì việc đánh tên những người đó hoặc tạo Data Validation với Drop-list cả mấy chục cái tên cũng mất kha khá thời gian, tại còn dễ sai nữa.

Hãy dùng Data Validation ĐỘNG. Nó tương tự với việc khi điền địa chỉ, bạn chọn tỉnh Bình Dương thì phần huyện sẽ chỉ hiển thị những Huyện thuộc Bình Dương vậy.

Cho yêu cầu tương tự như tình huống trên, cách làm như sau:
1.Tạo 1 list Form dạng TABLE.
2. Tạo các Table khác cho tên những người sẽ ký các Form này
*** Ctrl+T để tạo TABLE nhanh nhé.

3.Ở trên ta đã tạo 7 Tables, tiếp theo là quét từng Table và vào Formulas    =>Define name cho từng Table này (Hoặc Ctrl+Alt+F3)
Table Form mình sẽ đặt luôn là Form, bảng này ta có thể đặt tên tùy ý.
Tuy nhiên với 6 bảng còn lại thì tên của bảng phải trùng tuyệt đối với mã Form nhé
3. Tạo Data Validation list cho ô chứa tên Form
Kết quả:

4.Tạo  Data Validation list cho các ô chứa tên người Ký tên đều như sau:
=INDIRECT($L$1) =$L$1 là ô chứa tên FORM ta sẽ chọn.
Kết quả: Do form ta chọn là Form2 nên Drop-list cho Người Ký sẽ là từ Sếp 6 đến Sếp 10 như bảng Data.
Hãy thử đổi sang Form6:
Do list ở dạng Table nên ta có thể thêm/bớt nội dung ở bên dưới mà không cần phải chỉnh sửa source, Ví dụ Form4 thêm 1 người ký nữa:
Mở rộng: ở ví dụ trên là Data kế thừa 1 phân cấp :Form=>Người Ký.
Ta có thể ứng dụng tạo Table +Define name+Indirect tạo ra nhiều phân cấp nhỏ hơn.
Ví dụ: Phòng ban=>Tên Trưởng phòng=>Phân quyền









Nhận xét