Tạo Data list phụ thuộc hai điều kiện (4 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

binh123456789

Thành viên thường trực
Tham gia
13/5/15
Bài viết
267
Được thích
12
Xin chào các anh chị giúp đở em tạo Data list phụ thuộc hai điều kiện trong file đính kèm
Xem dùm em ở Sheet Chieu và Sang trong file
 

File đính kèm

Anh xem dùm em Sheet Lop6 ngay tuần 1 khi ở sheet Chieu tại ô F4 chọn lớp 6 và C2 chọn tuần 1
Thì tại ô E4 sẽ có list như
ĐS
ĐS
ĐS
ĐS
HH
lấy từ Sheet lop6 từ B3 đến F3
 
Bạn mới đăng bài lúc 7:22 PM mà có vẻ gấp vậy?
 
Anh xem dùm em Sheet Lop6 ngay tuần 1 khi ở sheet Chieu tại ô F4 chọn lớp 6 và C2 chọn tuần 1
Thì tại ô E4 sẽ có list như
ĐS
ĐS
ĐS
ĐS
HH
lấy từ Sheet lop6 từ B3 đến F3
Đã hỏi bên đây rồi mà!?

Thân
 
Dạ bị lỗi ah. Khi em đưa công thức vào thì chạy được. Như khi tắt mở lên thì ko dùng được nữa
Phần in đậm chắc là không đúng.
Có lẽ bạn áp dụng công thức cho file khác có tên sheet là "Lop..." nhưng lại không có dấu cách giữa chữ "Lop" & "số kế tiếp" nên công thức không tìm thấy.
Bạn gửi file lỗi mà tắt mở lên không dùng được công thức lên xem sao
 
em gui file. nho anh chj giup do
Bài đã được tự động gộp:

em gui file. nho anh chj giup do
 

File đính kèm

File đính kèm

em gui file. nho anh chj giup do
Bài đã được tự động gộp:

em gui file. nho anh chj giup do
Có lẽ hàm LEFT() trong validation thiếu tham số. Bạn thử sửa LEFT(F4) thành LEFT(F4,1) xem sao
File đính kèm dưới đây thử một công thức khác
 

File đính kèm

Dạ bị lỗi ah. Khi em đưa công thức vào thì chạy được. Như khi tắt mở lên thì ko dùng được nữa
Nhận xét file của bạn:
1/ Do các sheet "Lop xx" bạn tạo ra nhằm lấy thông tin từ các sheet "PPCT xx", nên chỉ cần tạo trong Data Validation dựa trên "PPCT xx" là được rồi, không cần các sheet "Lop xx" nữa, như vậy file sẽ gọn gàng hơn. Tuy nhiên, bạn phải đồng nhất "form" của các sheet "PPCT xx", tức thông tin cần lấy phải giống nhau: bắt đầu từ dòng 18 trở xuống. Cái nữa, khi tạo tên sheet tránh có ký tự rỗng phía sau, Vd: không nên tạo "PPCT 9__" 2 khoảng trắng phía sau số 9.
Mã:
=OFFSET(INDIRECT("'PPCT "&LEFT(F4)&"'!D17"),MATCH($C$2,INDEX(INDIRECT("'PPCT "&LEFT(F4)&"'!A18:A200"),),),,5)
2/ Các cột L,P,Q trong sheet "Chieu" cũng có thể lược bớt.
3/ Cùng giản lược các công thức các cột D,G,H cho bạn.
4/ Cuối cùng: công thức LEFT(F4) hay LEFT(F4,1) đều ra kết quả như nhau, chớ nhầm. :)

Tôi có thêm vào 1 số mã tầm bậy "AS,pm,PK,LM" :) chỉ dành kiểm tra, bạn chịu khó sửa lại cho đúng.
Xem file kèm.

Thân
 

File đính kèm

Lần chỉnh sửa cuối:
Nhận xét file của bạn:
1/ Do các sheet "Lop xx" bạn tạo ra nhằm lấy thông tin từ các sheet "PPCT xx", nên chỉ cần tạo trong Data Validation dựa trên "PPCT xx" là được rồi, không cần các sheet "Lop xx" nữa, như vậy file sẽ gọn gàng hơn. Tuy nhiên, bạn phải đồng nhất "form" của các sheet "PPCT xx", tức thông tin cần lấy phải giống nhau: bắt đầu từ dòng 18 trở xuống. Cái nữa, khi tạo tên sheet tránh có ký tự rỗng phía sau, Vd: không nên tạo "PPCT 9__" 2 khoảng trắng phía sau số 9.
Mã:
=OFFSET(INDIRECT("'PPCT "&LEFT(F4)&"'!D17"),MATCH($C$2,INDEX(INDIRECT("'PPCT "&LEFT(F4)&"'!A18:A200"),),),,5)
2/ Các cột L,P,Q trong sheet "Chieu" cũng có thể lược bớt.
3/ Cùng giản lược các công thức các cột D,G,H cho bạn.
4/ Cuối cùng: công thức LEFT(F4) hay LEFT(F4,1) đều ra kết quả như nhau, chớ nhầm. :)

Tôi có thêm vào 1 số mã tầm bậy "AS,pm,PK,LM" :) chỉ dành kiểm tra, bạn chịu khó sửa lại cho đúng.
Xem file kèm.

Thân
Về công thức left(f4) và left(f4,1) trong công thức của validation
Nếu để left(f4) thì validation không hoạt động, sửa thành left(f4,1) thì lại có. Nhờ bác giải thích giúp
( Lấy theo file của bài 12 )
 

File đính kèm

Về công thức left(f4) và left(f4,1) trong công thức của validation
Nếu để left(f4) thì validation không hoạt động, sửa thành left(f4,1) thì lại có. Nhờ bác giải thích giúp
( Lấy theo file của bài 12 )
Câu hỏi rất hay!
Bạn có thể download tại link này:
Đây là bài tôi giải trước đây với câu lệnh trong Data Validation như sau:

=INDEX(INDIRECT("'Lớp "&LEFT(E5)&"'!B3:F500"),MATCH($C$2,ROW($1:$37),),)

Khi download file theo link trên về, bạn đứng tại D5, nhấn vào droplist, nó không hoạt động phải không!?
Bây giờ bạn đứng đó và vào Data Validation, đưa trỏ vào câu lệnh, rồi không cần sửa gì hết (tức giữ nguyên Left(E5)), nhấn OK, sau đó vào lại Droplist thì được!? Lạ không!?

Hoặc, sau khi bạn thêm vào LEFT(E5,1), thì droplist hoạt động, nhưng đóng file lại, rồi bạn mở lại lần nữa thì droplist lại không hoạt động!?

Nguyên do, không phải là lệnh LEFT(E5) có 1 hay không, mà do lệnh MATCH($C$2,ROW($1:$37),), chỉ cần thêm INDEX(...,) vào là nó sẽ hoạt động tốt, tức: MATCH($C$2,INDEX(ROW($1:$37),),).

Từ điều này, tôi thấy khi dùng mảng trong Data Validation phải khai báo cho nó bằng INDEX(...,) thêm.

Chúc bạn ngày vui
Thân
/-*+//-*+//-*+/
 
Câu hỏi rất hay!
Bạn có thể download tại link này:
Đây là bài tôi giải trước đây với câu lệnh trong Data Validation như sau:

=INDEX(INDIRECT("'Lớp "&LEFT(E5)&"'!B3:F500"),MATCH($C$2,ROW($1:$37),),)

Khi download file theo link trên về, bạn đứng tại D5, nhấn vào droplist, nó không hoạt động phải không!?
Bây giờ bạn đứng đó và vào Data Validation, đưa trỏ vào câu lệnh, rồi không cần sửa gì hết (tức giữ nguyên Left(E5)), nhấn OK, sau đó vào lại Droplist thì được!? Lạ không!?

Hoặc, sau khi bạn thêm vào LEFT(E5,1), thì droplist hoạt động, nhưng đóng file lại, rồi bạn mở lại lần nữa thì droplist lại không hoạt động!?

Nguyên do, không phải là lệnh LEFT(E5) có 1 hay không, mà do lệnh MATCH($C$2,ROW($1:$37),), chỉ cần thêm INDEX(...,) vào là nó sẽ hoạt động tốt, tức: MATCH($C$2,INDEX(ROW($1:$37),),).

Từ điều này, tôi thấy khi dùng mảng trong Data Validation phải khai báo cho nó bằng INDEX(...,) thêm.

Chúc bạn ngày vui
Thân
/-*+//-*+//-*+/
Với file theo đường dẫn đính kèm của bác:
Phần bôi màu xanh : Sửa LEFT(F5) thành LEFT(F5,1), nhấn Apply..., nhấn ok. Lúc này validation có hoạt động & lưu file, đóng lại rồi mở lần nữa thì validation vẫn hoạt động. Có lẽ là do đã tích vào Apply... nên validation mới chấp nhận lưu lại công thức đã sửa khi lưu file.
Lựa chọn Apply chỉ có giá trị lưu lại công thức thay đổi khi lưu file, cái này không quan trọng lắm.
Vậy vấn đề giờ vẫn là hàm LEFT() trước và sau khi thêm tham số thứ 2. cái này vẫn chưa rõ ràng vì vẫn công thức cũ, thêm tham số thứ 2 thì lại chạy. ( Tất nhiên là phải cập nhật công thức mới trước khi lưu file nếu muốn dùng lần sau )

Phần bôi màu đỏ : khi nhấn shift+F3... sau đó chọn hàm MATCH() thì thấy hàm vẫn trả kết quả bác ạ, có lẽ hàm MATCH() vẫn hoạt động.
Cụ thể : Tại D5, nhấn shift+F3..., chọn hàm MATCH(), kết quả nhìn thấy là =1.

Cảm giác của tôi hình như là khi hàm LEFT() sử dụng chung cùng một vài hàm khác thì cần khai báo tường minh thì phải. Cái này chưa test
 
Với file theo đường dẫn đính kèm của bác:
Phần bôi màu xanh : Sửa LEFT(F5) thành LEFT(F5,1), nhấn Apply..., nhấn ok. Lúc này validation có hoạt động & lưu file, đóng lại rồi mở lần nữa thì validation vẫn hoạt động. Có lẽ là do đã tích vào Apply... nên validation mới chấp nhận lưu lại công thức đã sửa khi lưu file.
Lựa chọn Apply chỉ có giá trị lưu lại công thức thay đổi khi lưu file, cái này không quan trọng lắm.
Vậy vấn đề giờ vẫn là hàm LEFT() trước và sau khi thêm tham số thứ 2. cái này vẫn chưa rõ ràng vì vẫn công thức cũ, thêm tham số thứ 2 thì lại chạy. ( Tất nhiên là phải cập nhật công thức mới trước khi lưu file nếu muốn dùng lần sau )

Phần bôi màu đỏ : khi nhấn shift+F3... sau đó chọn hàm MATCH() thì thấy hàm vẫn trả kết quả bác ạ, có lẽ hàm MATCH() vẫn hoạt động.
Cụ thể : Tại D5, nhấn shift+F3..., chọn hàm MATCH(), kết quả nhìn thấy là =1.

Cảm giác của tôi hình như là khi hàm LEFT() sử dụng chung cùng một vài hàm khác thì cần khai báo tường minh thì phải. Cái này chưa test
Bạn thử xem file kèm dưới đây, mà tôi đã chỉnh LEFT(E5,1), chọn Apply rồi đó, xem thử và kiểm tra giúp tôi Droplist có hoạt động không!

Nếu đúng nó không hoạt động, bạn vào lại Data Validation, chọn D5: D37, sửa thành LEFT(E5) nhấn Apply rồi OK, sẽ thấy nó hoạt động tốt.


Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn thử xem file kèm dưới đây, mà tôi đã chỉnh LEFT(E5,1), chọn Apply rồi đó, xem thử và kiểm tra giúp tôi Droplist có hoạt động không!

Nếu đúng nó không hoạt động, bạn vào lại Data Validation, chọn D5: D37, sửa thành LEFT(E5) nhấn Apply rồi OK, sẽ thấy nó hoạt động tốt.


Thân.
Phần bôi đậm, công thức vẫn để LEFT(F5,1), khi nhấn apply một lần thì vẫn hoạt động bác ạ
 

File đính kèm

Web KT

Bài viết mới nhất

Back
Top Bottom