Hỏi về Data validation -> không cho trùng dữ liệu (3 người xem)

Liên hệ QC

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

Oh, may quá, làm đại mà cũng trúng, mà mình "hổng" phải Cậu (mình là Cò mà)
Vậy bạn muốn câu thông báo hiện ra như thế nào "zị"?
Kaka, Nếu trước đó là số 1, mình nhập số 1 ở cell tiếp theo nó sẽ báo lỗi, câu thông báo như zay chẳng hạn:"Thẻ này khách đã sử dụng chưa trả".
Thanks Co!
 
Kaka, Nếu trước đó là số 1, mình nhập số 1 ở cell tiếp theo nó sẽ báo lỗi, câu thông báo như zay chẳng hạn:"Thẻ này khách đã sử dụng chưa trả".
Thanks Co!

Tôi nghĩ bài này đã trả lời cho bạn câu hỏi này rồi nè!

Vào Data Validation, tại thẻ Setting, chọn trong Allow > Custom; Tại Formular bạn gõ =IF(A1=0,1,0)

Tại thẻ Error Alert > Chọn Style là Stop (đề nghị) > Title bạn gõ THÔNG BÁO (đề nghị), Error message bạn gõ BẠN PHẢI NHẬP LÀ SỐ 0

Tương tự với cột B, với công thức là =IF(B1=1,1,0) ..., msg bạn gõ lại là BẠN PHẢI NHẬP SỐ 1.

BẠN CHỈ LÀM 2 CELL A1 VÀ B1 THÔI, SAU ĐÓ BẠN COPY TỪ TRÊN XUỐNG DƯỚI, TỪ TRÁI SANG PHẢI THEO Ý CỦA BẠN.


Thân ái.
 
Híc, cái "thằng" validation này tạo bằng code thì phải vào code "xử" nó chứ lị, phạt Learning 5 ve và phải vào code sửa cho bạn ba.ho_eis

Cái này tác giả đưa File lên và nói rõ ý đồ của mình đi, em bảo đảm không cần dùng Code, mà dùng Validation là đủ rồi cần gì viết code cho nhọc công vậy Bác! Mất công lại phải viết thêm UniMsgbox nữa, rõ khổ, trong khi thằng Msg trong Validation vừa đẹp mắt vừa cho viết tiếng Việt!

Ẹc ẹc ....
 
Tác giả đã nói rõ ý rồi, và Cò già đã làm đúng ý. Learning không dùng code làm thử 1 file đưa lên đi.
Nếu mà làm không được, đề nghị Bác Cò phạt quỳ gai mít cho chừa. À không, quỳ nắp chai bia mới đúng tội .
 
Tác giả đã nói rõ ý rồi, và Cò già đã làm đúng ý. Learning không dùng code làm thử 1 file đưa lên đi.
Nếu mà làm không được, đề nghị Bác Cò phạt quỳ gai mít cho chừa. À không, quỳ nắp chai bia mới đúng tội .

CÓ NGƯỜI THẦY CHỈ THẤY PHẠT MÀ KHÔNG THẤY THƯỞNG NÈ!

Bài này sẽ so sánh viết code và không code nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Thật ra không biết được tác giả có chắc chắn rằng tới mỗi kỳ (ngày hay tháng hoặc năm... gì đó) có đánh dấu 0 hoặc 1 hay không, bởi nếu không đánh dấu gì thì ai biết được đã thuê hay không thuê, chính mình còn không xác định thì làm sao máy hiểu nhỉ? Em đang thắc mắc điểm này!
 
Như vậy nếu trường hợp cột C là rỗng thì cột D ở đây không gõ được số 0,
Ý mình là phải tất cả phải theo thư tự là: 1 0 1 0 1 0 .......lạo trừ những ô rỗng, tức là nếu A là 1 B rỗng thì muốn cho giá trị vào C thì C phải là số 0.
....
Ý mình là nếu cell đầu tiên là 1 thì cell tiếp theo nó phải là 0 mới chấp nhận, Không kể những ô không có giá trị
Ví dụ: Cell A1=1
Cell B, C rỗng chẳng hạn, thì Cell D phải là 0
Thanks mọi người!
Mình muốn dùng số 1, 0 để thể hiện tình hình sử dụng của thẻ T
Giả sử: Số 1: Thẻ T đang sử dụng
2: Thẻ T không còn sử dụng
Giả sử ngày 1/8/2010: thẻ này đã giao cho khách hàng A(thẻ đang sử dụng)----->1
3/8/2010: Khách A trả thẻ----->0

Nghĩa là 1 và 0 là tình trạng thẻ: đã cho mượn và đã trả. Thí dụ cũng rất rõ ràng: Ngày cho mượn đánh 1, ngày trả đánh 0. Ngày chưa trả hoặc chưa cho mượn thì không ghi để trống. Nhiệm vụ của validation là đi tìm ô có giá trị 1 hoặc 0 gần nhất bên trái để buộc ô này là 0 hay 1 (ngược lại).
Code Cò già làm đúng như vậy rồi.
Còn của ku Learning, nếu ngày 1 tình trạng là đã cho mượn, ngày 2 chưa trả (để trống), ngày 3 cũng có thể cho mượn lần nữa.
Môt chuyện nữa: có 1 thẻ, đã cho 1 ai đó mượn rồi, mà khi trả rồi, đánh 0 rồi, ngày kế muốn đánh 0 nữa cũng được, nghĩa là 2, 3 lần trả cho 1 lần mượn thẻ?

Vậy, quỳ đúng tội chưa?
 
Lần chỉnh sửa cuối:
Ngay từ lúc đầu bài 1, tác giả đã nói thế này:
Chào mọi người, mình có vấn đề này nhưng chưa có hướng giải quyết.
Ví dụ: Mình có 5 cột: A, B, C, D, E, F, ...
Yêu cầu là: Mình muốn dùng chức năng Validaiton để thông báo:
Phải theo thứ tự từ A, B, .....Z nếu A là gõ số 1 thì cột tiếp theo bắt buộc phải là số 0 hoặc để rỗng, nếu gõ số 1 thì hiện ra thông báo "Bạn phải nhập số 0"
Giả sử cột A là số 0 thì bắt buộc cột tiếp theo nó phải gõ số 1 mới được, nếu gõ số 0 thì hiện thông báo "Bạn phải gõ số 1"
Tương tự như thế cứ tiếp diễn theo quy luât: 1 0 1 0 1.....

Mong mọi người chỉ dẫn, Cảm ơn rất nhiêu, chúc GPEC có nhiểu tiến bộ hơn nữa!)(&&@@

Cho nên mới làm theo đó, còn triển khai thêm thì tác giả gửi File lên đi chứ!


Một số lý do đang thắc mắc:

1) Nếu một người hoàn toàn không biết code, thử hỏi sẽ ứng dụng như thế nào đây?

2) Mỗi kỳ tiếp theo phải kiểm tra chứ sao lại để một khoảng thời gian rồi mới đánh dấu? trong khi ô trống không có nghĩa là đã thuê hay chưa thuê?

3) Nếu mỗi kỳ đã kiểm tra thì mắc mớ gì gõ vào một thời điểm ở tương lai một con số nào đó làm chi? => không cần thiết!



---------------------------------------

À, nếu thêm số 2 nữa thì thêm công thức vào thôi, nếu đã là 2 phía trước "quánh" cái gì vào đó sẽ báo lỗi thêm "thẻ này không còn sử dụng!"

Sơ bộ thì code của bác concogia đáp ứng được yêu cầu của câu hỏi, nhưng thật ra code của Bác CÒ không phải là không có thiếu sót, ví dụ ở ô C4 có giá trị là 2 thì tại D4 vẫn gõ vào 1 được và E4 lại tiếp tục xuất hiện list với giá trị là 0 => đã mất thẻ sao cho thuê tiếp (1), và lại tiếp tục trả thẻ (0)?

Thêm nữa là nếu thẻ đang sử dụng bị mất, không thể gõ vào 2 được?
 
Lần chỉnh sửa cuối:
Ngay từ lúc đầu bài 1, tác giả đã nói thế này:


Cho nên mới làm theo đó, còn triển khai thêm thì tác giả gửi File lên đi chứ!


Một số lý do đang thắc mắc:

1) Nếu một người hoàn toàn không biết code, thử hỏi sẽ ứng dụng như thế nào đây?

2) Mỗi kỳ tiếp theo phải kiểm tra chứ sao lại để một khoảng thời gian rồi mới đánh dấu? trong khi ô trống không có nghĩa là đã thuê hay chưa thuê?

3) Nếu mỗi kỳ đã kiểm tra thì mắc mớ gì gõ vào một thời điểm ở tương lai một con số nào đó làm chi? => không cần thiết!


---------------------------------------

À, nếu thêm số 2 nữa thì thêm công thức vào thôi, nếu đã là 2 phía trước "quánh" cái gì vào đó sẽ báo lỗi thêm "thẻ này không còn sử dụng!"
Bạn Learning_Excel nói vậy cũng đúng, nhưng bạn thử nghĩ nếu 10,000 thẻ như vậy mình phải gõ 10,000 lần cho mỗi ngày vậy sao.
Mình chỉ muốn cho giá trị vào cell mà ngày đó thẻ có sự thay đổi thôi.
Mọi người có cách nào để thể hiện Thông báo theo như yêu cầu không.
Thanks GPEC!
 

File đính kèm

Cho nên mới làm theo đó, còn triển khai thêm thì tác giả gửi File lên đi chứ!
Không có file mà Bác Cò già vẫn làm đúng. Đâu nhất thiết phải có file? Thực ra phải đến 3, 4 bài mới hểu hết ý tác giả, chỉ là do diễn đạt không đúng thôi.
Một số lý do đang thắc mắc:
1) Nếu một người hoàn toàn không biết code, thử hỏi sẽ ứng dụng như thế nào đây?
Nếu 1 người không biết code, thì chép code Bác Cò về xài, vì vậy mới có GPE.
2) Mỗi kỳ tiếp theo phải kiểm tra chứ sao lại để một khoảng thời gian rồi mới đánh dấu? trong khi ô trống không có nghĩa là đã thuê hay chưa thuê?
Người ta muốn dùng validation để kiểm tra đấy! Ô trống có nghĩa là mượn chưa trả, hoặc trả chưa ai mượn. Một ô là 1 ngày mà, người ta có quyền mượn nhiều ngày mới trả chứ? Hoặc ế, để không cả tuần mới có người khác mượn thì sao?
3) Nếu mỗi kỳ đã kiểm tra thì mắc mớ gì gõ vào một thời điểm ở tương lai một con số nào đó làm chi? => không cần thiết!
Validation là để kiểm tra. Ai nói là người dùng gõ vào 1 ô ở tương lai? Nhưng khi test thì phải test mọi trường hợp.

Nói lại cho rõ là khi tình trạng 1 ô là 1, nghĩa là đã có cho mượn mất rồi, thì từ ô kế tiếp trở đi, chỉ được quyền để trống hoặc nhận trả về (0). Nếu 1 ô đã đánh 0, nghĩa là đã trả, thì từ ô kế tiếp trở về sau, đổi điều kiện validation, chỉ có thể để trống hoặc cho mượn đi (1) mà thôi.
 
Híc, cái "thằng" validation này tạo bằng code thì phải vào code "xử" nó chứ lị, phạt Learning 5 ve và phải vào code sửa cho bạn ba.ho_eis
Không có file mà Bác Cò già vẫn làm đúng. Đâu nhất thiết phải có file? Thực ra phải đến 3, 4 bài mới hểu hết ý tác giả, chỉ là do diễn đạt không đúng thôi.

Nếu 1 người không biết code, thì chép code Bác Cò về xài, vì vậy mới có GPE.

Người ta muốn dùng validation để kiểm tra đấy! Ô trống có nghĩa là mượn chưa trả, hoặc trả chưa ai mượn. Một ô là 1 ngày mà, người ta có quyền mượn nhiều ngày mới trả chứ? Hoặc ế, để không cả tuần mới có người khác mượn thì sao?

Validation là để kiểm tra. Ai nói là người dùng gõ vào 1 ô ở tương lai? Nhưng khi test thì phải test mọi trường hợp.

Nói lại cho rõ là khi tình trạng 1 ô là 1, nghĩa là đã có cho mượn mất rồi, thì từ ô kế tiếp trở đi, chỉ được quyền để trống hoặc nhận trả về (0). Nếu 1 ô đã đánh 0, nghĩa là đã trả, thì từ ô kế tiếp trở về sau, đổi điều kiện validation, chỉ có thể để trống hoặc cho mượn đi (1) mà thôi.
Bác Cò có code của trường hợp Validation này thì cho mình xin đi, vụ nay mình hơi kém.
Thanks GPEC!
 
Như em đã nói thêm tại đây:
....................
Sơ bộ thì code của bác concogia đáp ứng được yêu cầu của câu hỏi, nhưng thật ra code của Bác CÒ không phải là không có thiếu sót, ví dụ ở ô C4 có giá trị là 2 thì tại D4 vẫn gõ vào 1 được và E4 lại tiếp tục xuất hiện list với giá trị là 0 => đã mất thẻ sao cho thuê tiếp (1), và lại tiếp tục trả thẻ (0)?

Thêm nữa là nếu thẻ đang sử dụng bị mất, không thể gõ vào 2 được?

Theo em nghĩ vẫn có giải pháp không viết code, em đang nghiên cứu!!!
 
Ăn gian edit bài sau khi có trả lời nha! Phạm luật chơi là phạt nặng à nha!

Có thêm tình trạng 2 là mất thẻ ở đâu ra? Hình như chỉ có tình trạng 2 là không còn sử dụng.
Cứ cho là có đi, thì sửa code bác Cò 1 chút, thêm vào list cho phép con số 2, và nếu là 2 thì không cho nhập kí rì hết.

Ngoài ra làm cảnh báo luôn đây.
 

File đính kèm

Lần chỉnh sửa cuối:
Ăn gian edit bài sau khi có trả lời nha! Phạm luật chơi là phạt nặng à nha!

Có thêm tình trạng 2 là mất thẻ ở đâu ra? Hình như chỉ có tình trạng 2 là không còn sử dụng.
Cứ cho là có đi, thì sửa code bác Cò 1 chút, thêm vào list cho phép con số 2, và nếu là 2 thì không cho nhập kí rì hết.

Ngoài ra làm cảnh báo luôn đây.

OK, code của THẦY phát triển thêm từ code của Concogia, em tâm phục khẩu phục! Nhưng nói em ăn gian thì hỏng có phải Thầy ui, sau khi gửi bài xong em tiếp tục làm thử công thức (tới giờ vẫn chưa ra, mà có ra họa chăng chỉ có 1 msg chung), có Refresh đâu mà biết có bài đã trả lời rồi! Sau khi sửa lại thì một đống bài đã gửi lên! Bó tay luôn!

Theo em nghĩ tại cột C tình trạng ban đầu để làm mốc, và thêm 1 cột nữa làm cột tình trạng hiện tại để nhìn vào cột đó là biết liền; chứ mỗi lần dò 1 thẻ/ n thẻ, 1 kỳ/ m kỳ, cũng khá mệt mõi!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Ăn gian edit bài sau khi có trả lời nha! Phạm luật chơi là phạt nặng à nha!

Có thêm tình trạng 2 là mất thẻ ở đâu ra? Hình như chỉ có tình trạng 2 là không còn sử dụng.
Cứ cho là có đi, thì sửa code bác Cò 1 chút, thêm vào list cho phép con số 2, và nếu là 2 thì không cho nhập kí rì hết.

Ngoài ra làm cảnh báo luôn đây.
Thanks Ptm 0412 nhiều,
Mình học rất nhiều từ diễn đàn này, Chúc cho GPEC ngày càng phát triển hơn,Chúc ban quản trị thành công...!
 
Bài này vẫn có thể không dùng code. Tuy nhiên, chỉ dùng validation thì chỉ có 1 dạng cảnh báo chung. Đố Learning Excel làm được. Quỳ vẫn phải quỳ, nhưng lần này làm được có thưởng.
 
Bài này vẫn có thể không dùng code. Tuy nhiên, chỉ dùng validation thì chỉ có 1 dạng cảnh báo chung. Đố Learning Excel làm được. Quỳ vẫn phải quỳ, nhưng lần này làm được có thưởng.

Chiều tối qua, ngồi mò mẫm mãi, định kết hợp các hàm IF, AND, OR, COUNTIF, COLUMNS (tính số cột chẳn lẻ), ISODD... đang làm cũng chẳng biết có lối ra không, thấy bài của Thầy post lên hay quá, đáp ứng đầy đủ cách mà em định làm, thế là không muốn làm nữa, cũng chẳng save lại. Chắc rảnh rỗi làm lại để được "chai sữa bắp" hay "bánh canh giò heo" gì của Thầy xem có được không hen!!! Hihihihi
 
Nguyên lý là đi tìm ô có dữ liệu cuối cùng của dòng, từ cột C đến cột kề bên trái ô đang xét, xem là bao nhiêu, 0, 1, hay 2, rồi gán validation tương ứng.
Thí dụ đang gán validation cho ô K5, thì tìm từ C5 đến J5 xem giá trị ô cuối (có giá trị) là bao nhiêu.
Một tô hoặc 1 chai!
 
Web KT

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

Back
Top Bottom