Hướng dẫn

Google Sheets Nâng Cao: 10 Hàm & Kỹ Thuật Ít Người Biết Giúp Tiết Kiệm Hàng Chục Giờ

Tuân HoangTuân Hoang
21 tháng 5, 2026
18 phút đọc
Ảnh minh họa bài viết: Google Sheets Nâng Cao: 10 Hàm & Kỹ Thuật Ít Người Biết Giúp Tiết Kiệm Hàng Chục Giờ

Bạn đã dùng Google Sheets nhiều năm nhưng vẫn chỉ biết SUM và VLOOKUP?

Bài viết này tiết lộ 10+ hàm và kỹ thuật nâng cao giúp bạn tự động hóa báo cáo, xử lý dữ liệu phức tạp và tiết kiệm hàng chục giờ mỗi tháng — không cần biết lập trình.

1. ARRAYFORMULA — Xử Lý Hàng Trăm Dòng Với 1 Công Thức

Đây là một trong những hàm nâng cao được dùng nhiều nhất trong Google Sheets nhưng ít người biết. Thay vì copy công thức xuống 1.000 dòng, ARRAYFORMULA xử lý toàn bộ cùng một lúc.

Cú pháp cơ bản

=ARRAYFORMULA(A2:A1000 * B2:B1000)

Ví dụ thực tế: Tính thành tiền (số lượng × đơn giá) cho toàn bộ bảng hàng hoá:

=ARRAYFORMULA(IF(C2:C="","", C2:C * D2:D))

Lệnh IF(C2:C="",...) ở trên ngăn công thức hiển thị giá trị 0 ở các dòng trống — rất quan trọng khi bảng dữ liệu được thêm dần theo thời gian.

ARRAYFORMULA với hàm TEXT

=ARRAYFORMULA(TEXT(A2:A100,"dd/mm/yyyy"))

Định dạng toàn bộ cột ngày tháng chỉ bằng 1 công thức — không cần format từng ô thủ công.

Mẹo quan trọng:

Nhấn Ctrl + Shift + Enter để tự động thêm ARRAYFORMULA bao quanh công thức hiện tại.

2. QUERY — Viết SQL Ngay Trong Google Sheets

Hàm QUERY là công cụ phân tích dữ liệu mạnh nhất trong Google Sheets. Cú pháp giống SQL, cho phép lọc, sắp xếp, nhóm, tổng hợp dữ liệu theo bất kỳ điều kiện nào.

Cú pháp

=QUERY(data_range, query_string, [headers])

Ví dụ thực tế — Báo cáo doanh thu theo nhân viên

=QUERY(A1:E500,
  "SELECT B, SUM(E)
   WHERE A >= date '2026-01-01'
   GROUP BY B
   ORDER BY SUM(E) DESC
   LABEL B 'Nhân viên', SUM(E) 'Doanh thu'",
1)

Chỉ 1 công thức thay cho cả pivot table thủ công — kết quả cập nhật tự động khi dữ liệu nguồn thay đổi.

QUERY kết hợp với IMPORTRANGE

=QUERY(IMPORTRANGE("spreadsheet_url","Sheet1!A:F"),
  "SELECT Col1, Col3, SUM(Col6)
   WHERE Col2 = 'Hà Nội'
   GROUP BY Col1, Col3",
1)

Kéo dữ liệu từ file khác và lọc/nhóm trực tiếp — không cần copy dữ liệu thủ công.

3. IMPORTRANGE — Kết Nối Nhiều Spreadsheet

IMPORTRANGE cho phép một sheet lấy dữ liệu trực tiếp từ file Google Sheets khác. Hữu ích khi bạn có file dữ liệu gốc và nhiều file báo cáo cần đồng bộ tự động.

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/SPREADSHEET_ID","TênSheet!A1:F500")

Dùng tốt cho:

  • Dashboard tổng hợp từ nhiều bộ phận
  • Báo cáo đọc-only từ file dữ liệu gốc
  • Chia sẻ dữ liệu giữa team mà không cấp quyền edit

Lưu ý:

  • Lần đầu cần click "Allow access" để cấp quyền
  • Chậm hơn công thức nội bộ — không dùng với dải > 50,000 ô
  • Tên sheet phân biệt hoa/thường

4. INDEX + MATCH — Thay Thế VLOOKUP Linh Hoạt Hơn

Nhiều người biết VLOOKUP nhưng ít biết rằng INDEX + MATCH mạnh hơn nhiều: tra cứu trái sang phải lẫn phải sang trái, không bị lỗi khi thêm cột mới, nhanh hơn với dữ liệu lớn.

=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))

So sánh VLOOKUP vs INDEX/MATCH

Tình huống VLOOKUP INDEX/MATCH
Tra cứu từ phải sang trái ✗ Không hỗ trợ ✓ Hỗ trợ
Thêm/xóa cột không bị lỗi ✗ Lỗi ✓ Ổn định
Hiệu suất với 100K+ dòng Chậm hơn Nhanh hơn
Dễ đọc, dễ học ✓ Đơn giản hơn Phức tạp hơn

Xem thêm hướng dẫn chi tiết về các hàm tra cứu tại bài viết VLOOKUP Google Sheets toàn diện.

5. XLOOKUP — Hàm Tra Cứu Thế Hệ Mới

XLOOKUP là phiên bản hiện đại thay thế cả VLOOKUP lẫn INDEX/MATCH. Google Sheets đã hỗ trợ đầy đủ từ 2023.

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

Ví dụ: Tra mã sản phẩm, trả về tên và giá cùng lúc

=XLOOKUP(G2, A:A, B:C, "Không tìm thấy")

XLOOKUP có thể trả về nhiều cột cùng lúc (B:C) — điều VLOOKUP không làm được mà không cần nhiều công thức riêng lẻ.

Tham số match_mode hữu ích:

  • 0 — Khớp chính xác (mặc định)
  • -1 — Khớp chính xác hoặc giá trị nhỏ hơn tiếp theo
  • 1 — Khớp chính xác hoặc giá trị lớn hơn tiếp theo
  • 2 — Wildcard match (dùng *, ?, ~)

6. REGEXEXTRACT — Trích Xuất Text Bằng Regex

Khi dữ liệu thô lộn xộn (email trong chuỗi text, số điện thoại lẫn với ký tự khác, mã đơn hàng nhúng trong ghi chú), REGEXEXTRACTREGEXREPLACE là cứu cánh.

=REGEXEXTRACT(A2, "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")

Trích xuất địa chỉ email từ chuỗi bất kỳ.

=REGEXEXTRACT(A2, "ORD-\d{6}")

Lấy mã đơn hàng dạng ORD-123456 từ ghi chú của nhân viên.

=REGEXREPLACE(A2, "[^0-9]", "")

Xóa tất cả ký tự không phải số — chuẩn hóa số điện thoại từ nhiều định dạng khác nhau.

7. Google Apps Script — Tự Động Hóa Không Cần Code Chuyên Sâu

Apps Script là JavaScript chạy ngay trong Google Sheets. Không cần server, không cần deploy — chạy từ menu Extensions → Apps Script.

Ví dụ 1: Tự động gửi email báo cáo hàng ngày

function guiBaoCaoNgay() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName('BaoCao');
  const doanhThu = sheet.getRange('B2').getValue();
  MailApp.sendEmail({
    to: 'manager@company.com',
    subject: 'Bao cao doanh thu ' + new Date().toLocaleDateString('vi-VN'),
    body: 'Doanh thu hom nay: ' + doanhThu.toLocaleString('vi-VN') + 'd'
  });
}

Thiết lập trigger chạy lúc 8 giờ tối mỗi ngày: Triggers → Add Trigger → Time-driven → Day timer → 8pm-9pm.

Ví dụ 2: Tạo custom menu trong spreadsheet

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('Cong Cu')
    .addItem('Lam sach du lieu', 'lamSachDuLieu')
    .addItem('Xuat bao cao PDF', 'xuatBaoCaoPDF')
    .addToUi();
}

Tìm hiểu thêm cách tích hợp Google Sheets với hệ thống quản lý doanh nghiệp tại hướng dẫn Google Sheets quản lý dự án.

8. Conditional Formatting Nâng Cao

Conditional Formatting không chỉ để tô màu ô đơn giản — khi kết hợp với công thức tùy chỉnh, bạn có thể highlight toàn bộ hàng theo điều kiện phức tạp.

Highlight cả hàng khi cột D = "Quá hạn"

  1. Chọn toàn bộ vùng dữ liệu (VD: A2:F100)
  2. Format → Conditional formatting → Custom formula
  3. Nhập công thức: =$D2="Quá hạn"
  4. Chọn màu nền đỏ nhạt

Lưu ý dấu $:

$D2 — cố định cột D nhưng cho phép hàng thay đổi. Thiếu dấu $ hoặc viết $D$2 sẽ cho kết quả sai khi áp dụng cho nhiều hàng.

9. Pivot Table & Slicer Chuyên Nghiệp

Pivot Table trong Google Sheets có thể tạo báo cáo động mà không cần viết một công thức nào. Kết hợp với Slicer (bộ lọc trực quan), bạn có dashboard lọc dữ liệu chuyên nghiệp.

Thêm Slicer vào Pivot Table

  1. Click vào Pivot Table
  2. Menu Data → Add a slicer
  3. Chọn cột muốn lọc (VD: Tháng, Khu vực, Nhân viên)
  4. Slicer xuất hiện dưới dạng nút bấm — click để lọc ngay lập tức

Nhiều Slicer kết nối với cùng một Pivot Table cho phép lọc đa chiều — tương tự filter phức tạp nhưng trực quan hơn nhiều. Xem thêm tại hướng dẫn tạo dashboard báo cáo với Google Sheets.

10. Tối Ưu Hiệu Suất Khi File Google Sheets Bị Chậm

File Google Sheets với 50,000+ dòng dễ bị lag. Áp dụng các kỹ thuật sau để tăng tốc đáng kể:

Tránh hàm Volatile

Hàm NOW(), TODAY(), RAND(), INDIRECT(), OFFSET() tính lại mỗi lần có bất kỳ thay đổi nào trong file. Thay bằng giá trị tĩnh hoặc hàm ít volatile hơn.

Dùng ARRAYFORMULA thay vì copy xuống

1 ARRAYFORMULA xử lý 1,000 hàng nhanh hơn 1,000 công thức riêng lẻ vì chỉ tính một lần duy nhất.

Paste as Values cho dữ liệu tĩnh

Dữ liệu lịch sử không đổi? Copy → Paste Special → Values Only. Xóa công thức thừa giảm tải tính toán đáng kể.

Giới hạn vùng dữ liệu Pivot Table

Thay vì để Pivot Table tham chiếu A:Z (vô hạn), chỉ định vùng cụ thể: A1:Z50000. Giảm 70-80% thời gian tính toán.

Muốn Google Sheets Làm Việc Cho Bạn?

SheetStore giúp bạn xây dashboard tự động từ Google Sheets — không cần setup phức tạp, không cần IT

Xem Demo Miễn Phí

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

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

ARRAYFORMULA cho phép một công thức duy nhất xử lý toàn bộ dải ô thay vì phải copy-paste xuống từng dòng. Ví dụ =ARRAYFORMULA(A2:A100*B2:B100) tính tích của hai cột cho tất cả các hàng cùng lúc, giúp bảng tính gọn hơn và dễ bảo trì.

Làm thế nào để dùng QUERY trong Google Sheets như SQL?

Hàm QUERY sử dụng cú pháp Google Visualization API Query Language (giống SQL). Ví dụ: =QUERY(A1:D100,"SELECT A,B,C WHERE D > 100 ORDER BY B DESC LIMIT 20") — bạn có thể lọc, sắp xếp, nhóm dữ liệu mà không cần pivot table hay filter thủ công.

IMPORTRANGE bị lỗi #REF! phải làm gì?

Lỗi #REF! với IMPORTRANGE thường do chưa cấp quyền truy cập. Nhấp vào ô lỗi, chọn "Allow access" để cấp quyền. Nếu vẫn lỗi, kiểm tra lại URL spreadsheet và tên sheet (phân biệt hoa/thường). Tài khoản Google của bạn cũng phải có quyền xem file nguồn.

Google Sheets Apps Script khác gì so với công thức thông thường?

Công thức xử lý tính toán tĩnh trong ô. Apps Script (JavaScript) cho phép tự động hóa: gửi email, tạo trigger theo lịch, kết nối API bên ngoài, tạo custom menu, xử lý form submission — những việc công thức không làm được.

Cách tăng tốc độ Google Sheets khi file bị chậm?

Thay VLOOKUP bằng INDEX/MATCH hoặc XLOOKUP (ít volatile hơn). Hạn chế dùng INDIRECT và OFFSET vì chúng tính lại toàn bộ mỗi khi có thay đổi. Dùng ARRAYFORMULA thay vì copy formula xuống nhiều dòng. Xóa conditional formatting thừa và cache dữ liệu tĩnh bằng Paste as Values.

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