Hiểu thêm về Validation

  • Thread starter handung107
  • Ngày gửi
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Giả sử bạn có 1 danh sách từ A1:A120, trong đó bạn nhập các tiểu khoản của các tài khoản Td : Ở A1 là 111.1 - Tiền mặt VN, A2 là 111.2 - Tiền mặt ngoại tệ...., A4 là 112.1 - Tiền gởi VN ...A6 là 112.3 - Vàng bạc, kim loại quý...
Bây giờ bạn hãy đặt tên cho từng mảng theo các tài khoản từ 111.1 đến 111.3 là TK111, 112.1 đến 112.3 là TK112...cho đến hết.
Tại cột B1 : B50 , bạn nhập danh sách tên các tài khoản vừa đặt TK111, TK112, TK113, TK121..., nhập xong bạn đặt tên cho dãy này là TK.
Tôi thí dụ bạn muốn đặt một danh sách các tài khoản cho các Cell tại cột D, từ D2 đến D200, và kèm theo cột E đó là danh sách các tiểu khoản phụ thuộc các tài khoản tại cột D, td nếu ở D2 là TK111 thì E2 sẽ có 1 DS từ 111.1 - Tiền mặt VN đến 111.3 - Vàng bạc, kim loại quý.
Bạn sẽ làm như sau : (rất tiếc tôi không sao minh hoạ được vì không thể gởi kèm hình)
Tại D2 bạn vào Data/Validation/Allow, chọn List, Source của bạn là =TK.
Tại E2 bạn cũng vào Data/Validation/Allow/List, Source của bạn là =INDIRECT(D2). Từ D2 và E2 bạn rê chuột đến D200 và E200 để áp dụng thuộc tính Validation này cho vùng chọn. Về chức năng Validation còn rất nhiều điều thú vị khác, nhưng thực sự tôi không biết cách diễn giải sao cho rõ ràng nên ngại viết, mong các bạn giúp tôi và thông cảm cho tôi. Hẹn các bạn dịp khác
 
Khóa học Quản trị dòng tiền
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Phần 2 :
Nếu ở cột B2 : B50 bạn muốn nhập DS các tài khoản có khoảng cách ở giữa cho nó đẹp một chút, td TK 111, TK 112..., cũng đặt tên cho dãy này là TK thì tại D2, đaặat Validation / Source =TK, bạn sẽ được 1 List gồm TK 111, TK 112,.... Tại E2, để hiển thị được danh sách phụ thuộc ấy bạn phải sửa lại đôi chút,( vì khi đặt tên tại NameBox cho vùng từ 111.1 đến 111.3 bạn chỉ có thể đặt tên là TK111..., không có khoảng cách). Bạn sửa như sau : Validation/Source =INDIRECT(SUBSTITUTE(D2," ",""))
Phần 3 :
Tại NameBox, bạn cũng không thể đặt tên vùng là một số td 111 cho vùng từ 111.1 đến 111.3, nhưng bạn lại muốn tại cột D chỉ hiện ra danh sách 111, 112,113... không có chữ TK kèm theo.
Bạn cũng đặt tên cho các vùng giống như ở phần 1 và tại cột B bạn nhập danh sách hiển thị cho cột D là 111, 112, 113...Cũng đặt tên cho dãy này là TK.
Tại cột C, nếu ở B2 là 111, thì C2 là tên tương ứng đặt trong NameBox td TK111, nếu B3 là 112 thì C3 là TK112...Bạn đặt tên cho mảng B2:C50 là DMTK.
Như vậy khi đặt Source cho Validation tại D2 =TK, thì nó sẽ cho bạn List gồm 111, 112,.... Tại E2 bạn sẽ đặt Source là : = INDIRECT(VLOOKUP(D2,DMTK,2,0)), bạn sẽ được List như ở các phần trên
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Tôi rất tiếc không gởi file hay hình để minh hoạ cho các bạn dễ hiểu, nhưng tôi nghĩ loạt bài về Validation này rất hay, nên muốn chia xẻ với các bạn. Hôm nay, tôi giới thiệu với các bạn một kiểu Validation nữa.
Giả sử tại cột A, bạn có 1 danh sách từ A2:A21 gồm các mã KH, tuy vậy, bạn chỉ muốn trong danh sách DropDowns của Validation xuất hiện những Mã KH nào được bạn lựa chọn. Bạn hãy làm như sau, để tiện theo dõi, các bạn hãy mở Excel ra và cùng làm nhé :
1- Chọn Sheet 1 và đổi tên Sheet thành DM. Nhập Mã KH vào cột A, từ A2 : A21
2- Tại B2:B21, bạn đặt các CheckBox. Bạn vào View/Toolbars/Forms. Trên thanh công cụ Forms, bạn chọn Checkbox. Bạn lần lượt đặt các checkbox vào từng Cell B2 đến B21. Nhấp chuột phải vào các Checkbox và chọn Format Control/Control/Value, chọn Unchecked, tại Cell link, bạn nhập B2 cho checkbox đặt tại B2. Tương tự cho đến Cell B21.
3- Tại D2 bạn nhập công thức : =IF(B2=TRUE,ROW(),"")
4- Tại C2 bạn nhập công thức :[=IF(ISNUMBER(SMALL(IF($D$2:$D$21="","",ROW($D$2:$D$21)),ROW(1:1))),INDIRECT("A"&SMALL(IF($D$2:$D$21="","",ROW($D$2:$D$21)),ROW(1:1))),"")]. Đây là công thức mảng nên bạn phải kết thúc bằng Ctrl+Shift+Enter. Để giải thích công thức này bạn hãy xem lại các bài về công thức mảng với các hàm Indirect, Small và Row. Bạn kéo rê công thức từ C2, D2 đến C21, D21
5-Bạn vào Insert/Name/Define để đặt tên cho mảng MaKH. Tại hộp Refers to Bạn nhập công thức sau : =OFFSET(DM!$C$2,0,0,COUNTA(DM!$C$2:$C$21)-COUNTBLANK(DM!$C$2:$C$21),1)
6-Bây giờ bạn có thể đặt Validation vào bất kỳ một dãy nào trong cùng 1 Sheet hay ở những Sheet khác trong Workbook. Bạn chỉ cần chọn dãy đó và vào Data/Validation, trong phần Source bạn nhập =MaKH.
7- Bạn hãy thử lại kết quả của mình bằng cách chọn ở hộp Checkbox. Chỉ những mã KH nào được chọn (có kết quả là True), mới có tên trong danh sách trong Validation.
Hy vọng các bạn sẽ cảm thấy thích trước những tính năng của Validation
 
Sửa lần cuối:
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Chúng ta lại qua một dạng khác nữa của Validation. Cũng tại Sheet DM như tôi đã giới thiệu ở trên. Tại cột A1 bạn nhập tên cột là Mã KH, B1 là Tên KH. Từ A2:A21 nhập các Mã KH và B2:B21 nhập tên các KH. Đặt tên cho dãy B2:B21 là TenKH.
Chúng ta sẽ đặt Data/Validation cho dãy B2:B12 (côt 2), tại 1 Sheet khác được đặt tên là DS. Phần Source của Validation bạn nhập vào =TenKH
Bạn hãy Click chuột P lên Sheet Tab tại Sheet DS, bạn chọn View Code để vào cửa sổ Microsoft Visual Basic. Bạn Copy đoạn mã sau và Paste vào cưa sổ VBA vừa được mở. Những phần được sửa lại cho phù hợp với dữ liệu của các bạn sẽ là :
- Target.Column = 2 vì đó là cột B
-Worksheet và Range thay đổi tùy theo tên các bạn đặt cho Sheet nguồn và dãy.
-Taget.Value tại Worksheet DM và cột A, bắt đầu là Cell A1
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column = 2 Then
If Target.Value = "" Then Exit Sub
Application.EnableEvents = False
Target.Value = Worksheets("DM").Range("A1") _
.Offset(Application.WorksheetFunction _
.Match(Target.Value, Worksheets("DM").Range("TenKH"), 0), 0)
Application.EnableEvents = True
End If
End Sub

Bây giờ mặc dù bạn chọn từ DS Validation Tên của KH, nhưng nó sẽ hiện ra MãKH chứ không phải tên nữa. Hẹn các bạn lần sau
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Xin mạn phép đem bài của bạn tuankctcdn qua phần này để các bạn tập trung theo dõi về Data/Validation

Các bạn dùng Validation để biết nhiều thông tin chi tiết về một mã thì theo I làm như sau:
Thông thường trong "danh mục" cột 1 là Mã, cột 2, Tên, các cột còn lại để thể hiện những đặc điểm của mã. Bạn tạo thêm 2 cột ở cuối danh mục: cột 1 Mã, cột 2 là Thông tin. Ở cột mã bạn dùng tham chiếu =A2 để nhận mã gốc ở cột đầu tiên, cột Thông tin dùng =C2 & " " & D2 ....bạn muốn thông tin ở cột nào thì & với cột đó. Sau đó bạn dùng 2 cột cuối cùng này cho Validation.
Để có được 2 hay nhiều cột trong Validation. Đầu tiên bạn đặt tên một cột VD là "Vung" sau đó thực Validation, sau khi xong bạn chọn lại vùng thành dạng 2 cột (VD E:F) đặt tên cũng là "Vung".
Nút chọn của Validation thuộc họ "Combo Box". Trong bất cứ một nút chọn nào giống như vậy ở bất kỳ một phần mềm nào bạn dùng ALT+ Arrow down hoặc F4 là mở để chọn.
Nếu không dùng VBA I cũng chỉ làm được như vậy, bạn nào có phương án tốt xin đưa ra mọi người học hỏi.
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Dynamic Range

Tôi không biết nên dịch từ Dynamic Range thế nào cho sát nghĩa, nên đành sử dụng từ Dynamic Range vậy.
TD tại Sheet DSach các bạn đặt tên cho dãy A1:A10 là DSach, nhưng khi dữ liệu của bạn thay đổi, kéo dài thêm đến A11, A12..., mỗi lần như vậy, bạn lại phải vào Insert/Name/Define, nếu không những dữ liệu nào có liên quan đến DSach sẽ không được cập nhật.
Vì vậy chúng ta sẽ dùng Dynamic Range (tạm dịch là DS động) cho dữ liệu tại cột A. Bạn hãy vào Insert/Name/Define.
- Tại hộp Name in Workbook, bạn đặt DSach.
- Tại hộp Refers to bạn gõ vào công thức : =OFFSET(DSach!$A$1,0,0,COUNTA(DSach!A:A),1).

Nếu bạn muốn danh sách này tự động sắp xếp theo thứ tự tăng dần, bạn hãy đặt source code sau vào cửa sổ VBA của Sheet DSach

Private Sub Worksheet_Change(ByVal Target As Range)
Columns(1).Sort Key1:=Range("A1"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End Sub


Bây giờ bạn có thể thoải mái đặt Validation tại 1 cell bất kỳ trong cùng Sheet hay bất kỳ Sheet nào trong Workbook với Source cho Validation này là DSach. Chúc bạn thành công
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Phần này, chúng ta sẽ nói thêm về hàm VLOOKUP trong Database động. Như ở trên, các bạn đã được giới thiệu về Dynamic Range, nghĩa là DS động với 1 cột dữ liệu, nhưng với Database có 4, 5 cột dữ liệu và dùng hàm VLOOKUP thì sao ?
Tôi giả sử chúng ta có DS động tại cột A như bài trên, nhưng A1 là tiêu đề cột Td : MaKH, từ A2 trở đi, chúng ta mới nhập dữ liệu. Chúng ta sửa lại 1 chút trong hộp Refers to của Insert/Name/Define là : =OFFSET(DSach!$A$1,1,0,COUNTA(DSach!$A:$A)-1,1).
Database của chúng ta sẽ gồm cột B Tên KH, cột C Địa chỉ KH, cột D là Mã số thuế.
Chúng ta sẽ đặt tên cho Vùng gồm 4 cột này là Database.
Tại hộp Refers to bạn nhập công thức sau :
=OFFSET(DSach!$A$1,1,0,COUNTA(DSach!$A:$A)-1,COUNTA(DSach!$1:$1)).
Bây giờ, bạn đặt Validation để chọn MãKH, và dùng hàm VLOOKUP để lấy thông tin TênKH, Địa chỉ KH, Mã số thuế mà không lo phải đặt lại tên cho CSDL khi dữ liệu nhiều hơn số hàng mà chúng ta đã dùng để đặt tên cho mảng
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Chúng ta sẽ dùng ý tưởng trong bài 4 (trong Validation là DS Tên KH, nhưng khi Click vào Tên thì Mã KH lại hiển thị ). Bây giờ tôi muốn trong DS Validation có cả 2 cột : MaKH và Tên KH. Tôi sẽ dùng Source Code của bài 4 là :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column = 2 Then
If Target.Value = "" Then Exit Sub
Application.EnableEvents = False
Target.Value = Worksheets("DM").Range("A1") _
.Offset(Application.WorksheetFunction _
.Match(Target.Value, Worksheets("DM").Range("TenKH"), 0), 0)
Application.EnableEvents = True
End If
End Sub


Target.Column = 2 (cột B) là cột nguồn sẽ được thể hiện trong DS của Validation. Như vậy, nếu ta dùng cột B để ghép dữ liệu của 2, 3 cột tuỳ ý chúng ta sẽ có DS trong Validation thể hiện cả 2, 3 cột chúng ta ghép lại.
Tại Cell B2 ta chỉ cần đặt công thức =A2&" - "&C2&" - "D2 (Cột A là Mã KH, cột C là Tên KH, cột D là mã số thuế, hoặc bạn có thể lấy bất cứ thông tin tại bất cứ cột nào muốn ghép ) và kéo rê công thức xuống các Cell bên dưới. Đặt tên cho dãy B2:Bx là DS và sửa lại trong Range("TenKH") bằng "DS".
Nếu bạn không thích ghép dữ liệu tại cột B, bạn có thể chọn bất cứ cột nào khác, và sửa lại Target.Column = số thứ tự của cột.
Bây giờ bạn đã có 1DS trong Validation thể hiện cả MaKH, TenKH..nhưng thể hiện trên Active Cell sẽ là cột A, nếu bạn muốn thay đổi là cột khác thì sửa trong Range("A1") là Range("C1") hay D1...tuỳ thích.
DS Validation này sẽ cần chiều rộng của cột khá lớn, nếu Cell chỉ thể hiện Mã KH sẽ làm cho bảng DL của chúng ta không đẹp. Hẹn các bạn lần sau, chúng ta sẽ có cách khắc phục vấn đề này
 
K

ketoanquen

Guest
1/9/04
15
0
0
Ho Chi Minh City
Chị Dung ơi, trong bài viết ngày 15/12/04 của chị có hướng dẫn đoạn code để sort theo cột. Trong trường hợp mở rộng, nếu bảng có nhiều cột và để tất cả dữ liệu của bảng sort theo cột tự động sort theo cột đầu tiên thì làm thế nào?

Em cũng muốn biết thêm, trong diễn đàn có chỗ nào hướng dẫn học VB để em có thể hiểu được những đoạn code của chị, chẵng hạn như target.column, target.cell.count,..
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Bạn sửa lại đoạn mã trên như sau :private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("TenSheet").Range("Tenday").Sort Key1:=Range("A2"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End Sub
(Cột A là cột muốn sắp xếp, hàng 2 là hàng bắt đầu nhập liệu, hàng 1 là tiêu đề).
Đoạn mã này có 1 khuyết điểm là khi ta vừa nhập liệu vào cột A xong là dữ liệu bắt đầu sort liền, những Cell ở cột liên quan sẽ trống. Tôi đã muốn sửa lại sao cho nhập toàn bộ dữ liệu vào các cột xong, mới bắt đầu sự sắp xếp, nhưng chưa sửa được. Bạn nào có cao kiến gì, xin góp ý.
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Trên Sheet DSKH, tôi có các cột đã được đặt tên như sau : Cột A (Ten), cột B (DC), cột C (MST), và nhập liệu từ hàng thứ 2. Mảng (Ten,DC,MST) có tên là DS. Các dãy có thể là dãy động, nhưng bạn phải đặt cho mảng 1 số n =1500 chẳng hạn cho sự sắp xếp có thứ tự.

Tôi sửa lại đoạn mã trên như sau :

x = 2
y = 1
n = 1500
- x, y là toạ độ ô đầu tiên
- Td : ô đầu tiên là C5 thì x=5, y=3
- n : là số dòng tối đa mà trong DS bạn muốn sắp xếp

Dim flag As Boolean
Dim x As Integer
Dim y As Integer

flag = True
For i = 0 To n
If Worksheets("DSKH").Cells(x + i, y) = "" Or Worksheets("DSKH").Cells(x + i, y + 1) = "" Or Worksheets("DSKH").Cells(x + i, y + 2) = ""
Then
If Not (Worksheets("DSKH").Cells(x + i, y) = "" And Worksheets("DSKH").Cells(x + i, y + 1) = "" And Worksheets("DSKH").Cells(x + i, y + 2) = "")
Then
flag = False
End If
End If
Next i
If flag = True Then
Worksheets("DSKH").Range("DS").Sort key1:=Range("A2")
End If
End Sub

Như vậy, dữ liệu sẽ chỉ được sắp xếp sau khi bạn nhập đủ 3 cột. Vì tôi cũng chỉ biết sơ về VBA, nên cũng hy vọng qua vấn đề này được hiểu thêm những phương cách khác hay hơn từ các chuyên gia về VBA của diễn đàn
 
Sửa lần cuối:
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Bảo vệ dữ liệu trong Excel bằng Validation

Có một cách bảo vệ dữ liệu để người khác không được đụng vào mà chúng ta tận dụng khả năng có sẵn của Data / Validation.
- Chọn vùng dữ liệu bạn muốn bảo vệ.
- Chọn menu Data/ Validation.
- Trong thẻ Settings, chọn Allow là Text length, Data chọn between, Minimum, bạn đánh giá trị chiều dài tối thiểu của chuỗi (ví dụ là 10000), ô Maximum, nhập giá trị chiều dài tối đa của chuỗi (ví dụ 50000).
- Chọn tab Error Alert.
- Trong Style chọn Stop, ô Title bạn hãy nhập tiêu đề của ô thông báo (ví dụ CAM!), ô Error message, bạn nhập nội dung của ô thông báo (ví dụ: Ban khong duoc thay doi du lieu cua nguoi khac).
- Chọn Check box : Show error alert after invalid data is entered.
Sau cùng, để xoá những vùng dữ liệu đã được đặt Validation, bạn hãy chọn Clear All.
Thật thú vị , phải không các bạn ? Vâng, Excel luôn đem đến cho chúng ta những bất ngờ nếu chúng ta biết khám phá
 
W

WhoamI

Cao cấp
Đọc phần hướng dẫn của chi nhưng em vẫn có một số vướng mắc chưa giải quyết được ạ
1+ Có cách nào mà không phải dùng CheckBox Để bỏ các dòng trống không có dữ liệu trong dải danh sách đổ xuống của validation ?
2+ Hiện được tên trường: VD
TK: 154
Tên_TK: Chi phí sản xuất kinh doanh dở dang
Chi_tiết: Công trình A
3+ Chỉ sort danh sách trong dải danh sách của validation, không phải danh sách nguồn mà nó tham chiếu. Em chưa dùng thử đoạn mã trên nhưng theo em hiểu là nó sẽ sort danh sách trên DataSource?
4+ Chỉ cần gõ một vài ký tự đầu & ấn ALT+ Arrow down sẽ đến được danh sách đầu tiên có ký tự đầu là ký tự đó như kiểu Auto complete! (add-ins)
Em tham lam quá à, chắc các yêu cầu 3+4 phải dùng đến VBA rồi!
 
Sửa lần cuối:
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
WhoamI à, những yêu cầu của em là những mặt hạn chế của Validation, mà một mình nó không thể giải quyết được. Nó phải kết hợp với VBA, hay thêm một vài công cụ khác nữa, mới thể hiện hết cái ưu điểm và khắc phục nhược điểm của nó.
Đối với yêu cầu 2, chị gởi File Validation 3, trong đó minh hoạ phần nội dung ngày 17/12/2004 của bài này, em xem kỹ lại nhé.
Và chị giới thiệu thêm Validation kết hợp với ComboBox. Em hãy tìm hiểu ở những Source Code, và đặc biệt ở hộp Name, cũng như phần Data/ Validation.
Mấy hôm nay máy tính của chị bị nhiễm con Trojan, số File bị hư hỏng khá nhiều, nên không biết thế nào, nếu File không tốt, các em hãy cho biết để chị gởi lại
 
W

WhoamI

Cao cấp
handung107 nói:
WhoamI à, những yêu cầu của em là những mặt hạn chế của Validation, mà một mình nó không thể giải quyết được. Nó phải kết hợp với VBA, hay thêm một vài công cụ khác nữa, mới thể hiện hết cái ưu điểm và khắc phục nhược điểm của nó.
Em hiểu ạ! vì em đang nhập liệu hoàn toàn trên Excel nên mặt hạn chế của nó làm việc nhập liệu bất tiện nhiều - khi lựa chọn các giá trị trong dải danh sách đổ xuống của validation. Em biết khó có thể giải quyết ngay nhưng những thắc mắc của em hoàn toàn có cơ sở thành hiện thực và có thể phát triển chủ đề này chị à ! Tại em thấy excel cũng có sẵn rồi mà ko hiểu sao nó ko gắn với validaton thôi! trước mắt thi em phải nghiên cứu thật kỹ các File và bài chị gởi!
 
Sửa lần cuối:
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Nếu em phải nhập liệu nhiều tên KH cũng như nhiều MH, em xem lại có thể thực hiện "Tạo bảng chọn dữ liệu trên Excel" không nhé ? Không khó lắm đâu, nếu em làm được hãy cám ơn anh Levanduyet nhé, Chị chỉ giúp các em áp dụng những gì anh ấy gửi tặng cho EFC thôi, nếu không sẽ uổng phí lắm
 
W

WhoamI

Cao cấp
handung107 nói:
Nếu em phải nhập liệu nhiều tên KH cũng như nhiều MH, em xem lại có thể thực hiện "Tạo bảng chọn dữ liệu trên Excel" không nhé ? Không khó lắm đâu, nếu em làm được hãy cám ơn anh Levanduyet nhé, Chị chỉ giúp các em áp dụng những gì anh ấy gửi tặng cho EFC thôi, nếu không sẽ uổng phí lắm
Vâng, em sẽ thử ngay tối nay ạ! tại vì chưa biết tí VBA nào nên cứ nhìn thấy code là em hoa hết cả mắt! Thành ra phụ công anh Duyệt lắm lắm!
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
Giả sử bạn có 1 DS tại Sheet 1 từ B1:B10, và bạn muốn đặt Data / Validation tại Sheet 2, nếu bạn không đặt cho dãy B1:B10 một cái tên thì chắc chắn bạn không thể thực hiện được. Hộp Source của Data / Validation không bao giờ cho phép bạn nhập :
=Sheet1!B1:B10.
Nếu bạn không đặt tên cho dãy trên, bạn có thể khắc phục bằng cách dùng hàm INDIRECT. Bạn hãy gõ : =INDIRECT("Sheet1!B1:B10") và Excel sẽ chấp nhận nó để bạn có thể đặt Data / Validation bình thường như bạn đã đặt tên cho dãy này vậy.
Bạn hãy thử xem...
 

Xem nhiều

Webketoan Zalo OA