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 Ctrl phù 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, SEQUENCELET để 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ẽ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:

  1. 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 đềThao tác chọn toàn bộ cột đầu tiên bằng cách click vào tiêu đề
  2. Kích hoạt chế độ chọn rời rạc: Nhấn và giữ phím Ctrl trê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.
  3. 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 CtrlCác cột xen kẽ đã được chọn thành công bằng phím Ctrl
  4. 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ệtCô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ố 2 nghĩ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ành 3.
  • 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ệu rng và trích xuất đúng các cột có chỉ số được tạo ra bởi hàm SEQUENCE.

Ư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:

  1. Mở trình soạn thảo VBA: Nhấn tổ hợp phím Alt + F11 trên bàn phím.
  2. Tạo Module mới: Trong cửa sổ VBA, chọn menu Insert > Module.
  3. 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.
  4. 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.
  5. 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 CHOOSECOLSLET 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

  1. Microsoft Support. “CHOOSECOLS function”. Microsoft.com.
  2. Microsoft Support. “Use the Analysis ToolPak to perform complex data analysis”. Microsoft.com.
  3. Excel Developers. “VBA Range.Select Method”. Microsoft Learn.
Share.
Leave A Reply