Valiadation - chống nhập trùng (1 người xem)

Liên hệ QC

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

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,912
Tôi gữi file này lên nhờ mọi người tham khảo và đóng góp ý kiến!
Các bạn hảy chọn vào 1 trong những cell có Data Validation, chọn bất kỳ số nào trong đó.... Chuyển sang cell khác các bạn sẽ thấy số hồi nãy vừa nhập sẽ ko có trong Drop down list nửa... (list là những số từ 1 đến 100)
VD: Cell A2 tôi chọn số 5, sang cell A3, danh sách xổ xuống sẽ ko còn số 5 nữa... lúc này giã sữ tôi chọn số 10... Sang cell A4, danh sách xổ xuống sẽ ko sự hiện diện của 2 số 5 và 10
Vấn đề rắc rối nhờ các bạn giải quyết là: Tại cell A2 khi tôi chọn xong số 5, chuyễn sang cell khác số 5 ko còn trong danh sách nữa thì hợp lý rồi... nhưng giã sử tôi lại vẫn tiếp tục chọn cell A2 thì lý ra số 5 vẫn còn trong danh sách chứ... Ý tôi muốn nói là làm cách nào khi chọn vào 1 cell thì nó chỉ cấm nhập những số đã nhập ở những cell khác, ko cấm số đã nhập trong cell chính nó...
Mọi người có hiểu ý tôi ko nhỉ? Thật ra vấn đề cũng ko lớn gì cho lắm, nhưng tôi cảm thấy nó ko dc hoàn hảo!
Mong nhận dc sự giúp đở của các bạn... Chú ý là ko dùng VBA nha!
Mến
ANH TUẤN
 

File đính kèm

File của anh cũng rất hay nhưng em nghĩ, nếu chỉ dùng công thức thì chắc không giải quyết được vấn đề của anh rồi.
 
Chưa chắc à nha... Đễ ý tiếp xem... Tôi đang mường tượng nhưng ý tưởng chưa hình thành.. có cảm giác là dùng hàm vẫn dc đấy!
Mến
ANH TUẤN
 
tedaynui đã viết:
File của anh cũng rất hay nhưng em nghĩ, nếu chỉ dùng công thức thì chắc không giải quyết được vấn đề của anh rồi.

Thực ra cái này vẫn làm được, đó là dùng INDIRECT("A"&CELL("ROW"))
(Thay cho sự kiện Selection_Change)
Tuy nhiên, áp dụng cái này cho cái gì và có cần như vậy không thì cần phải xem lại vì hơi phức tạp và mất công.

Thân!
 
Hoàn toàn chính xác... Tôi mường tượng ra cái này là dựa vào file biểu đồ hôm trước... Bạn ấy dùng cell("row") có cảm giác giống như selection change trong VBA... Tôi chưa bắt tay vào làm nhưng tôi nghĩ sẽ bám vào cái Cell("row") này...
Áp dụng cho cái gì thì thật sự tôi cũng chưa biết... Chẳng qua chúng ta đang thử xem có dc hay ko, biết đâu 1 ngày nào đó sẽ dùng tới thì "móc" nó ra sửa sơ qua là sử dụng dc ngay...
ANH
 
Lần chỉnh sửa cuối:
Vấn đề này tôi đang vận dụng, nên chỉ có muốn edit cell nào thì nên xóa đi, vì giải pháp lấy list này là hàm count. Hơi rắc rối.
Làm như thế trong vakidation thì tiện vì đã nhập rồi thì list càng ngắn hơn.
 
Vậy có cách nào chuẩn chưa, cho file ví dụ minh họa nhen. Tranh cãi mãi chẳng hiểu gì cả.

TC.
 
Thien đã viết:
Vậy có cách nào chuẩn chưa, cho file ví dụ minh họa nhen. Tranh cãi mãi chẳng hiểu gì cả.
TC.
Đâu tranh cãi gì dâu, quá rõ ràng rồi, dựa vào định hướng của Mr.OkeBab (dùng hàm Indirect) là hoàn toàn khả thi. Bạn hãy thử xem.
TDN
 
Ông này nổi tiếng lười đây mà !!!
 
Mấy hôm nay đầu óc mụ quá, ko nghĩ ra dc món "chống nhập trùng" này... Ai "sáng dạ" 1 chút thì giúp 1 tay đi!
Mến
ANH TUẤN
 
Làm dc rồi... Thay đổi công thức tại cột J
J2 =IF(AND(INDIRECT("A"&CELL("row"))<>I2,COUNTIF($A$2:$A$101,I2)),"",MAX($J$1:J1)+1) rồi fill xuống

Có điều là vẫn phải bấm F9 thì mới thấy dc sự cập nhật, ngoài ra muốn cập nhật ngay lập tức chắc phải nhờ thanh đại đao VBA quá!
Thôi, như thế cũng tạm ổn... Dù sao thì cũng hơi vô lý 1 chút, cell A10 đang có dử liệu là số 8, chẳng lẽ lại muốn chọn số 8 lần nữa... đơn giản ko làm gì cả thì nó vẫn = 8 thôi... Hic...
Cái này nghiên cứu chơi đễ xem khả năng Excel tới đâu (chính xác là xem khả năng mình tới đâu chứ Excel nó thừa sức, chỉ tại mình ngu)
ANH TUẤN
 
anhtuan1066 ơi
Nếu người dùng nhập thẳng số vào thì cũng chẳng thấy báo gì cả.
 
Với cách đầu tiên thì nó sẽ "báo".. còn sau khi sửa lại có INDIRECT thì nó tịt... dc cái này mất cái kia thôi... Trong đây vẫn còn nhiều thứ chưa hoàn hảo lắm.. nên mong các cao thủ góp ý thêm...
Mến
ANH TUẤN
 
Gửi thêm các bạn một giải pháp chống nhập trùng nữa

Sưu tầm được link của anh bạn, cho dù có vẻ hơi củ chuối nhưng cũng lỗ mõ xin gửi lên cho bằng anh bằng em!
http://www.sfdp.net/Libs/gen/exl/dbCadastralX.xls
 
Lần chỉnh sửa cuối:
Cho em hỏi thêm : nếu như không phải lọc trùng mà lọc theo số lần cho phép xuất hiện thì sao? Ví dụ ở vùng A2:A101 quy định được nhập 3 lần giá trị 5, nếu đã nhập đủ 3 ô giá trị 5 thì 5 mới không xuất hiện trong list nữa.
 
Web KT

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

Back
Top Bottom