Chọn các mục trùng lặp từ danh sách thả xuống trong một ô
Bước 1: Mở tệp Excel cần xử lý.
Bước 2: Tạo danh sách thả xuống với các nội dung cần thực hiện.
Bước 3: Kích chuột phải vào tên Sheets cần chạy mã VBA để chọn nhiều mục vào một ô từ danh sách thả xuống. Trong menu hiển thị chọn tùy chọn View Code.
Bước 4: Trong cửa sổ Microsoft Visual Basic for Applications hiển thị, bạn hãy sao chép và dán đoạn mã bê n dưới vào tập lệnh trống ở bên phải.
Private Sub Worksheet_Change(ByVal Target As Range)
'UpdatebyExtendoffice20180510
Dim xRgVal As Range
Dim xStrNew As String
On Error Resume Next
Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation)
If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub
If Intersect(Target, xRgVal) Is Nothing Then Exit Sub
Application.EnableEvents = False
xStrNew = Target.Value
Application.Undo
xStrNew = xStrNew & " " & Target.Value
Target.Value = xStrNew
Application.EnableEvents = True
End Sub
Bước 5: Lưu mã và đóng cửa sổ để quay lại danh sách thả xuống. Bây giờ bạn có thể chọn nhiều mục từ danh sách thả xuống.
Ghi chú: Với VBA, nó phân tách các mục theo khoảng trắng, bạn có thể thay đổi xStrNew = xStrNew & " " & Target.Value bằng cái khác để thay đổi dấu phân cách khi bạn cần. Ví dụ đổi thành xStrNew = xStrNew & "," & Target.Value để phân tách các mục bằng dấu phẩy.
Nội dung chính
Nếu bạn chỉ muốn chọn các mục duy nhất từ danh sách thả xuống vào một ô, bạn có thể lặp lại các bước trên và sử dụng mã bên dưới.
Private Sub Worksheet_Change(ByVal Target As Range)
'UpdatebyExtendoffice20180510
Dim I As Integer
Dim xRgVal As Range
Dim xStrNew As String
Dim xStrOld As String
Dim xFlag As Boolean
Dim xArr
On Error Resume Next
Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation)
If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub
If Intersect(Target, xRgVal) Is Nothing Then Exit Sub
Application.EnableEvents = False
xFlag = True
xStrNew = " " & Target.Value & " "
Application.Undo
xStrOld = Target.Value
If InStr(1, xStrOld, xStrNew) = 0 Then
xStrNew = xStrNew & xStrOld & " "
Else
xStrNew = xStrOld
End If
Target.Value = xStrNew
Application.EnableEvents = True
End Sub
Nếu như ở phần đầu của bài viết hướng dẫn các bạn cách chọn nhiều mục vào một ô từ danh sách thả xuống trong Excel thì ở phần tiếp theo này, Gitiho sẽ hướng dẫn các bạn cách để chọn các ô ngẫu nhiên từ một danh sách trong Google Sheets và bảng tính Excel.
Bằng cách áp dụng công thức dưới đây, cho phép bạn trích xuất một số ô ngẫu nhiên trong Google Sheets:
Bước 1: Mở tệp Excel cần xử lý.
Bước 2: Kích vào ô trống mà bạn muốn nhận kết quả lựa chọn công thức sau:
=ArrayFormula(VLOOKUP(QUERY(UNIQUE(RANDBETWEEN(ROW(INDIRECT("A1:A"&COUNTA(A:A)*10))^0,COUNTA(A:A))),"limit 4"),{ROW(INDIRECT("A1:A"&COUNTA(A:A))),FILTER(A:A,A:A<>"")},2,0))
Bước 3: Sau đó nhấn phím Enter để lấy một tên bất kỳ.
Lưu ý: Trong đoạn mã trên, A:A là cột tên mà bạn muốn trích xuất tên, giới hạn 4 có nghĩa là 4 tên sẽ được trích xuất ngẫu nhiên, bạn có thể thay đổi khi cần.
Bước 4: Sau đó có thể copy và paste công thức trên vào các ô bất kỳ ở phía dưới, như hình ảnh hiển thị ở phía trên đây để trích xuất bốn tên bất kỳ trong danh sách.
Lưu ý: Bạn có thể nhấn tổ hợp phím Ctrl + R để chọn ngẫu nhiên các tên mới mỗi lần.
=INDEX($A:$A,RANDBETWEEN(1,COUNTA($A:$A)),1)
Khóa học phù hợp với bất kỳ ai đang muốn tìm hiểu lại Excel từ con số 0. Giáo án được Gitiho cùng giảng viên thiết kế phù hợp với công việc thực tế tại doanh nghiệp, bài tập thực hành xuyên suốt khóa kèm đáp án và hướng dẫn giải chi tiết. Tham khảo ngay bên dưới!