Áp dụng Hàm Data validation trong trường hợp này như thế nào?

  • Thread starter Thread starter ObserveR
  • Ngày gửi Ngày gửi
Liên hệ QC

ObserveR

Thành viên mới
Tham gia
3/8/13
Bài viết
6
Được thích
0
Chào các bạn, mình mới tham gia diễn dàn, học hỏi được rất nhiều thủ thuật lợi ích từ đây.
Tuy nhiên hiện này trong công việc cần xử lý một số hàm Data Validation để thuật lợi hơn:
Vd như mình đã thiết lập các trường
1.Tỉnh/ thành
2.Tuyến
3.BV

Và sau đó muốn bung dạng list khi sử dung Data Validation để tiện cho việc điền thông tin: với tỉnh thành này --> ra các tuyến tương ứng thuộc tỉnh đó --> chọn 1 trong danh sách các tuyến --> chọn tiếp các BV thuộc tuyến và thuộc tỉnh đã chọn.
Mình đã nghiên cứu để làm ra được, tuy nhiên vướng mắc hiện giờ của cách làm này là :
1/Thô sơ, làm với dữ liệu nhiều và đa dạng sẽ rất cực (64 tỉnh thành + vô số các tuyến là muốn mệt mỏi)
2/Không ra dạng list Tiếng Việt: Define name không dùng được tiếng Việt (gõ dấu và cách chữ ra ( và một số cái không cho phép .v.v.)
3/Khó nâng cấp, thay đổi dữ liệu lại phải define name lại.

Thêm một khúc mắc nữa là trong bảng của mình có mức độ ưu tiên các BV, vd với mức độ số 1: thì cell bên cạnh sẽ truy xuất tất cả BV cùng mức độ ưu tiên 1 và đổ vào 1 cell ( như trong bảng). Vậy có cách nào thực hiện như mong muốn trên không?

Rất mong mọi người có thể giải đáp thắc mắc trên của mình, có cách nào làm cho công việc đơn giản hơn và trình bày tiếng việt được ổn hơn không?
Rất cám ơn mọi người đọc và trợ giúp.
 

File đính kèm

Lần chỉnh sửa cuối:
Mình thấy tất cả các name của bạn đặt trong bảng đều là name chết, bạn có nghĩ tới phương án dùng name động để cập nhật thêm dữ liệu không, sử dụng hàm Offset(),Counta()... đó. Trong ebook hướng dẫn về validation có đề cập rất rõ, bạn tham khảo nhé!
 
Nếu không phiền bạn có thể ví dụ cho mình được không? Mình có thể làm mẫu theo của bạn.
Sách tham khảo về data validation mình tìm sereach không ra, nếu bạn tốt bụng có thể cho mình xin link liên quan được không?
 
Nếu không phiền bạn có thể ví dụ cho mình được không? Mình có thể làm mẫu theo của bạn.
Sách tham khảo về data validation mình tìm sereach không ra, nếu bạn tốt bụng có thể cho mình xin link liên quan được không?
Không tìm thấy link đâu nữa, mình gửi luôn tài liệu cho bạn đây!
 

File đính kèm

Làm theo hướng dẫn trong tài liệu thì vẫn bó tay vì trường "tuyến" trùng lặp với nhau, danh sách list của mình sổ ra quá nhiều các "tuyến"... vẫn đang bó tay chưa tìm được giải pháp
 
Làm theo hướng dẫn trong tài liệu thì vẫn bó tay vì trường "tuyến" trùng lặp với nhau, danh sách list của mình sổ ra quá nhiều các "tuyến"... vẫn đang bó tay chưa tìm được giải pháp
Thêm một khúc mắc nữa là trong bảng của mình có mức độ ưu tiên các BV, vd với mức độ số 1: thì cell bên cạnh sẽ truy xuất tất cả BV cùng mức độ ưu tiên 1 và đổ vào 1 cell ( như trong bảng). Vậy có cách nào thực hiện như mong muốn trên không?
Thực ra trong file bạn cũng mới có dữ liệu mẫu, rất khó để hướng dần cho bạn tường tận, tạm thời mình giúp bạn phần bôi đậm trước nhé, với mức ưu tiên 1,2 thì bạn có thể làm theo cách của mình.
PHP:
Sub Loc()
Dim i As Long, j As Long, k As Long
Dim sArr(), dK()
dK = Range("G14:G" & [G65536].End(3).Row).Value
sArr = Range("A2:D" & [D65536].End(3).Row).Value
ReDim darr(1 To UBound(dK), 1 To 1)
k = 1
For j = 1 To UBound(dK)
    For i = 1 To UBound(sArr)
        If sArr(i, 4) = dK(j, 1) Then
            darr(k, 1) = sArr(i, 2) & Chr(10) & darr(k, 1)
        End If
    Next
        k = k + 1
    Next
[H14].Resize(k - 1, 1) = darr
End Sub
Còn những phần còn lại chưa giải quyết bạn cần đưa dữ liệu chuẩn lên và mô tả yêu cầu chi tiết nhé.
 

File đính kèm

Làm theo hướng dẫn trong tài liệu thì vẫn bó tay vì trường "tuyến" trùng lặp với nhau, danh sách list của mình sổ ra quá nhiều các "tuyến"... vẫn đang bó tay chưa tìm được giải pháp
Ý của bạn chính xác là gì nhỉ.
Về file bạn gửi, mình thấy bạn đặt validation như kia không hiệu quả lắm:
1. Bạn tạo list tên tỉnh nhưng lại ko dấu, trong khi bên ô dữ liệu có dấu,sẽ ko có lợi về sau (mình nghĩ bạn có thể dùng cách copy dòng tên tỉnh sag hẳn một chỗ khác rồi Remove Dumplicate là ok nhất nếu số lg tỉnh quá nhiều)
2. Như vậy:
Ô tỉnh thành: =tinh
Ô BV =OFFSET(A1,MATCH(F10,A2:A12,0),1,COUNTIF(A2:A12,F10),1)
Ô tuyến =vlookup(h10,B2:C12,2,0)
?? Bạn chuyển vị trí 2 thằng BV với tuyến đi chứ nhỉ.
Thân!
 
Cám ơn bạn đã thiết lập mẫu cho mình, mình sẽ áp dụng cách này hiệu quả nhanh hơn. Tuy nhiên mình cũng muốn tìm hiểu để sử dụng trường hợp tổng quát sau này, vd như thay giá trị ưu tiên "1" bằng chữ hoặc vừa chữ vừa số, có cách nào dùng hàm vlookup kết hợp với các hàm khác không?
 
Lần chỉnh sửa cuối:
Ý của bạn chính xác là gì nhỉ.
Về file bạn gửi, mình thấy bạn đặt validation như kia không hiệu quả lắm:
1. Bạn tạo list tên tỉnh nhưng lại ko dấu, trong khi bên ô dữ liệu có dấu,sẽ ko có lợi về sau (mình nghĩ bạn có thể dùng cách copy dòng tên tỉnh sag hẳn một chỗ khác rồi Remove Dumplicate là ok nhất nếu số lg tỉnh quá nhiều)
2. Như vậy:
Ô tỉnh thành: =tinh
Ô BV =OFFSET(A1,MATCH(F10,A2:A12,0),1,COUNTIF(A2:A12,F10),1)
Ô tuyến =vlookup(h10,B2:C12,2,0)
?? Bạn chuyển vị trí 2 thằng BV với tuyến đi chứ nhỉ.
Thân!


Ok cám ơn bạn đã bày cách, mình đã làm theo bạn nhưng chắc bạn hiểu sai ý mình, trong vd của mình cũng trình bày rõ:
Dùng hàm data validation: sẽ trích xuất từ tập hợp A (tỉnh) lớn nhất (vd như chọn 1 trong 64 tỉnh thành) --> tiến hành lọc phân cấp độ (vd như TW, tỉnh, huyện) --> cell thứ 3 sẽ là tập hợp B (tỉnh) - tất cả đơn vị BV thuộc tỉnh đó sẽ xổ ra ( các đơn vị thuộc tuyến khác sẽ không xuất hiện). Nếu làm tiếp có thể phân cấp tiếp trong 1 BV ( thuộc tỉnh đó) bung ra 1 list liên quan đến các phòng ban liên quan trong BV đó.
Ngoài ra, vấn đề của define name như mình đã trao đổi là bị khúc mắc không dùng Tiếng Việt cách nhau được, nên phải đặt tên liền nhau như tiếng Anh. Trông sẽ không đẹp.
Rất mong có thêm sự giúp đỡ từ mọi người
 

File đính kèm

Lần chỉnh sửa cuối:
Cám ơn bạn đã thiết lập mẫu cho mình, mình sẽ áp dụng cách này hiệu quả nhanh hơn. Tuy nhiên mình cũng muốn tìm hiểu để sử dụng trường hợp tổng quát sau này, vd như thay giá trị ưu tiên "1" bằng chữ hoặc vừa chữ vừa số, có cách nào dùng hàm vlookup kết hợp với các hàm khác không?
Hi bạn!
Nếu làm theo cách của mình thì cột ưu tiên bạn nhâp cái gì thì sang bảng lọc bạn nhập y chang ưu tiên đó là được, kể cả số, vừa chữ vừa số, chỉ cần hai chỗ đó giống nhau là được bạn ạ!
 
Vẫn đang bí đề tài này, có ai giúp mình data validation dạng list như yêu cầu không?
 
Vẫn đang bí đề tài này, có ai giúp mình data validation dạng list như yêu cầu không?
Vấn đề ở chỗ thiết kế dữ liệu của bạn chưa hợp lý và logic để có thể đặt Validation, bạn xem thử file này có gợi ý cho bạn chút ý tưởng nào để cải thiện của bạn không nhé! Mình nghĩ bạn nên bố trí lại dữ liệu thì sẽ tốt hơn bạn à!
 

File đính kèm

Web KT

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

Back
Top Bottom