Tạo droplist kèm điều kiện

Liên hệ QC

th_dungdn

Thành viên mới
Tham gia
14/5/12
Bài viết
21
Được thích
1
Hiện tại em đang làm menu thực đơn cho canteen. Thực đơn bao gồm 2 món chính (main dish), 1 món phụ và 1 canh. Nguyên tắc làm menu là không bị lặp món trong 1 tuần. Hiện tại em đã làm droplist sổ xuống cho mỗi ô. Cho em hỏi, làm sao để droplist ở mỗi ô sau sẽ không bao gồm các món đã chọn ở các ô trước ạ?
Em có gửi file đính kèm, anh chị giúp em với ạ!
Em cảm ơn

1526368056740.png
 

File đính kèm

  • Week 22-h.xlsx
    56.9 KB · Đọc: 7
Hiện tại em đang làm menu thực đơn cho canteen. Thực đơn bao gồm 2 món chính (main dish), 1 món phụ và 1 canh. Nguyên tắc làm menu là không bị lặp món trong 1 tuần. Hiện tại em đã làm droplist sổ xuống cho mỗi ô. Cho em hỏi, làm sao để droplist ở mỗi ô sau sẽ không bao gồm các món đã chọn ở các ô trước ạ?
Em có gửi file đính kèm, anh chị giúp em với ạ!
Em cảm ơn
Ý tưởng của mình là tạo nhiều list dùng hàm tìm kiếm để loại các món đã chọn theo thứ tự như bạn đã nêu trong bài. Kết nối các ô đến các list tương ứng Vẫn theo nguyên tắc thực hiện chọn là:
Chọn theo đúng thứ tự từ các ngày nhỏ đến ngày to, từ món chính 1 xong đến món chính 2
Trong trường hợp chọn xong, mà muốn quay lại sửa các ngày trước nếu trùng với các ngày sau sẽ có báo Duplicate (màu hồng)
Ví dụ như trong file gửi kèm: Mình đã chọn xong hết, quay lại chọn Main dish 1 cho Tuesday thì file báo trùng với Saturday. Điều này có nghĩa là phải chọn lại Main dish1 của Saturday
Các phần còn lại bạn có thể phát triển theo ý tưởng này
Hy vọng giúp ích được cho bạn. (Các món ăn hấp dẫn quá, đang đói nên mình không làm tiếp nổi )
 

File đính kèm

  • Week 22-h.xlsx
    62.5 KB · Đọc: 17
Lần chỉnh sửa cuối:
Hiện tại em đang làm menu thực đơn cho canteen. Thực đơn bao gồm 2 món chính (main dish), 1 món phụ và 1 canh. Nguyên tắc làm menu là không bị lặp món trong 1 tuần. Hiện tại em đã làm droplist sổ xuống cho mỗi ô. Cho em hỏi, làm sao để droplist ở mỗi ô sau sẽ không bao gồm các món đã chọn ở các ô trước ạ?
Em có gửi file đính kèm, anh chị giúp em với ạ!
Em cảm ơn

View attachment 195478
Tất cả các món đều không được trùng, dùng 1 mã VBA:
 

File đính kèm

  • Week 22-h.xlsb
    52.6 KB · Đọc: 10
Lần chỉnh sửa cuối:
Ý tưởng của mình là tạo nhiều list dùng hàm tìm kiếm để loại các món đã chọn theo thứ tự như bạn đã nêu trong bài. Kết nối các ô đến các list tương ứng Vẫn theo nguyên tắc thực hiện chọn là:
Chọn theo đúng thứ tự từ các ngày nhỏ đến ngày to, từ món chính 1 xong đến món chính 2
Trong trường hợp chọn xong, mà muốn quay lại sửa các ngày trước nếu trùng với các ngày sau sẽ có báo Duplicate (màu hồng)
Ví dụ như trong file gửi kèm: Mình đã chọn xong hết, quay lại chọn Main dish 1 cho Tuesday thì file báo trùng với Saturday. Điều này có nghĩa là phải chọn lại Main dish1 của Saturday
Các phần còn lại bạn có thể phát triển theo ý tưởng này
Hy vọng giúp ích được cho bạn. (Các món ăn hấp dẫn quá, đang đói nên mình không làm tiếp nổi )

Cảm ơn bạn Quang nhiều nha! Vấn đề của mình giải quyết được rồi. Mình cứ đinh ninh là phải dùng VBA nên không động não suy nghĩ kỹ. Cảm ơn bạn rất nhiều!!
 
Nghĩa là sao ạ? Em download file đính kèm về rồi mà vẫn chưa thấy drop list những ô sau thay đổi gì cả ạ. Anh coi lại giúp em với ạ!
Em cảm ơn
Bạn bật Enable Macro chưa, với khi bạn chọn món nó chỉ còn những món bạn chưa chọn thôi mà nhỉ ??
Bạn chọn thử bên trái cây xem, chỉ còn 3 lựa chọn, hôm qua mình chỉnh còn lấy thiếu dữ liệu:
 

File đính kèm

  • Week 22-h.xlsb
    52.6 KB · Đọc: 7
Bạn bật Enable Macro chưa, với khi bạn chọn món nó chỉ còn những món bạn chưa chọn thôi mà nhỉ ??
Bạn chọn thử bên trái cây xem, chỉ còn 3 lựa chọn, hôm qua mình chỉnh còn lấy thiếu dữ liệu:

Cảm ơn anh nhiều nhé! Em bật macro lên rồi, file chạy được rồi anh ơi! Nhưng em vẫn chưa hiểu lắm cách anh đang làm ạ. Em xem cách anh làm file mà vẫn chưa hiểu lắm ạ! Nếu anh có thời gian, anh giải thích cho em với được không ạ. Em cảm ơn!
 
Cảm ơn anh nhiều nhé! Em bật macro lên rồi, file chạy được rồi anh ơi! Nhưng em vẫn chưa hiểu lắm cách anh đang làm ạ. Em xem cách anh làm file mà vẫn chưa hiểu lắm ạ! Nếu anh có thời gian, anh giải thích cho em với được không ạ. Em cảm ơn!
Chết xin lỗi bạn, cứ chăm chăm copy công thức nên lại sai nữa, bạn xài bản này không có VBA khỏe hơn:
Ở đây mình có tạo thêm 1 bảng phụ lấy từ danh sách món ăn chính của bạn, sau đó dùng hàm đếm:
PHP:
COUNTIF(J$1:J1,B$2:B$77)+COUNTIF(Menu!$C$4:$I$5,B$2:B$77)
Đếm ở đây là gom cả 2 bảng ra đếm:
- COUNTIF(J$1:J1,B$2:B$77) là đếm từ loại trừ trùng từ trên xuống món nào lọc ra rồi thì loại bỏ lấy món tiếp theo tức là số 1
- COUNTIF(Menu!$C$4:$I$5,B$2:B$77) là đếm từ bảng dữ liệu món ăn bạn đã chọn có rồi thì thành các số lớn hơn 0
Tiếp đến là hàm Match(0,...,0) là tìm vị trí số 0 mà cái nào ta chưa đếm được trong bảng đã chọn món ăn với tránh trùng từ bên trên, ta sẽ có vị trí món ăn cần lấy.
Cuối cùng dùng hàm OFFSET để lấy món ăn chưa được trọn và không trùng tiếp theo ra.
Bên trong Name tôi dùng công thức OFFSET để lấy các món ăn đã được loại trừ trùng và chọn kết hợp hàm COUNTIF(vùng dữ liệu cần lấy,điều kiện "?*" là đếm các có bao nhiêu chuỗi)
Bonus thêm 1 cái dữ lại dữ liệu đã chọn trong ô (xài Macro).
 

File đính kèm

  • Week 22-h.xlsb
    41.6 KB · Đọc: 13
  • Week 22-h bonus.xlsb
    53.4 KB · Đọc: 15
Lần chỉnh sửa cuối:
Chết xin lỗi bạn, cứ chăm chăm copy công thức nên lại sai nữa, bạn xài bản này không có VBA khỏe hơn:
Ở đây mình có tạo thêm 1 bảng phụ lấy từ danh sách món ăn chính của bạn, sau đó dùng hàm đếm:
PHP:
COUNTIF(J$1:J1,B$2:B$77)+COUNTIF(Menu!$C$4:$I$5,B$2:B$77)
Đếm ở đây là gom cả 2 bảng ra đếm:
- COUNTIF(J$1:J1,B$2:B$77) là đếm từ loại trừ trùng từ trên xuống món nào lọc ra rồi thì loại bỏ lấy món tiếp theo tức là số 1
- COUNTIF(Menu!$C$4:$I$5,B$2:B$77) là đếm từ bảng dữ liệu món ăn bạn đã chọn có rồi thì thành các số lớn hơn 0
Tiếp đến là hàm Match(0,...,0) là tìm vị trí số 0 mà cái nào ta chưa đếm được trong bảng đã chọn món ăn với tránh trùng từ bên trên, ta sẽ có vị trí món ăn cần lấy.
Cuối cùng dùng hàm OFFSET để lấy món ăn chưa được trọn và không trùng tiếp theo ra.
Bên trong Name tôi dùng công thức OFFSET để lấy các món ăn đã được loại trừ trùng và chọn kết hợp hàm COUNTIF(vùng dữ liệu cần lấy,điều kiện "?*" là đếm các có bao nhiêu chuỗi)
Bonus thêm 1 cái dữ lại dữ liệu đã chọn trong ô (xài Macro).[/QUOTE
Chết xin lỗi bạn, cứ chăm chăm copy công thức nên lại sai nữa, bạn xài bản này không có VBA khỏe hơn:
Ở đây mình có tạo thêm 1 bảng phụ lấy từ danh sách món ăn chính của bạn, sau đó dùng hàm đếm:
PHP:
COUNTIF(J$1:J1,B$2:B$77)+COUNTIF(Menu!$C$4:$I$5,B$2:B$77)
Đếm ở đây là gom cả 2 bảng ra đếm:
- COUNTIF(J$1:J1,B$2:B$77) là đếm từ loại trừ trùng từ trên xuống món nào lọc ra rồi thì loại bỏ lấy món tiếp theo tức là số 1
- COUNTIF(Menu!$C$4:$I$5,B$2:B$77) là đếm từ bảng dữ liệu món ăn bạn đã chọn có rồi thì thành các số lớn hơn 0
Tiếp đến là hàm Match(0,...,0) là tìm vị trí số 0 mà cái nào ta chưa đếm được trong bảng đã chọn món ăn với tránh trùng từ bên trên, ta sẽ có vị trí món ăn cần lấy.
Cuối cùng dùng hàm OFFSET để lấy món ăn chưa được trọn và không trùng tiếp theo ra.
Bên trong Name tôi dùng công thức OFFSET để lấy các món ăn đã được loại trừ trùng và chọn kết hợp hàm COUNTIF(vùng dữ liệu cần lấy,điều kiện "?*" là đếm các có bao nhiêu chuỗi)
Bonus thêm 1 cái dữ lại dữ liệu đã chọn trong ô (xài Macro).

Em xem file rồi ạ. Cảm ơn anh nhiều nhé! Triệu like vì hướng dẫn quá nhiệt tình luôn!!!!!!
 
Web KT
Back
Top Bottom