Kết Hợp QUERY, ARRAYFORMULA Và IMPORTRANGE: Xây Dashboard Tự Động Trên Google Sheets 2026
Bộ ba QUERY + ARRAYFORMULA + IMPORTRANGE biến Google Sheets thành công cụ phân tích dữ liệu chuyên nghiệp — không cần BI đắt tiền.
Bài viết hướng dẫn kết hợp 3 hàm nâng cao mạnh nhất để xây dashboard tự động cập nhật từ nhiều file, lọc dữ liệu động và loại bỏ thao tác kéo công thức thủ công.
Mục lục:
1. Vì Sao Cần Kết Hợp QUERY, ARRAYFORMULA Và IMPORTRANGE?
Phần lớn người dùng Google Sheets chỉ dừng ở các hàm cơ bản như SUM, VLOOKUP, IF. Nhưng khi dữ liệu nằm rải rác ở nhiều file, cần lọc theo nhiều điều kiện và cập nhật liên tục, các hàm này nhanh chóng trở nên cồng kềnh: công thức dài, file nặng, dễ sai khi kéo tay.
Ba hàm nâng cao dưới đây giải quyết đúng các điểm nghẽn đó, mỗi hàm đảm nhận một vai trò rõ ràng:
IMPORTRANGE
Kéo dữ liệu từ file khác về một nơi duy nhất — đóng vai trò "đường ống dữ liệu".
QUERY
Lọc, nhóm, tính tổng và sắp xếp bằng cú pháp giống SQL — đóng vai trò "bộ xử lý".
ARRAYFORMULA
Áp dụng một công thức cho toàn bộ cột mà không cần kéo — đóng vai trò "máy tự động".
Khi ghép lại, bạn có một luồng dữ liệu khép kín: gom dữ liệu → xử lý → trình bày, tất cả tự động cập nhật mỗi khi nguồn thay đổi. Đây chính là nguyên lý của một dashboard thật sự, thay vì báo cáo tĩnh phải làm lại mỗi tuần.
2. IMPORTRANGE — Gom Dữ Liệu Từ Nhiều File Về Một Nơi
Giả sử mỗi chi nhánh có một file bán hàng riêng. Thay vì copy-paste thủ công, bạn dùng IMPORTRANGE để kéo dữ liệu real-time:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/ID_FILE_NGUON", "DonHang!A2:F")
Lần đầu chạy, Google Sheets yêu cầu cấp quyền — bấm "Cho phép truy cập" (Allow access). Sau đó dữ liệu sẽ tự đồng bộ. Một số lưu ý quan trọng:
- Chỉ cần cấp quyền một lần cho mỗi cặp file nguồn — đích.
- Để gộp nhiều chi nhánh, dùng dấu chấm phẩy bọc trong cặp ngoặc nhọn:
{IMPORTRANGE(...); IMPORTRANGE(...)}. - Luôn import dư vài dòng (ví dụ
A2:Fkhông giới hạn dòng cuối) để tự nhận dữ liệu mới.
Nếu bạn chưa từng dùng hàm này, hãy đọc trước hướng dẫn chi tiết tại bài IMPORTRANGE — kết nối dữ liệu giữa các file Google Sheets để nắm phần cấp quyền và xử lý lỗi #REF!.
3. QUERY — Lọc Và Tổng Hợp Dữ Liệu Như SQL
QUERY là hàm mạnh nhất Google Sheets vì cho phép viết câu lệnh giống SQL ngay trong ô. Ví dụ tính tổng doanh thu theo từng sản phẩm, chỉ lấy đơn đã thanh toán:
=QUERY(DonHang!A1:F, "SELECT B, SUM(E) WHERE D = 'Đã thanh toán' GROUP BY B ORDER BY SUM(E) DESC LABEL SUM(E) 'Doanh thu'", 1)
Các mệnh đề thường dùng:
| Mệnh đề | Công dụng |
|---|---|
| SELECT | Chọn cột cần hiển thị |
| WHERE | Lọc theo điều kiện (ngày, trạng thái, số tiền...) |
| GROUP BY | Nhóm dữ liệu để tính tổng/đếm |
| ORDER BY | Sắp xếp tăng/giảm |
| LABEL | Đổi tên tiêu đề cột kết quả |
Mẹo chuyên nghiệp: tham chiếu giá trị từ ô để lọc động. Ví dụ ô H1 chứa tháng cần xem, bạn viết "... WHERE MONTH(A) = " & (H1 - 1) (QUERY đếm tháng từ 0). Khi đổi H1, dashboard tự lọc lại. Tìm hiểu sâu cú pháp tại hướng dẫn hàm QUERY lọc dữ liệu chuyên nghiệp.
4. ARRAYFORMULA — Tự Động Hóa Cả Cột, Không Cần Kéo Tay
Vấn đề kinh điển: bạn viết công thức ở ô đầu rồi kéo xuống hàng nghìn dòng. Khi có dòng mới, công thức không tự áp dụng. ARRAYFORMULA giải quyết triệt để — chỉ một công thức duy nhất ở dòng tiêu đề phụ:
=ARRAYFORMULA(IF(LEN(A2:A), E2:E * 0.1, ""))
Công thức trên tính 10% hoa hồng cho toàn bộ cột chỉ với một ô. Điều kiện IF(LEN(A2:A), ...) đảm bảo ô trống không bị hiển thị giá trị thừa. Kết hợp với IFERROR để giao diện luôn sạch:
=ARRAYFORMULA(IFERROR(VLOOKUP(B2:B, KhachHang!A:C, 3, 0), ""))
Đây là nền tảng để dữ liệu nhập mới tự động được tính toán mà không cần ai bảo trì công thức. Xem thêm các mẫu hữu ích tại bài ARRAYFORMULA tự động hóa công thức.
Muốn Dashboard Sẵn Có, Không Phải Tự Code Công Thức?
SheetStore dựng sẵn báo cáo realtime trên Google Sheets cho doanh nghiệp — tư vấn miễn phí 30 phút
Đăng Ký Demo Miễn Phí5. Kết Hợp 3 Hàm: Xây Dashboard Tự Động Hoàn Chỉnh
Bây giờ ghép cả ba thành một luồng duy nhất. Mục tiêu: một sheet "Dashboard" tự tổng hợp doanh thu từ nhiều chi nhánh, lọc theo trạng thái, và tính cột phụ — tất cả tự cập nhật.
Bước 1: Tạo lớp dữ liệu thô bằng IMPORTRANGE
Ở sheet ẩn "Data", gom tất cả chi nhánh:
={IMPORTRANGE("ID_CN1","DonHang!A2:F"); IMPORTRANGE("ID_CN2","DonHang!A2:F")}
Bước 2: Lồng QUERY vào IMPORTRANGE để xử lý ngay
Không cần sheet trung gian — QUERY đọc thẳng từ IMPORTRANGE:
=QUERY(
{IMPORTRANGE("ID_CN1","DonHang!A2:F"); IMPORTRANGE("ID_CN2","DonHang!A2:F")},
"SELECT Col2, SUM(Col5) WHERE Col4 = 'Đã thanh toán' GROUP BY Col2 ORDER BY SUM(Col5) DESC", 0
)
Lưu ý: khi dữ liệu nguồn là mảng (từ IMPORTRANGE), QUERY dùng Col1, Col2... thay vì A, B.
Bước 3: Dùng ARRAYFORMULA cho các cột tính toán phụ
Bên cạnh bảng kết quả, thêm cột "% đóng góp" tự động cho mọi dòng:
=ARRAYFORMULA(IF(LEN(B2:B), B2:B / SUM(B2:B), ""))
Bước 4: Vẽ biểu đồ trên kết quả QUERY
Vì bảng kết quả tự cập nhật, biểu đồ gắn vào nó cũng tự đổi theo. Tham khảo cách dựng biểu đồ và bố cục dashboard đẹp tại bài Charts & Dashboard chuyên nghiệp.
Kết quả: một dashboard sống, không cần thao tác tay hằng tuần. Mọi đơn hàng mới ở bất kỳ chi nhánh nào đều tự chảy vào báo cáo tổng.
6. Lỗi Thường Gặp Và Cách Khắc Phục
Lỗi #REF! "You must grant access"
Click vào ô chứa IMPORTRANGE → bấm "Cho phép truy cập". Mỗi cặp file chỉ cần cấp quyền một lần.
QUERY trả về #VALUE! "label/where" lỗi
Thường do trộn cột số và chữ. Ép kiểu rõ ràng, kiểm tra dấu nháy đơn quanh chuỗi trong WHERE, và đảm bảo số tham số header (0 hay 1) đúng.
ARRAYFORMULA "result was not expanded" (đè dữ liệu)
Có dữ liệu nằm chắn vùng cột bên dưới. Xóa nội dung thừa để công thức mảng mở rộng hết cột.
File chậm khi nhiều IMPORTRANGE
Giới hạn số file nguồn, import đúng vùng cần thiết thay vì cả sheet, và tránh lồng quá nhiều tầng hàm volatile.
Nếu gặp các lỗi công thức phổ biến khác, tham khảo thêm danh sách 20 hàm Google Sheets nâng cao cho dân văn phòng để mở rộng bộ công cụ.
7. Khi Nào Nên Nâng Cấp Lên Nền Tảng Chuyên Dụng?
Bộ ba hàm này cực mạnh, nhưng có ngưỡng giới hạn. Bạn nên cân nhắc nền tảng dựng sẵn khi:
- Số dòng dữ liệu vượt vài chục nghìn khiến file chậm rõ rệt.
- Nhiều người nhập liệu đồng thời, cần phân quyền chặt chẽ.
- Cần báo cáo phức tạp, phân quyền theo phòng ban, lịch sử chỉnh sửa.
- Muốn dashboard đẹp trên điện thoại mà không phải bảo trì công thức.
SheetStore giữ trọn sự linh hoạt của Google Sheets nhưng bổ sung dashboard realtime, phân quyền và báo cáo dựng sẵn — phù hợp khi đội nhóm lớn dần. Xem chi phí tại trang bảng giá.
Bắt Đầu Tự Động Hóa Báo Cáo Ngay Hôm Nay
Đội ngũ SheetStore giúp bạn dựng dashboard trên chính dữ liệu của mình
8. Câu Hỏi Thường Gặp
Hoàn toàn được. Bạn đặt IMPORTRANGE làm tham số dữ liệu của QUERY, khi đó dùng tham chiếu cột Col1, Col2... thay cho A, B. Cách này gọn và không cần sheet trung gian.
Vì sao IMPORTRANGE báo lỗi #REF! dù công thức đúng?Đó là yêu cầu cấp quyền lần đầu. Click vào ô chứa công thức rồi bấm "Cho phép truy cập". Sau khi cấp quyền, dữ liệu sẽ đồng bộ tự động và không hỏi lại.
ARRAYFORMULA và kéo công thức thủ công khác nhau thế nào?Kéo thủ công tạo công thức riêng ở từng ô và không tự áp dụng cho dòng mới. ARRAYFORMULA chỉ cần một công thức duy nhất, tự áp dụng cho toàn cột kể cả dữ liệu nhập sau này.
Dashboard bằng 3 hàm này chịu được bao nhiêu dữ liệu?Với vài nghìn đến hơn chục nghìn dòng vẫn mượt nếu import đúng vùng cần thiết. Khi vượt ngưỡng đó hoặc cần phân quyền nhiều người, nên cân nhắc nền tảng chuyên dụng như SheetStore.
Bài viết liên quan:
📚 Bài Viết Liên Quan
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.


