Hướng dẫn tạo Validation (1 người xem)

Liên hệ QC

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

kokano90

Thành viên hoạt động
Tham gia
10/8/19
Bài viết
117
Được thích
25
Chào các thầy cô
Em có file ví dụ như đính kèm
Mục đích là muốn tạo Validation như hình ảnh
1582623139207.png
Mặc dù đã Ctrl + F3 để xem name rồi.
Nhưng đến khi làm lại. Em vẫn không làm lại được
Chính vì thế nhờ các thầy cô chỉ giúp cho em cách làm với ạ.
Và có thể giải thích cụ thể giúp em các công thức trong Name Manager với ạ
Mã:
LIST=OFFSET(MC!$A$1,MATCH(Schedule!B5&"*",MC,0)-1,0,COUNTIF(MC,Schedule!B5&"*"),1)
MC=OFFSET(MC!$A$1,0,0,COUNTA(MC!$A:$A),1)
 

File đính kèm

Chào các thầy cô
Em có file ví dụ như đính kèm
Mục đích là muốn tạo Validation như hình ảnh

Mặc dù đã Ctrl + F3 để xem name rồi.
Nhưng đến khi làm lại. Em vẫn không làm lại được
Chính vì thế nhờ các thầy cô chỉ giúp cho em cách làm với ạ.
Và có thể giải thích cụ thể giúp em các công thức trong Name Manager với ạ
Mã:
LIST=OFFSET(MC!$A$1,MATCH(Schedule!B5&"*",MC,0)-1,0,COUNTIF(MC,Schedule!B5&"*"),1)
MC=OFFSET(MC!$A$1,0,0,COUNTA(MC!$A:$A),1)
Xem thử File.
- Gõ từ gợi nhớ rồi click vào Validation nó sẽ hiện danh sách của từ gợi nhớ.
- Nếu đã có sẳn 1 từ nhiệt như trong File thì click vào Cell rồi vào Validation nó sẽ hiện danh sách của từ gợi nhớ đó.
 

File đính kèm

Xem thử File.
- Gõ từ gợi nhớ rồi click vào Validation nó sẽ hiện danh sách của từ gợi nhớ.
- Nếu đã có sẳn 1 từ nhiệt như trong File thì click vào Cell rồi vào Validation nó sẽ hiện danh sách của từ gợi nhớ đó.
Thầy ơi. Thầy có thế tái hiện lại cách làm. hoặc chỉ em cách làm với ạ. chứ thầy làm sẵn. em cứ thế dùng. rồi em chẳng biết gì luôn ạ. Phiền thầy được không ạ
 
Chào các thầy cô
Em có file ví dụ như đính kèm
Mục đích là muốn tạo Validation như hình ảnh
View attachment 232462
Mặc dù đã Ctrl + F3 để xem name rồi.
Nhưng đến khi làm lại. Em vẫn không làm lại được
Chính vì thế nhờ các thầy cô chỉ giúp cho em cách làm với ạ.
Và có thể giải thích cụ thể giúp em các công thức trong Name Manager với ạ
Mã:
LIST=OFFSET(MC!$A$1,MATCH(Schedule!B5&"*",MC,0)-1,0,COUNTIF(MC,Schedule!B5&"*"),1)
MC=OFFSET(MC!$A$1,0,0,COUNTA(MC!$A:$A),1)
Làm theo hướng dẫn trong file
 

File đính kèm

Chào các thầy cô
Em có file ví dụ như đính kèm
Mục đích là muốn tạo Validation như hình ảnh
View attachment 232462
Mặc dù đã Ctrl + F3 để xem name rồi.
Nhưng đến khi làm lại. Em vẫn không làm lại được
Chính vì thế nhờ các thầy cô chỉ giúp cho em cách làm với ạ.
Và có thể giải thích cụ thể giúp em các công thức trong Name Manager với ạ
Mã:
LIST=OFFSET(MC!$A$1,MATCH(Schedule!B5&"*",MC,0)-1,0,COUNTIF(MC,Schedule!B5&"*"),1)
MC=OFFSET(MC!$A$1,0,0,COUNTA(MC!$A:$A),1)
Giải thích:
1.
MC=OFFSET(MC!$A$1,0,0,COUNTA(MC!$A:$A),1)
MC sẽ là vùng dữ liệu nguồn. Tức trong tập tin của bạn đó là vùng A1:A351

Chú ý là với Validation kiểu của bạn thì dữ liệu nguồn phải được sắp xếp. Tức những dòng có cùng tiền tố phải ở những dòng liên tiếp.

2.
Mã:
LIST=OFFSET(MC!$A$1,MATCH(Schedule!B5&"*",MC,0)-1,0,COUNTIF(MC,Schedule!B5&"*"),1)
Trước khi chọn vùng B1:B21 cho DV thì bạn phải chọn ô đầu tiên trong vùng rồi mới đặt name LIST. Tức trong tập tin của mình bạn phải chọn B1 rồi mới đặt name LIST với công thức là
Mã:
LIST=OFFSET(MC!$A$1,MATCH(Schedule!B1&"*",MC,0)-1,0,COUNTIF(MC,Schedule!B1&"*"),1)

Chú ý trong công thức là B1 chứ không phải là B5, vì bạn chọn B1 trước khi đặt name LIST.

Lúc đó khi bạn chọn B5 rồi xem lại name LIST thì bạn thấy Excel tự đổi thành
Mã:
LIST=OFFSET(MC!$A$1,MATCH(Schedule!B5&"*",MC,0)-1,0,COUNTIF(MC,Schedule!B5&"*"),1)

Tức không còn là B1 nữa mà là B5 như ở trên. Muốn được thế thì phải chọn B1 trước khi đặt name LIST và trong công thức thì ít nhất địa chỉ dòng phải là tương đối. Không thể $B$1, B$1 mà phải là $B1 hoặc B1. Nếu bạn muốn DV cho nhiều cột vd. cho B1:C21 thì cũng chọn ô đầu tiên của vùng trước khi đặt name, tức B1, và lúc này trong công thức cả dòng và cột đều phải là tương đối. Tức không thể B$1, $B1 mà phải là B1. Để khi chọn vd. C1 thì phải có trong name C chứ không phải mãi là B.

Về công thức
Mã:
LIST=OFFSET(MC!$A$1,MATCH(Schedule!B1&"*",MC,0)-1,0,COUNTIF(MC,Schedule!B1&"*"),1)

MATCH(Schedule!B1&"*",MC,0) trả về vị trí của dòng đầu tiên có tiền tố = cái đang có trong B1 (DV).

Từ MC!$A$1 phải dịch xuống MATCH(Schedule!B1&"*",MC,0)-1 dòng để đến đúng dòng đầu tiên có tiền tố = cái đang có trong B1.

COUNTIF(MC,Schedule!B1&"*") trả về số các dòng đều có tiền tố = cái đang có trong B1.

Vậy công thức ở trên chẳng qua là trả về 1 vùng mà tất cả các dòng của vùng đó đều có tiền tố = cái đang có trong B1 (DV).

Vd. bạn gõ bơ thì công thức trả về MC!A59:A67. Và vùng như thế có trong danh sách thả khi bạn mở nó.
-------------
Tôi không hiểu ý bạn. Hiện tại bạn đã có 2 name chuẩn. Và khi bạn gỏ "bơ" hay "m" và mở danh sách thì bạn có danh sách rút gọn chuẩn rồi. Bạn còn kêu cái gì
-------------
Cách của bạn be09 hơi rắc rồi. Nào là công thức cho schedule!B2, trong cột MC!A, trong MC!C1, rồi trong MC!C2:C352. Mà vẫn phải có name DS_Loai.

Cách ở trên đơn giản hơn.
 
Làm theo hướng dẫn trong file
Cám ơn thầy đã hướng dẫn. Em cũng thao tác như thầy. Mà nó lại báo lỗi như vậy1582633332050.png
Thầy có thể chỉ em đang sai chỗ nào không ạ
Bài đã được tự động gộp:

Tôi không hiểu ý bạn. Hiện tại bạn đã có 2 name chuẩn. Và khi bạn gỏ "bơ" hay "m" và mở danh sách thì bạn có danh sách rút gọn chuẩn rồi. Bạn còn kêu cái gì
-------------

Cách ở trên đơn giản hơn.
Cám ơn thầy đã giải thích cặn kẽ. Lý do em đăng bài hỏi là vì em có tải file đó trên GPE nhà mình. Và điều cuối cùng em muốn học là học cách để làm và hiểu nó.( chứ không muốn đưa file lên để nhận kết quả) do em có làm lại nhưng không có được.
Cám ơn thầy đã chỉ rõ. Để em thực hiện lại nó 1 lần nữa.
 
Lần chỉnh sửa cuối:
@batman1 có thể nhờ thầy chỉ giúp em thao tác chuẩn để có thể hoàn thành được cách trên không
Tại khi em xóa hết DV đi. làm lại như cả của thầy @HieuCD mà em nó lại ra đúng cái lỗi em báo bằng hình ảnh
 
@batman1 có thể nhờ thầy chỉ giúp em thao tác chuẩn để có thể hoàn thành được cách trên không
Tại khi em xóa hết DV đi. làm lại như cả của thầy @HieuCD mà em nó lại ra đúng cái lỗi em báo bằng hình ảnh
Chọn vùng có DV (B1:B21 trong tập tin đầu) -> thẻ Data -> Data Validation -> thẻ Error Alert -> bỏ chọn "Show error ..." ->
 
Chọn vùng có DV (B1:B21 trong tập tin đầu) -> thẻ Data -> Data Validation -> thẻ Error Alert -> bỏ chọn "Show error ..." ->
Cám ơn thầy nhiều nhiều ạ. Hơn 3h đồng hồ mới hiểu được cái này.
Cho em hỏi thêm 1 chút ạ. Trong bài của thầy @be09 em có thấy cái vụ "?*" là có ý nghĩa gì ạ
cám ơn thầy nhiều
 
Cám ơn thầy nhiều nhiều ạ. Hơn 3h đồng hồ mới hiểu được cái này.
Những cái qua trọng cần lưu ý:
- trước khi đặt name thì chọn ô đầu tiên của vùng cần có DV.
- trong công thức cho name thì nếu DV cho 1 dòng, vd. B1:Z1, thì cột phải là tương đối, nếu DV cho 1 cột, vd. B1:B21, thì dòng phải là tương đốo, còn nếu DV cho vùng nhiều hàng và cột, vd. B1:C21 thì cả dòng và cột đều tương đố.
- Có thể chọn cả vùng cần DV rồi Data Valiadation -> = LIST. Không cần nhập cho mỗi B1 (hay B2 ở bài bạn HieuCD) rồi copy gì cả.
----------
? đại diện cho 1 ký tự bất kỳ. * đại diện cho 1 hoặc nhiều kký tự. Theo tôi chỉ cần "*" chứ không cần "?*". Tức đếm các ô có ÍT NHẤT 1 ký tự.
 
Những cái qua trọng cần lưu ý:
- trước khi đặt name thì chọn ô đầu tiên của vùng cần có DV.
- trong công thức cho name thì nếu DV cho 1 dòng, vd. B1:Z1, thì cột phải là tương đối, nếu DV cho 1 cột, vd. B1:B21, thì dòng phải là tương đốo, còn nếu DV cho vùng nhiều hàng và cột, vd. B1:C21 thì cả dòng và cột đều tương đố.
- Có thể chọn cả vùng cần DV rồi Data Valiadation -> = LIST. Không cần nhập cho mỗi B1 (hay B2 ở bài bạn HieuCD) rồi copy gì cả.
----------
? đại diện cho 1 ký tự bất kỳ. * đại diện cho 1 hoặc nhiều kký tự. Theo tôi chỉ cần "*" chứ không cần "?*". Tức đếm các ô có ÍT NHẤT 1 ký tự.
Dạ. cám ơn thầy ạ. em đã làm được rồi ạ.
Xin cám ơn mọi người đã giúp đỡ nhiều ạ @HieuCD , @be09
 
Web KT

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

Back
Top Bottom