Làm thế nào để cải thiện chức năng Settings - List trong Validation?

Liên hệ QC
Name:
Mã:
=OFFSET(MC!$A$1,0,0,COUNTA(MC!$A:$A),1)
là Name động lấy vùng dữ liệu. Bạn có thể đặt Name tĩnh là abc =MC!$A$1:$A$351, nhưng name tĩnh không cập nhật thêm được khi thêm dữ liệu. Dữ liệu này phải Sort sẵn (A-Z), khi thêm mới thì phải Sort lần nữa.
Name:
Mã:
=OFFSET(MC!$A$1,MATCH(Schedule!B1&"*",MC,0)-1,0,COUNTIF(MC,Schedule!B1&"*"),1)
Trước khi gõ Name này phải đặt con trỏ vào dòng 1 (để nó tương ứng với ô Schedule!B1).
Mình nghĩ bạn đã hiểu các hàm OFFSET, MATCH, và COUNTIF có tác dụng như thế nào.

Vâng cảm ơn anh. em cung làm vậy copy name sang cell khác thì nó chạy lung. nên em lấy file của thầy ndu làm file viết biểu luôn
 
Anh xem giúp em file này sao ko được với ạ
 

File đính kèm

  • Validation.xlsx
    10.7 KB · Đọc: 115
Anh xem giúp em file này sao ko được với ạ
Bạn không xem kỹ rồi:
Một là bạn phải sort dữ liệu.
Hai là đặt con trỏ ở dòng đầu tiên của vùng nhập tìm.
Tôi thử đặt trỏ vào Sheet2 B1 của bạn và xem Name thì thấy:
Mã:
=OFFSET(Sheet1!$C$30,MATCH(Sheet2!A1048549&"*",MC,0)-1,0,COUNTIF(MC,Sheet2!A1048549&"*"),1)
Bạn sửa lại:
Mã:
=OFFSET(Sheet1!$C$30,MATCH(Sheet2!$B1&"*",MC,0)-1,0,COUNTIF(MC,Sheet2!$B1&"*"),1)
 
Bạn không xem kỹ rồi:
Một là bạn phải sort dữ liệu.
Hai là đặt con trỏ ở dòng đầu tiên của vùng nhập tìm.
Tôi thử đặt trỏ vào Sheet2 B1 của bạn và xem Name thì thấy:
Mã:
=OFFSET(Sheet1!$C$30,MATCH(Sheet2!A1048549&"*",MC,0)-1,0,COUNTIF(MC,Sheet2!A1048549&"*"),1)
Bạn sửa lại:
Mã:
=OFFSET(Sheet1!$C$30,MATCH(Sheet2!$B1&"*",MC,0)-1,0,COUNTIF(MC,Sheet2!$B1&"*"),1)

em copy nguyên văn code vào name nhưng thấy nó vẫn chạy vậy anh à. em ko hiểu sort dũ liệu là gì anh có thể giải thích cho em được ko
 
Thank anh Leonguyenz em làm được rùi anh à
 
em copy nguyên văn code vào name nhưng thấy nó vẫn chạy vậy anh à. em ko hiểu sort dũ liệu là gì anh có thể giải thích cho em được ko
Dữ liệu bên Sheet1 bạn phải Sort (A-Z) thì dữ liệu trong "chiều cao" của hàm OFFSET mới đúng. Không sort thì vẫn có dữ liệu, nhưng trong list sẽ không đúng yêu cầu.
Spam nhiều quá, sry, mong mod gộp mấy bài lại dùm, cảm ơn !
 
Thầy ơi, cách làm insert LIST và tạo ra drop list em biét rồi. Còn cách làm sao để gõ và giới hạn thì chưa ? Thầy chỉ cách được không ?
Thanks Thầy.
 
Data validation

em copy nguyên văn code của thầy Ndu vào name nhưng thấy nó vẫn chạy vậy anh à.nó báo lỗi , anh có thể giúp em được không
Cám ơn anh chị nhiều
em có gửi file dính kèm, em muốn dùng data validation ở sheet Dealer report
 

File đính kèm

  • file test cty.rar
    106.5 KB · Đọc: 50
Bài dạng này đã có nói nhiều rồi. Gữi bạn 1 file tham khảo
Cách dùng:
- Gõ 1 vài ký tự gợi nhớ vào cell
- Bấm mũi tên xổ xuống của Validation
- List sẽ thu gọn phù hợp với từ khóa vừa gõ
Xem đoạn video clip minh họa
Kể ra mà nó đưa luôn ra gợi ý (không cần bước dùng chuột ấn vào mũi tên), như kiểu mình gõ chữ đầu của tên hàm trong Cel thì tốt thày nhỉ
 
Chỉ cần gõ 1 chữ rồi nhấn tổ hợp Alt và mũi tên xuống thì list sẽ xổ ra để ta chọn không cần thiết phải click chuột vào mũi tên
 
Chỉ cần gõ 1 chữ rồi nhấn tổ hợp Alt và mũi tên xuống thì list sẽ xổ ra để ta chọn không cần thiết phải click chuột vào mũi tên
Ý mình ở đây là view ra gợi ý các kết quả như là mình đánh hàm số trong cel mà..
 
Thầy ơi, cho em hỏi cái vùng tên "LIST" phần chữ bị bôi "đỏ": Thầy xử lý như thế nào ạ, phần này em luôn bị cố định

phần OFFSET(MC!$A$1,MATCH(Schedule!H24&"*",MC,0)-1,0,COUNTIF(MC,Schedule!H24&"*"),1)

Em cảm ơn thầy ạ
 
Thầy ơi ! cái này đúng là thứ em đang rất cần, mà có điều em là người mới nên em không có rành những thuật ngữ của excel nhiều được, nên em chưa làm được, Thầy có cái Clip nào hướng dẫn chi tiết k thầy hay cái gì đại loại là làm từng bước áh Thầy, em cảm ơn thầy nhiều lắm
 
Muốn hiểu được bài này bạn phải hiểu hàm OFFSET, hàm MATCH, hàm COUNTIF trước đã
 
View attachment Valilation 1.xlsx
Các Thầy, các Pro xem dùm em với, xem dùm em sai chỗ nào mà nhập vào nó cứ ra lung tung ? sao nhập chữ là nó ra cả đống hic, cảm ơn nhiều lắm
 
Lần chỉnh sửa cuối:
View attachment 123994
Các Thầy, các Pro xem dùm em với, xem dùm em sai chỗ nào mà nhập vào nó cứ ra lung tung ? sao nhập chữ là nó ra cả đống hic, cảm ơn nhiều lắm

Bạn hỏi ở chủ đề đã bị khóa
Hic Copy qua lại thì làm được rồi áh, mình cảm ơn bạn lắm, nhưng mà bạn có biết cách làm từ đầu chứ k phải là copy từ file trên k bạn hic, nếu bạn biết thì làm ơn chỉ tôi với, giúp người giúp cho chót đi bạn, tại nhiều khi bất thình lình lỡ k có cái file đó thì hok biết sao giờ nữa, với lại nếu k biết cách thức làm thì mình k thể thêm sản phẩm vào thêm được ^_^!

Tôi đành trả lời trong chủ đề này.

Trích ở chủ đề đã bị khóa
Bạn xem Data Validation sẽ thấy = List. Tiếp theo xem name
Nhưng không phải lúc nào bạn cũng làm theo được cách này. Cách này chỉ dùng cho danh sách đã được SORT. Nếu danh sách của bạn không được Sort hoặc nếu bạn muốn tìm cả những mục khớp "ở giữa", vd. bạn gõ "gỗ" thì danh sách rút gọn có cả "gỗ tấm" và "bàn gỗ" thì bạn không dùng được cách này vì danh sách sẽ sai (mất vài mục và thêm vài mục "trời ơi")
Thậm chí bạn muốn sort cũng không đơn giản. Nếu danh sách có tiếng Việt thì phải có code để sort hoặc nếu dùng sort của Excel thì phải xoay xở thêm. Vì sort của Excel không sort được chính xác. Hậu quả là danh sách sẽ sai (mất vài mục và thêm vài mục "trời ơi").
Theo tôi nên dùng cách khác. Chả cần code cũng chả cần sort. Nhưng sẽ cần cột phụ.

Nếu bạn muốn làm theo cách trong tập tin thì cần gì phải biết?
Bạn có trong DV = LIST trong đó list là name thì cứ copy cái name ấy (và name MA) sang tập tin của mình thôi. Chỉ có điều phải kiểm tra name và sửa nếu cần cho đúng cấu trúc dữ liệu của mình. Trong name vd. thì danh sách ở sheet MA, trong của bạn có thể là sheet "Danh muc". Trong của người ta thì dữ liệu ở cột A, trong của bạn có thể là cột B. Thế thôi.

Nếu bạn đã biết copy và chỉnh sửa cho phù hợp nhưng bạn muốn học thì khó giải thích quá. Vì nếu bạn nắm vững về công thức thì nhìn 2 name bạn phải hiểu. Nhưng bạn đã hỏi thì tức nhìn công thức bạn không hiểu. Bạn không có chút kiến thức nào về công thức thì giải thích thế nào cho bạn hiểu? Đến nước đó thì chỉ có 1 khóa học giúp được thôi.

Tôi chỉ nói qua về 2 name. Name MA là định nghĩa vùng dữ liệu - danh sách. Name LIST là định nghĩa một mảnh liên tục của vùng dữ liệu mà thỏa điều kiện là mỗi dòng bắt đầu bởi các kỹ tự mà bạn đã gõ. Như thế LIST là vùng phụ thuộc vào những ký tự mà bạn gõ, và là vùng động.
Để tạo LIST thì "người ta" đã giải quyết bằng cách dùng MATCH để tìm dòng dữ liệu đầu tiên thỏa, sau đó mở rộng ra thành n dòng, với n là số dòng thỏa điều kiện. Cũng chính vì thế mà dữ liệu của bạn phải được sort. Vì sao? Ví dụ

Danh sách:
Mã:
xi măng
gạch
sỏi
gỗ
xi lanh
xi giầy
xi măng ngoại hạng

thì khi gõ "xi" thì LIST là danh sách bắt đầu từ dòng 1 và có 4 dòng (do đỏ đỏ)

Mã:
xi măng
gạch
sỏi
gỗ

Như vậy là mất 3 mục thỏa và thay vào đó là 3 mục "giời ơi đất hỡi"

Cũng chính vì dòng đỏ đỏ mà bạn không tìm được các dòng "khớp" ở giữa, bất luận dữ liệu có được sort hay không. Vì kết quả sẽ sai như trên.
------------
Về bài này thì bạn đã có DV đâu
Chọn vùng C5:C15 --> Data --> Data Validation: Allow --> List, Source --> =LIST, thẻ Error Alert --> bỏ chọn ở "Show error alert ..."
 
Em đã làm giống anh nói luôn rồi cũng mà sao vẫn chưa được hả anh ? em đã bỏ chọn dấu Show error alert... rồi những mỗi lần nhấn chữ cái đầu tiên nó cũng hiện ra 1 dọc các mục chứ không giới hạn được anh ơi !! hic vậy rốt cuộc bài này em đã lỗi gì vậy anh ?
 
Em hiểu rồi, em làm được rồi, em cảm ơn anh nhiều lắm
 
Web KT
Back
Top Bottom