Báo cáo doanh số hàng tháng của tôi có 500 cột dữ liệu từ 50 chi nhánh. Trước đây, việc trích xuất 12 cột quan trọng nhất mất 20 phút với copy, paste, ẩn cột thủ công. Giờ đây, cùng một tác vụ chỉ mất 3 giây nhờ hàm CHOOSECOLS trong Excel 2024.

Cú pháp cơ bản của CHOOSECOLS
Hàm CHOOSECOLS thuộc nhóm hàm mảng động mới trong Excel 365 và Excel 2024. Công thức trả về các cột được chỉ định từ một phạm vi hoặc mảng dữ liệu.
Cấu trúc công thức:
=CHOOSECOLS(mảng, số_cột_1, [số_cột_2], ...)
Các thành phần:
- Mảng: Phạm vi ô hoặc mảng nguồn cần trích xuất cột
- Số_cột_1: Vị trí cột đầu tiên cần lấy (bắt buộc)
- Số_cột_2 trở đi: Các cột bổ sung (tùy chọn)
Ví dụ đơn giản: =CHOOSECOLS(A1:F100, 1, 3, 5) trả về cột 1, 3, và 5 từ phạm vi A1 đến F100. Công thức tự động tràn kết quả sang các ô bên cạnh mà không cần kéo xuống.
Lấy cột từ phải sang trái bằng số âm
Điểm mạnh thực sự của CHOOSECOLS là khả năng đếm từ bên phải bằng số âm. Số -1 nghĩa là cột cuối cùng, -2 là cột áp cuối, và cứ thế tiếp tục.
Khi nào cần dùng số âm: Khi thêm cột mới vào đầu bảng hàng tuần, vị trí cột cũ thay đổi. Thay vì sửa công thức từ cột 45 thành cột 46, dùng -1 sẽ luôn lấy cột cuối.
Ví dụ thực tế:
=CHOOSECOLS(A1:Z500, 1, 2, -3, -2, -1)
Công thức này lấy:
- Cột 1 và 2 (tên và mã nhân viên)
- 3 cột cuối cùng (doanh số 3 tháng gần nhất)
Tôi dùng pattern này cho dashboard tự động. Mỗi tháng thêm cột mới vào cuối, công thức vẫn hoạt động mà không cần chỉnh sửa gì.
Kết hợp SEQUENCE để lấy nhiều cột liên tiếp
Việc nhập =CHOOSECOLS(A1:Z100, 5, 6, 7, 8, 9, 10, 11, 12) cho 8 cột liên tiếp rất tốn thời gian. Hàm SEQUENCE giải quyết vấn đề này.
Công thức tối ưu:
=CHOOSECOLS(A1:Z100, SEQUENCE(1, 8, 5))
Cách hoạt động:
- SEQUENCE(1, 8, 5) tạo dãy số: 5, 6, 7, 8, 9, 10, 11, 12
- Tham số 1: Số hàng (luôn là 1 cho cột ngang)
- Tham số 8: Số lượng cột cần lấy
- Tham số 5: Bắt đầu từ cột thứ 5
Để lấy cột chẵn hoặc lẻ, thêm tham số bước nhảy:
=CHOOSECOLS(A1:Z100, SEQUENCE(1, 13, 1, 2))
Công thức trên lấy cột 1, 3, 5, 7… đến 25 (13 cột lẻ đầu tiên).
So sánh với phương pháp truyền thống
Trước khi có CHOOSECOLS, tôi dùng ba cách để trích xuất cột:
Phương pháp 1: Copy và Paste thủ công
- Chọn từng cột cần thiết bằng giữ Ctrl
- Copy sang sheet mới
- Thời gian: 5-10 phút với 10 cột
- Vấn đề: Mất liên kết với dữ liệu gốc, phải làm lại khi data thay đổi
Phương pháp 2: Ẩn các cột không cần
- Chọn và ẩn 490 cột không dùng
- In hoặc export phần còn lại
- Thời gian: 15 phút
- Vấn đề: Dễ ẩn nhầm cột quan trọng, khó quản lý
Phương pháp 3: Công thức INDEX với COLUMNS
=INDEX($A$1:$Z$100, ROW(), CHOOSE(COLUMN(), 1, 5, 8, 12, 18))
- Phức tạp, khó đọc
- Phải kéo xuống toàn bộ phạm vi
- Lỗi khi cột nguồn thay đổi
Với CHOOSECOLS:
=CHOOSECOLS(A1:Z100, 1, 5, 8, 12, 18)
- Một công thức duy nhất
- Tự động tràn kết quả
- Cập nhật ngay khi dữ liệu gốc thay đổi
- Thời gian: 3 giây
Các tình huống sử dụng thực tế
Dashboard tài chính: File tổng hợp có 200 cột từ hệ thống kế toán. Dashboard chỉ cần 8 cột: mã dự án, tên, ngân sách, chi tiêu, và 4 quý gần nhất.
=CHOOSECOLS(DuLieu!A:GR, 1, 2, 5, 8, -4, -3, -2, -1)
Mỗi quý thêm cột mới, công thức tự động lấy 4 cột cuối mà không cần sửa.
Báo cáo so sánh: So sánh hiệu suất 10 chi nhánh từ bảng 50 chi nhánh. Thay vì ẩn 40 cột hoặc tạo bảng mới, dùng:
=CHOOSECOLS(A1:AX500, 1, 8, 15, 22, 29, 36, 43, 50, 57, 64)
Mỗi chi nhánh cách nhau 7 cột. Để tự động hóa:
=CHOOSECOLS(A1:AX500, SEQUENCE(1, 10, 1, 7))
Làm sạch dữ liệu import: File CSV từ hệ thống cũ có 80 cột với nhiều cột trống hoặc không dùng. Chỉ cần 15 cột có giá trị:
=CHOOSECOLS(Import!A:BX, {1;3;5;7;9;12;15;18;22;25;30;35;40;45;50})
Dấu chấm phẩy trong ngoặc nhọn tạo mảng dọc, cho phép liệt kê các cột không liên tiếp.
Xử lý lỗi thường gặp
Lỗi #VALUE! Xuất hiện khi số cột vượt quá tổng số cột trong mảng nguồn. Ví dụ: =CHOOSECOLS(A1:F100, 10) báo lỗi vì chỉ có 6 cột (A đến F).
Kiểm tra bằng hàm COLUMNS: =COLUMNS(A1:F100) trả về 6.
Lỗi #SPILL! Công thức không thể tràn kết quả vì ô bên cạnh đã có dữ liệu. Giải pháp: Xóa các ô trong vùng tràn hoặc di chuyển công thức sang vị trí trống.
Lỗi #NAME? Hàm CHOOSECOLS không tồn tại trong phiên bản Excel đang dùng. Hàm này chỉ có trong Excel 365 (build 2203 trở lên) và Excel 2024. Các phiên bản Excel 2019, 2016, 2013 không hỗ trợ.
Kết hợp với các hàm khác
CHOOSECOLS và FILTER: Lọc dữ liệu rồi chỉ lấy một số cột cần thiết:
=CHOOSECOLS(FILTER(A2:Z500, C2:C500="Hà Nội"), 1, 2, 5, 8)
Công thức lọc các hàng có “Hà Nội” ở cột C, sau đó chỉ hiển thị cột 1, 2, 5, 8.
CHOOSECOLS và SORT: Sắp xếp dữ liệu theo cột cụ thể trước khi trích xuất:
=CHOOSECOLS(SORT(A2:Z500, 5, -1), 1, 2, 5)
Sắp xếp giảm dần theo cột 5, sau đó lấy cột 1, 2, 5.
CHOOSECOLS và UNIQUE: Loại bỏ dòng trùng lặp rồi lấy cột cần thiết:
=CHOOSECOLS(UNIQUE(A2:Z500), 1, 3, 5)
Kết hợp này hữu ích khi làm sạch dữ liệu có nhiều bản ghi trùng.
Hiệu suất với bảng dữ liệu lớn
File 100MB với 500 cột và 50,000 hàng thường mở chậm trong Excel. Việc copy hoặc tham chiếu toàn bộ phạm vi làm file nặng hơn.
So sánh thời gian tính toán:
- Copy thủ công 12 cột: 20 phút thao tác
- INDEX/MATCH cho 12 cột: 15 giây tính toán mỗi lần mở file
- CHOOSECOLS: 0.2 giây tính toán
CHOOSECOLS hoạt động nhanh vì chỉ tham chiếu cột cần thiết thay vì toàn bộ phạm vi. Kích thước file giảm khi dùng công thức này thay vì copy dữ liệu.
Tương thích và yêu cầu hệ thống
Hàm CHOOSECOLS chỉ khả dụng trong:
- Excel 365 (Windows build 2203 trở lên, Mac build 16.60 trở lên)
- Excel 2024 (tất cả phiên bản)
- Excel for Web
Không hỗ trợ trong:
- Excel 2021 và các phiên bản cũ hơn
- Excel 2019, 2016, 2013
Để kiểm tra phiên bản: File > Tài khoản > Thông tin về Excel. Nếu thấy “Microsoft 365” hoặc “Excel 2024”, bạn có thể dùng CHOOSECOLS.
Người dùng Excel 2019 hoặc cũ hơn có thể nâng cấp lên Microsoft 365 hoặc dùng các công thức thay thế như INDEX kết hợp COLUMNS, mặc dù phức tạp hơn nhiều.
Bắt đầu sử dụng CHOOSECOLS
Thử công thức đơn giản trước với dữ liệu nhỏ để làm quen. Tạo bảng test 10 cột, 20 hàng, sau đó dùng:
=CHOOSECOLS(A1:J20, 1, 5, 10)
Quan sát cách công thức tự động tràn kết quả. Sau đó thử số âm:
=CHOOSECOLS(A1:J20, 1, -2, -1)
Khi đã hiểu cơ bản, áp dụng vào dữ liệu thực tế. Bắt đầu với các báo cáo thường xuyên cần trích xuất cột cố định. Từ 20 phút thao tác thủ công xuống còn 3 giây với một công thức sẽ tiết kiệm hàng chục giờ mỗi năm.
