Thời gian đọc ước tính: 12 phút
Những Điểm Chính
- Thao tác thủ công: Sử dụng phím
Ctrlphù hợp cho các tập dữ liệu nhỏ và không lặp lại thường xuyên. - Hàm mảng động (Excel 365): Kết hợp hàm
CHOOSECOLS,SEQUENCEvàLETđể trích xuất dữ liệu tự động sang vùng mới. - Tự động hóa với VBA: Giải pháp cho các tập dữ liệu lớn cần chọn trực tiếp trên bảng tính gốc với khả năng tùy chỉnh khoảng cách cột.
- Độ chính xác dữ liệu: Các phương pháp đảm bảo chọn đúng cột chẵn/lẻ hoặc cột thứ N mà không làm xáo trộn cấu trúc bảng tính.
Khi làm việc với các bảng dữ liệu lớn trong Excel, nhu cầu chọn các cột không liền kề—như cột chẵn, cột lẻ, hoặc mỗi cột thứ ba—thường xuyên xuất hiện. Excel mặc định không cung cấp một nút bấm có sẵn cho thao tác này. Việc click chọn từng cột thủ công trên một bảng tính có hàng trăm cột là điều không khả thi và dễ gây nhầm lẫn.
Bài viết này sẽ hướng dẫn ba phương pháp cụ thể để giải quyết vấn đề trên, từ thao tác phím cơ bản đến các hàm nâng cao và lập trình tự động.
1. Chọn Cột Thủ Công Bằng Phím Control (Dành Cho Dữ Liệu Nhỏ)
Phương pháp đơn giản nhất để chọn các cột xen kẽ là sử dụng chuột kết hợp với bàn phím. Cách này hiệu quả cao khi bạn chỉ cần xử lý một vùng dữ liệu nhỏ (dưới 20 cột) và thao tác không cần lặp lại nhiều lần.
Dưới đây là ví dụ minh họa với một tập dữ liệu bán hàng, nơi chúng ta cần chọn các cột xen kẽ để định dạng hoặc sao chép.
Dữ liệu mẫu trong Excel cần chọn các cột xen kẽ
Quy trình thực hiện chi tiết:
- Chọn cột đầu tiên: Nhấp chuột trái vào tiêu đề của cột đầu tiên bạn muốn chọn (ví dụ: cột B). Lúc này toàn bộ cột sẽ được bôi đen.
Thao tác chọn toàn bộ cột đầu tiên bằng cách click vào tiêu đề - Kích hoạt chế độ chọn rời rạc: Nhấn và giữ phím
Ctrltrên bàn phím. Bạn cần giữ phím này trong suốt quá trình chọn các cột tiếp theo. - Chọn các cột tiếp theo: Trong khi vẫn giữ
Ctrl, hãy nhấp chuột lần lượt vào tiêu đề của các cột bạn muốn thêm vào vùng chọn (ví dụ: cột D, F, H…).
Các cột xen kẽ đã được chọn thành công bằng phím Ctrl - Hoàn tất: Sau khi đã chọn đủ các cột cần thiết, hãy thả phím
Ctrl. Bây giờ bạn có thể thực hiện các thao tác như tô màu, ẩn cột, hoặc sao chép dữ liệu.
Lưu ý quan trọng: Nếu bạn lỡ tay chọn nhầm một cột không mong muốn, hãy giữ nguyên phím Ctrl và nhấp lại vào tiêu đề cột đó. Excel sẽ bỏ chọn cột đó mà không làm mất các lựa chọn trước đó.
Phương pháp này cũng áp dụng được nếu bạn chỉ muốn chọn một vùng dữ liệu cụ thể thay vì toàn bộ cột. Bạn chỉ cần quét chọn vùng ô đầu tiên, giữ Ctrl, sau đó quét chọn các vùng ô tiếp theo tương ứng.
2. Trích Xuất Cột Tự Động Bằng Hàm TOCOL Và CHOOSECOLS (Excel 365)
Đối với người dùng Excel 365 hoặc Excel Web, các hàm mảng động cung cấp giải pháp mạnh mẽ để trích xuất dữ liệu mà không cần thao tác chuột phức tạp. Phương pháp này đặc biệt hữu ích khi bạn muốn tạo một bảng phụ chỉ chứa các cột xen kẽ từ bảng dữ liệu gốc.
Chúng ta sẽ sử dụng công thức mảng để lấy dữ liệu từ các cột cách nhau một khoảng cố định (ví dụ: lấy cột 1, 3, 5…).
Công thức Excel trích xuất các cột xen kẽ ra vùng riêng biệt
Cấu trúc công thức:
Bạn hãy nhập công thức sau vào ô muốn hiển thị kết quả:
=LET(rng,B1:M11,colgap,2,CHOOSECOLS(rng,SEQUENCE(,COLUMNS(rng)/colgap,,colgap)))
Giải thích cơ chế hoạt động:
Công thức trên sử dụng hàm LET để đặt tên biến, giúp công thức dễ đọc và dễ chỉnh sửa hơn:
rng, B1:M11: Định nghĩa vùng dữ liệu gốc làB1:M11. Bạn có thể thay đổi tham chiếu này tùy theo dữ liệu thực tế.colgap, 2: Xác định khoảng cách giữa các cột cần lấy. Số2nghĩa là lấy mỗi cột thứ 2 (cột 1, 3, 5…). Nếu bạn muốn lấy mỗi cột thứ 3, hãy đổi số này thành3.SEQUENCE(,COLUMNS(rng)/colgap,,colgap): Tạo ra một dãy số thứ tự đại diện cho chỉ số của các cột cần lấy (ví dụ: 1, 3, 5, 7…).CHOOSECOLS(...): Hàm này sẽ nhận vùng dữ liệurngvà trích xuất đúng các cột có chỉ số được tạo ra bởi hàmSEQUENCE.
Ưu điểm của phương pháp này:
- Tính động: Khi dữ liệu gốc thay đổi, bảng kết quả sẽ tự động cập nhật.
- Linh hoạt: Dễ dàng thay đổi từ việc lấy cột chẵn/lẻ sang lấy cột thứ N chỉ bằng cách sửa tham số
colgap. - Không phá hủy: Dữ liệu gốc được giữ nguyên, kết quả được tạo ra ở một vị trí mới.
Bạn có thể tìm hiểu thêm về hàm CHOOSECOLS tại tài liệu chính thức của Microsoft Support.
3. Chọn Cột Hàng Loạt Sử Dụng VBA (Giải Pháp Cho Tập Dữ Liệu Lớn)
Khi làm việc với hàng nghìn cột dữ liệu hoặc cần thực hiện thao tác chọn trực tiếp trên bảng gốc (để xóa hoặc định dạng) mà không dùng công thức, VBA (Visual Basic for Applications) là lựa chọn chính xác. Đoạn mã dưới đây giúp bạn tự động hóa quy trình này chỉ trong vài giây.
Mã VBA chọn cột theo chu kỳ N:
Sub SelectColumns()
Dim selectedRange As Range
Dim intervalInput As String
Dim interval As Integer
Dim col As Range
Dim resultRange As Range
Dim i As Integer
Dim columnCount As Integer
' Yêu cầu người dùng chọn vùng dữ liệu
On Error Resume Next
Set selectedRange = Application.InputBox("Vui lòng chọn vùng dữ liệu:", "Chọn Vùng", Type:=8)
On Error GoTo 0
' Kiểm tra nếu người dùng hủy thao tác
If selectedRange Is Nothing Then
MsgBox "Chưa chọn vùng dữ liệu. Đã hủy thao tác.", vbInformation
Exit Sub
End If
' Yêu cầu nhập khoảng cách cột
intervalInput = InputBox("Nhập khoảng cách cột:" & vbCrLf & _
"2 = mỗi cột thứ 2 (xen kẽ)" & vbCrLf & _
"3 = mỗi cột thứ 3, v.v...", "Khoảng Cách Cột")
' Kiểm tra nếu người dùng hủy hoặc để trống
If intervalInput = "" Then
MsgBox "Chưa nhập khoảng cách. Đã hủy thao tác.", vbInformation
Exit Sub
End If
' Xác thực đầu vào là số
If Not IsNumeric(intervalInput) Then
MsgBox "Vui lòng nhập một số hợp lệ.", vbExclamation
Exit Sub
End If
interval = CInt(intervalInput)
' Xác thực số dương
If interval < 1 Then
MsgBox "Khoảng cách phải từ 1 trở lên.", vbExclamation
Exit Sub
End If
' Xử lý logic chọn cột
i = 1
columnCount = 0
For Each col In selectedRange.Columns
If (i - 1) Mod interval = 0 Then
If resultRange Is Nothing Then
Set resultRange = col
Else
Set resultRange = Union(resultRange, col)
End If
columnCount = columnCount + 1
End If
i = i + 1
Next col
' Thực hiện chọn vùng kết quả
If Not resultRange Is Nothing Then
resultRange.Select
MsgBox "Đã chọn " & columnCount & " cột với khoảng cách là " & interval, vbInformation
Else
MsgBox "Không có cột nào được chọn.", vbInformation
End If
End Sub
Hướng dẫn cài đặt và sử dụng mã VBA:
- Mở trình soạn thảo VBA: Nhấn tổ hợp phím
Alt + F11trên bàn phím. - Tạo Module mới: Trong cửa sổ VBA, chọn menu Insert > Module.
- Dán mã: Sao chép toàn bộ đoạn mã trên và dán vào cửa sổ Module vừa hiện ra.
- Chạy Macro:
- Quay lại giao diện Excel.
- Nhấn
Alt + F8. - Chọn macro có tên SelectColumns và nhấn Run.
- Thao tác theo hướng dẫn:
- Một hộp thoại xuất hiện yêu cầu bạn quét chọn vùng dữ liệu muốn xử lý.
- Tiếp theo, nhập số bước nhảy (ví dụ: nhập
2để chọn các cột xen kẽ). - Excel sẽ tự động bôi đen các cột thỏa mãn điều kiện.
Cơ chế hoạt động của Macro:
Macro này sử dụng thuật toán chia lấy dư (Mod). Nó duyệt qua từng cột trong vùng bạn chọn. Nếu vị trí của cột chia cho khoảng cách (interval) có số dư phù hợp, nó sẽ thêm cột đó vào một vùng hợp nhất (Union Range). Cuối cùng, lệnh .Select sẽ kích hoạt việc chọn toàn bộ các cột đã được gom lại.
Phân Tích So Sánh Các Phương Pháp
Để giúp bạn chọn giải pháp phù hợp nhất, bảng dưới đây tóm tắt ưu và nhược điểm của từng cách:
| Đặc điểm | Chọn thủ công (Ctrl) | Hàm Excel (CHOOSECOLS) | VBA Macro |
|---|---|---|---|
| Độ khó | Dễ | Trung bình | Nâng cao |
| Tốc độ xử lý | Nhanh (với < 20 cột) | Rất nhanh | Rất nhanh |
| Tính tái sử dụng | Thấp | Cao (tự cập nhật) | Cao (lưu trong file) |
| Yêu cầu phiên bản | Mọi phiên bản | Excel 365 / Web | Excel Desktop (Windows/Mac) |
| Kết quả | Chọn vùng trực tiếp | Tạo vùng dữ liệu mới | Chọn vùng trực tiếp |
Việc nắm vững các kỹ thuật chọn vùng dữ liệu nâng cao là một bước quan trọng trong việc làm chủ Excel. Dù bạn là người mới bắt đầu hay chuyên gia phân tích dữ liệu, việc biết khi nào dùng phím tắt và khi nào dùng VBA sẽ giúp tiết kiệm hàng giờ làm việc thủ công.
Câu Hỏi Thường Gặp (FAQ)
Tôi có thể xóa các cột sau khi đã chọn bằng VBA không?
Có. Sau khi Macro chạy xong và các cột được bôi đen, bạn có thể nhấn chuột phải vào bất kỳ cột nào đang được chọn và nhấn Delete, hoặc dùng phím tắt Ctrl + - để xóa tất cả các cột đó cùng lúc.
Hàm CHOOSECOLS có hoạt động trên Excel 2019 không?
Không. Hàm CHOOSECOLS và LET chỉ khả dụng trên Excel 365 và Excel 2021 trở về sau. Đối với Excel 2019 hoặc cũ hơn, bạn cần sử dụng phương pháp VBA hoặc dùng cột phụ kết hợp với Filter.
Làm sao để lưu Macro để dùng cho lần sau?
Bạn phải lưu file Excel dưới định dạng Excel Macro-Enabled Workbook (.xlsm). Nếu lưu dưới dạng .xlsx thông thường, toàn bộ mã VBA sẽ bị xóa khỏi file.
Tôi muốn chọn cột bắt đầu từ cột thứ 2 thì làm thế nào?
Với phương pháp VBA, bạn chỉ cần quét vùng chọn bắt đầu từ cột thứ 2. Với công thức CHOOSECOLS, bạn có thể điều chỉnh tham số bắt đầu trong hàm SEQUENCE để thay đổi cột xuất phát.
Mã VBA có an toàn cho dữ liệu không?
Mã được cung cấp chỉ thực hiện thao tác “Chọn” (Select), không thay đổi hay xóa giá trị của ô, do đó rất an toàn. Tuy nhiên, luôn khuyến nghị sao lưu dữ liệu trước khi chạy bất kỳ macro nào trên tập dữ liệu quan trọng.
Nguồn Tham Khảo
- Microsoft Support. “CHOOSECOLS function”. Microsoft.com.
- Microsoft Support. “Use the Analysis ToolPak to perform complex data analysis”. Microsoft.com.
- Excel Developers. “VBA Range.Select Method”. Microsoft Learn.