Làm thế nào để tạo danh sách ko bị trống và duy nhất

Liên hệ QC

minhcong.tckt

Thành viên thường trực
Tham gia
13/4/11
Bài viết
385
Được thích
36
Giới tính
Nam
Giả sử em có 2 cột
cột 1 STT Cột 2 Mã khách (gồm 10 hàng)
mã khách của em là a, b, khoảng trắng, d, e,khoảng trắng,g,h,i,k

Làm thế nào để khi dùng chức năng Validation lọc theo List thì mình ko có các khoảng trắng đó nữa, các mã khách liền nhau luôn là: a,b,d,e,g,h,i,k


Chân thành cảm ơn sự giúp đỡ của các huynh tỷ
 
Cái này mình nghĩ không biết có cách làm trực tiếp vào trong validation không như nếu dùng cột phụ thì được. Mình gửi cho bạn file này công thức này mình học được từ anh NDU mong giúp ích được
 

File đính kèm

Cái này mình nghĩ không biết có cách làm trực tiếp vào trong validation không như nếu

file này công thức nếu để sẵn thì những dòng sau lại không hiểu cho giá trị là: #NUM!
 

File đính kèm

Kelly nói đúng rồi, vậy làm sao để khống chế không bị lỗi???
 
file này công thức nếu để sẵn thì những dòng sau lại không hiểu cho giá trị là: #NUM!
Tách đoạn IF(LEN($A$1:$A$300)<>0,ROW($1:$300),"") đặt thành 1 name có tên là Pos
Công thức tại F10 là:
PHP:
=IF(ROWS($1:1)>COUNT(Pos),"",INDEX($A$1:$A$300,SMALL(Pos,ROWS($1:1))))
Công thức cho Validation List là:
PHP:
=OFFSET($F$10,,,COUNT(Pos),)
Bỏ name List
Xong!
 

File đính kèm

Nếu lỗi thì ta bẫy lỗi mà nó hơi bị dài.Còn cách anh NDU thì hơi bị hay nó ngắn. Cái chỗ này hay nè cảm ơn anh NDU
PHP:
=IF(ROWS($1:1)>COUNT(Pos),"",
Cái COUNT(Pos) này ngoài việc bẩy lỗi ra, nó còn giúp cho Validation List không bị trống ở dưới (nhờ định vị chính xác số dòng trong Offset). Nếu không thì sẽ giống như file của bạn: Validation List chỉ có mấy phần tử mà khúc dưới nó trống quá nhiều
 
Nếu lỗi thì ta bẫy lỗi mà nó hơi bị dài.Còn cách anh NDU thì hơi bị hay nó ngắn. Cái chỗ này hay nè cảm ơn anh NDU
Ta bẫy lỗi hơi bị dài là tại ......Ta, sao không bẫy thế này khi chưa có name "Pos"
PHP:
=IF(ROW(A1)>COUNTA($A$1:$A$300),"",...
Khi bẫy lỗi xong nếu sử dụng vùng có công thức sẽ làm cho Validation mất tác dụng khống chế nên mới có cái name "Pos" làm cơ sở để chỉ chọn vùng có công thức trả về giá trị <> khoảng trắng
Híc
 
vậy nếu để nó nhảy ra chữ không bị trùng lấp thì sau bạn?
VD như ở cột a nhập nhiều tên hàng, nhưng cột F chỉ nhảy ra mỗi tên hàng là một dòng thôi
 

File đính kèm

vậy nếu để nó nhảy ra chữ không bị trùng lấp thì sau bạn?
VD như ở cột a nhập nhiều tên hàng, nhưng cột F chỉ nhảy ra mỗi tên hàng là một dòng thôi
Cái vụ lọc danh sách không trùng đã có đầy trên GPE rồi, thiết nghĩ không cần phải làm thêm nữa ---> Bạn tự tìm đi
 
Cái vụ lọc danh sách không trùng đã có đầy trên GPE rồi, thiết nghĩ không cần phải làm thêm nữa ---> Bạn tự tìm đi

Tự tìm thì thấy hình như toàn là 2 name:
Ten =OFFSET(Sheet1!$A$2,,,MATCH("ÿ",Sheet1!$A$2:$A$1000),)
VT =IF(Ten="","",IF(MATCH(Ten,Ten,0)=ROW(INDIRECT("1:"&ROWS(Ten))),MATCH(Ten,Ten,0),""))

Thử làm 1 Name:
Lấy file của ndu bài 5, chỉ sửa Name Pos như sau:

Pos =IF((NOT(ISBLANK(Sheet1!$A$1:$A$100))*(COUNTIF(INDIRECT("Sheet1!$A$1:$A"&ROW(Sheet1!$1:$100)); Sheet1!$A$1:$A$100)=1)); ROW(Sheet1!$1:$100); "")

Các công thức khác để nguyên.
 

File đính kèm

Lần chỉnh sửa cuối:
Tự tìm thì thấy hình như toàn là 2 name:
Ten =OFFSET(Sheet1!$A$2,,,MATCH("ÿ",Sheet1!$A$2:$A$1000),)
VT =IF(Ten="","",IF(MATCH(Ten,Ten,0)=ROW(INDIRECT("1:"&ROWS(Ten))),MATCH(Ten,Ten,0),""))

Thử làm 1 Name:
Lấy file của ndu bài 5, chỉ sửa Name Pos như sau:

Pos =IF((NOT(ISBLANK(Sheet1!$A$1:$A$100))*(COUNTIF(INDIRECT("Sheet1!$A$1:$A"&ROW(Sheet1!$1:$100)); Sheet1!$A$1:$A$100)=1)); ROW(Sheet1!$1:$100); "")

Các công thức khác để nguyên.
Dạ! 1 name đương nhiên là được sư phụ à! Nhưng nhớ có lần em đã nói: Chúng ta làm việc với CSDL nên việc đầu tiên phải xác định vùng chứa CSDL này, mọi thứ có liên quan sẽ được tính toán qua nó. Và từ đây về sau, nếu vùng dữ liệu thay đổi thì ta chỉ việc thay đổi 1 name duy nhất chứa CSDL gốc, những cái khác liên quan vẫn giữ nguyên
Chính vì lẽ đó mà em dùng 2 name. Với file khác, vùng dữ liệu khác, chỉ việc sửa duy nhất name Ten là xong
 
Danh sách duy nhất

em có ví dụ này nhờ các anh chị xem dùm.
 

File đính kèm

File đính kèm

em đã làm nhưng vẫn có kết quả

Em làm theo các bài hướng dẫn nhưng vẫn chưa có kết quả (em đã kiểm tra nhiều lần nhưng chưa phát hiện ra chỗ sai). Nhờ mọi người chỉ cho chỗ em sai nhé.
 

File đính kèm

Em làm theo các bài hướng dẫn nhưng vẫn chưa có kết quả (em đã kiểm tra nhiều lần nhưng chưa phát hiện ra chỗ sai). Nhờ mọi người chỉ cho chỗ em sai nhé.
Bạn có gửi nhầm file không đấy? File này và file tại bài #13 chẳng khác gì nhau cả. Ở bài trên, mình đã gửi 1 file lên rồi, sao bạn không tham khảo?
 
Bạn có gửi nhầm file không đấy? File này và file tại bài #13 chẳng khác gì nhau cả. Ở bài trên, mình đã gửi 1 file lên rồi, sao bạn không tham khảo?

Đúng là vậy rùi. Em đang test theo cách của các bài trên. Cách của anh cũng dễ hiểu đó. Thật đơn giản! Ah, anh cho em hỏi: Em áp dụng cách của anh vào ví dụ khác thì nó cũng hiện ra danh sách duy nhất rùi. Nhưng thi thoảng có ô nó không hiện. Nó hiện cách quảng nhau đó.
 

File đính kèm

Lần chỉnh sửa cuối:
Đúng là vậy rùi. Em đang test theo cách của các bài trên. Cách của anh cũng dễ hiểu đó. Thật đơn giản! Ah, anh cho em hỏi: Em áp dụng cách của anh vào ví dụ khác thì nó cũng hiện ra danh sách duy nhất rùi. Nhưng thi thoảng có ô nó không hiện. Nó hiện cách quảng nhau đó.
Mình chưa hiểu chỗ màu đỏ ở trên lắm. Bạn thử gửi 1 file có gặp vấn đề trên lên xem sao nhé.
 
Anh xem lại #17 (file đính kèm) sẽ rõ hơn chỗ màu đỏ đó đấy!
Mình cũng chưa rõ nguyên nhân là gì nhưng nó nằm ở ô A4 (đã kiểm tra bằng hàm =ISTEXT(A4) --> TRUE, nhưng =CODE(A4) lại cho ra #VALUE và =LEN(A4) cho ra 0, không biết ô này chứa cái thứ gì nữa). Mình thử nhấp đúp vào ô A4 và Enter thì thứ tự ở cột B lại được điền đúng.
 
Web KT

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

Back
Top Bottom