Hướng dẫn

Google Sheets Nâng Cao 2026: QUERY, IMPORTRANGE, ArrayFormula và Apps Script Thực Chiến

Tuân HoangTuân Hoang
4 tháng 6, 2026
12 phút đọc
Ảnh minh họa bài viết: Google Sheets Nâng Cao 2026: QUERY, IMPORTRANGE, ArrayFormula và Apps Script Thực Chiến

Google Sheets không chỉ là bảng tính — đây là nền tảng phân tích dữ liệu đủ mạnh cho 90% doanh nghiệp vừa và nhỏ.

Bài viết này hướng dẫn 4 kỹ thuật nâng cao quan trọng nhất: hàm QUERY, IMPORTRANGE kết nối đa file, ArrayFormula xử lý hàng loạt, và Google Apps Script tự động hóa quy trình.

1. Hàm QUERY — SQL Ngay Trong Google Sheets

Hàm QUERY là một trong những hàm mạnh nhất của Google Sheets, thường bị bỏ qua vì cú pháp ban đầu trông có vẻ phức tạp. Thực tế, một khi nắm vững, QUERY thay thế được hàng chục hàm VLOOKUP, SUMIF, COUNTIF lồng nhau.

Cú pháp cơ bản

// Cú pháp QUERY

=QUERY(data, query, [headers])

// Ví dụ: Lấy tên và doanh thu của nhân viên có doanh thu > 50tr

=QUERY(A1:D100, "SELECT A, D WHERE D > 50000000 ORDER BY D DESC", 1)

Trong đó:

  • data: Vùng dữ liệu nguồn (A1:D100)
  • query: Chuỗi truy vấn theo cú pháp Google Visualization API Query Language
  • [headers]: Số hàng tiêu đề (0 = không có, 1 = 1 hàng đầu là tiêu đề)

Các mệnh đề QUERY quan trọng

Mệnh đề Chức năng Ví dụ
SELECT Chọn cột hiển thị SELECT A, C, D
WHERE Lọc theo điều kiện WHERE B = 'Hà Nội'
GROUP BY Nhóm dữ liệu GROUP BY A
ORDER BY Sắp xếp kết quả ORDER BY D DESC
LIMIT Giới hạn số hàng LIMIT 10
PIVOT Xoay bảng (cross-tab) PIVOT B

Ví dụ thực chiến: Báo cáo doanh thu theo tháng

// Tổng doanh thu theo nhân viên, tháng 6/2026, sắp xếp giảm dần

=QUERY(DonHang!A:E,

"SELECT B, SUM(E)

WHERE MONTH(A)+1 = 6 AND YEAR(A) = 2026

GROUP BY B

ORDER BY SUM(E) DESC

LABEL B 'Nhân viên', SUM(E) 'Doanh thu'",

1)

💡 Mẹo chuyên gia:

Kết hợp QUERY với ô tham chiếu động để tạo báo cáo tương tác. Ví dụ: "SELECT A, B WHERE C = '"&E1&"'" — thay đổi giá trị ô E1 là toàn bộ báo cáo tự lọc lại.

2. IMPORTRANGE — Kết Nối Dữ Liệu Từ Nhiều File

Khi dữ liệu doanh nghiệp nằm rải rác ở nhiều file Google Sheets khác nhau (mỗi chi nhánh, mỗi phòng ban một file), IMPORTRANGE là cầu nối đưa tất cả về một nơi để phân tích tổng hợp.

// Cú pháp IMPORTRANGE

=IMPORTRANGE(spreadsheet_url, range_string)

// Ví dụ: Lấy dữ liệu sheet "DonHang" từ file chi nhánh HCM

=IMPORTRANGE("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms", "DonHang!A:E")

Kết hợp IMPORTRANGE + QUERY: Bộ đôi mạnh nhất

Thay vì import toàn bộ dữ liệu rồi mới lọc, hãy lồng QUERY vào IMPORTRANGE để chỉ lấy đúng dữ liệu cần:

// Chỉ lấy đơn hàng lớn hơn 10 triệu từ file chi nhánh HCM

=QUERY(

IMPORTRANGE("ID_FILE_HCM", "DonHang!A:E"),

"SELECT Col1, Col2, Col5 WHERE Col5 > 10000000",

1

)

⚠️ Lưu ý quan trọng với IMPORTRANGE:

  • Lần đầu dùng cần cấp quyền truy cập — click vào ô báo lỗi và chọn "Allow access"
  • Dùng ID file thay vì URL đầy đủ để tránh lỗi khi link bị thay đổi
  • Không để IMPORTRANGE trỏ vòng lại chính file đó — sẽ gây lỗi circular reference
  • Giới hạn 50 IMPORTRANGE cross-references mỗi file

3. ArrayFormula và Công Thức Mảng — Xử Lý Hàng Loạt Hiệu Quả

Nhiều người dùng Google Sheets copy công thức xuống hàng nghìn hàng — điều này làm file nặng và chậm. ArrayFormula giải quyết vấn đề này: một công thức duy nhất xử lý toàn bộ cột.

So sánh cách thông thường vs ArrayFormula

❌ Cách cũ — copy 1000 hàng

C2 = A2 * B2

C3 = A3 * B3

C4 = A4 * B4

... (copy 1000 lần)

✅ ArrayFormula — 1 công thức

C2 =

=ARRAYFORMULA(A2:A1000 * B2:B1000)

// Tự động tính cho tất cả hàng

Các hàm kết hợp tốt với ArrayFormula

// IF mảng — gán nhãn toàn cột

=ARRAYFORMULA(IF(D2:D1000>10000000, "Lớn", "Nhỏ"))

// Nối chuỗi mảng

=ARRAYFORMULA(A2:A1000&" - "&B2:B1000)

// VLOOKUP mảng — không cần copy công thức

=ARRAYFORMULA(VLOOKUP(A2:A1000, SanPham!A:C, 2, 0))

// Đánh số thứ tự tự động bỏ qua hàng rỗng

=ARRAYFORMULA(IF(B2:B<>"", ROW(B2:B)-ROW(B2)+1, ""))

Hàm mảng động mới (2024+)

Google Sheets gần đây hỗ trợ nhiều hàm "spill" tự động như FILTER, SORT, UNIQUE, XLOOKUP — không cần ARRAYFORMULA bọc ngoài. Ví dụ: =UNIQUE(A2:A1000) tự động trả về mảng không trùng lặp, =FILTER(A:C, B:B="HCM") lọc theo điều kiện.

4. Google Apps Script — Tự Động Hóa Không Giới Hạn

Khi công thức không đủ dùng, Google Apps Script (GAS) là bước tiếp theo. GAS dùng JavaScript — nếu bạn biết một chút lập trình, bạn có thể tự động hóa gần như mọi thứ trong Google Workspace.

Đọc thêm ví dụ script thực chiến tại 10 Google Apps Script mẫu cho doanh nghiệp 2026.

4.1 Script Gửi Email Báo Cáo Tự Động

// Gửi email tổng kết doanh thu mỗi sáng 8h

function guiBaoCaoDoanhThu() {

const sheet = SpreadsheetApp.getActiveSpreadsheet()

.getSheetByName('Dashboard');

const doanhThu = sheet.getRange('B2').getValue();

const donHang = sheet.getRange('B3').getValue();

GmailApp.sendEmail(

'manager@company.com',

'Báo cáo doanh thu ' + new Date().toLocaleDateString('vi-VN'),

'Doanh thu hôm nay: ' + doanhThu + ' Số đơn: ' + donHang

);

}

4.2 Thiết Lập Trigger Tự Động

Để chạy script theo lịch:

  1. Mở Google Sheets → ExtensionsApps Script
  2. Viết hàm xử lý dữ liệu
  3. Click biểu tượng đồng hồ Triggers ở thanh bên trái
  4. Chọn Add Trigger → chọn hàm, loại trigger (time-driven), tần suất
  5. Lưu — script sẽ tự chạy theo lịch đã đặt, không cần mở file

4.3 Tạo Custom Function Dùng Trong Sheet

// Custom function: định dạng số tiền Việt Nam

/**

* Định dạng số thành chuỗi tiền tệ VND

* @customfunction

*/

function FORMATVND(so) {

if (!so) return '';

return new Intl.NumberFormat('vi-VN', {

style: 'currency', currency: 'VND'

}).format(so);

}

// Dùng trong sheet như hàm thông thường

=FORMATVND(A2) // → "1.200.000 ₫"

Dùng Google Sheets Nâng Cao Cho Doanh Nghiệp?

SheetStore cung cấp template dashboard sẵn có QUERY, IMPORTRANGE, Apps Script — setup trong 1 ngày

Xem Demo Miễn Phí

5. Kết Hợp Các Kỹ Thuật — Dashboard Thực Chiến

Sức mạnh thực sự xuất hiện khi bạn kết hợp cả 4 kỹ thuật trên. Đây là kiến trúc dashboard doanh thu nhiều chi nhánh điển hình:

Kiến trúc Dashboard Đa Chi Nhánh

1

File nguồn mỗi chi nhánh

Nhân viên nhập dữ liệu vào sheet riêng theo ngày. Cấu trúc cột nhất quán giữa các chi nhánh để IMPORTRANGE hoạt động đúng.

2

File tổng hợp (dùng IMPORTRANGE)

IMPORTRANGE kéo dữ liệu từ tất cả chi nhánh về một sheet "RawData". Thêm chi nhánh mới chỉ cần thêm một hàng IMPORTRANGE.

3

Sheet phân tích (dùng QUERY)

QUERY lọc, nhóm, tổng hợp từ RawData. Mỗi sheet con là một góc nhìn: theo chi nhánh, theo nhân viên, theo sản phẩm.

4

Dashboard hiển thị (ArrayFormula + Biểu đồ)

ArrayFormula tính KPI, biểu đồ tự cập nhật. Apps Script gửi email tóm tắt tự động mỗi sáng cho quản lý.

Muốn biết cách tạo biểu đồ chuyên nghiệp cho dashboard? Đọc hướng dẫn chi tiết tại Hướng dẫn tạo biểu đồ Google Sheets 2026.

Mẫu công thức tổng hợp hoàn chỉnh

// Sheet Dashboard — ô B2: tổng doanh thu tháng này từ tất cả chi nhánh

=QUERY(

{IMPORTRANGE("ID_HCM","DonHang!A:E");

IMPORTRANGE("ID_HN","DonHang!A:E");

IMPORTRANGE("ID_DN","DonHang!A:E")},

"SELECT SUM(Col5)

WHERE MONTH(Col1)+1 = "&MONTH(TODAY())&

" AND YEAR(Col1) = "&YEAR(TODAY()),

1

)

6. Lỗi Thường Gặp Và Cách Xử Lý

Lỗi #REF! trong IMPORTRANGE

Nguyên nhân: Chưa cấp quyền truy cập file nguồn hoặc ID file sai.
Sửa: Click vào ô lỗi → "Allow access". Kiểm tra lại URL/ID file.

Lỗi "Unable to parse query string" trong QUERY

Nguyên nhân: Lỗi cú pháp trong chuỗi query — thiếu dấu nháy, tên cột sai, hoặc nhầm kiểu dữ liệu.
Sửa: Khi dùng QUERY với IMPORTRANGE, dùng Col1, Col2 thay vì A, B để đặt tên cột.

ARRAYFORMULA trả về kết quả sai hoặc tràn ô

Nguyên nhân: Phạm vi hai mảng không khớp nhau về kích thước.
Sửa: Đảm bảo hai mảng cùng kích thước, hoặc dùng A2:A và B2:B (mở rộng vô hạn) thay vì giới hạn cứng.

Apps Script báo lỗi "Exceeded maximum execution time"

Nguyên nhân: Script chạy quá 6 phút (giới hạn của Google).
Sửa: Chia nhỏ tác vụ, dùng batch xử lý từng phần, hoặc lưu trạng thái vào PropertiesService để tiếp tục lần sau.

Xem thêm danh sách đầy đủ lỗi và cách sửa tại: Top 10 lỗi thường gặp Google Sheets và cách sửa 2026.

Nếu bạn đang cân nhắc giữa Google Sheets và Excel cho công việc, đọc thêm: Google Sheets vs Excel — Nên chọn cái nào cho doanh nghiệp 2026?

Ngoài ra, để mở rộng thêm tính năng, xem: Top 15 Add-on Google Sheets hữu ích nhất 2026.

Tóm tắt 4 kỹ thuật Google Sheets nâng cao

QUERY — Lọc, nhóm, tổng hợp như SQL
IMPORTRANGE — Kết nối đa file, đa chi nhánh
ArrayFormula — Xử lý hàng loạt, file nhẹ hơn
Apps Script — Tự động hóa, gửi email, trigger

7. Câu Hỏi Thường Gặp

Hàm QUERY trong Google Sheets dùng để làm gì?

Hàm QUERY cho phép bạn truy vấn dữ liệu trong Google Sheets bằng cú pháp giống SQL. Bạn có thể lọc, sắp xếp, nhóm và tổng hợp dữ liệu từ một vùng bảng tính mà không cần viết macro hay Apps Script.

IMPORTRANGE có giới hạn dữ liệu không?

Có. IMPORTRANGE bị giới hạn ở 10 triệu ô dữ liệu trên toàn file và cần cấp quyền truy cập lần đầu. Ngoài ra, dữ liệu import có thể bị trễ vài giây đến vài phút tùy kích thước.

Công thức mảng (ArrayFormula) trong Google Sheets hoạt động như thế nào?

ArrayFormula cho phép một công thức xử lý toàn bộ dải ô thay vì một ô đơn lẻ. Ví dụ: =ARRAYFORMULA(A2:A100*B2:B100) tính tích từng hàng cho 99 hàng chỉ bằng một công thức duy nhất.

Google Apps Script khác gì với macro Google Sheets?

Macro trong Google Sheets thực chất là Apps Script được ghi lại tự động. Apps Script cho phép bạn viết code JavaScript tùy ý — gọi API bên ngoài, gửi email, tương tác với Google Drive, tạo trigger tự động theo lịch. Macro chỉ phù hợp cho các thao tác lặp đơn giản.

Làm sao để Google Sheets tự động cập nhật dữ liệu mỗi ngày?

Dùng Apps Script với Time-driven Trigger. Bạn viết hàm xử lý dữ liệu, sau đó thiết lập trigger chạy tự động mỗi ngày/giờ/tuần trong menu Extensions > Apps Script > Triggers.

Triển Khai Google Sheets Nâng Cao Cho Doanh Nghiệp

SheetStore cung cấp hệ thống quản lý sẵn có — QUERY, IMPORTRANGE, Apps Script đã được tích hợp và tối ưu sẵn

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Google SheetsGoogle Apps ScriptCRMAutomationPhần mềm quản lý doanh nghiệp

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.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận