Google Sheets Nâng Cao: 6 Tính Năng Pro Giúp Bạn Làm Việc Nhanh Gấp 5 Lần
Google Sheets không chỉ là bảng tính — đây là công cụ phân tích dữ liệu mạnh mẽ nếu bạn biết khai thác đúng cách.
Bài viết tổng hợp những tính năng nâng cao của Google Sheets mà 90% người dùng bỏ qua: QUERY function, ARRAYFORMULA, Dynamic Arrays, Conditional Formatting nâng cao và cách xây dashboard tự động cập nhật.
Mục lục:
1. Hàm QUERY — SQL Ngay Trong Google Sheets
Nếu bạn từng làm việc với cơ sở dữ liệu hay biết SQL, hàm QUERY sẽ khiến bạn ngạc nhiên vì sức mạnh của nó ngay trong bảng tính. Nếu chưa biết SQL, đây vẫn là một trong những hàm đáng học nhất để xử lý dữ liệu lớn.
-- Cú pháp cơ bản:
=QUERY(data, query, [headers])
-- Ví dụ: Lọc doanh thu tháng 5, sắp xếp giảm dần
=QUERY(A1:D1000, "SELECT A, B, C WHERE D = 'Tháng 5' ORDER BY C DESC", 1)
-- Tổng hợp theo nhóm (GROUP BY):
=QUERY(A1:C500, "SELECT A, SUM(C) GROUP BY A LABEL SUM(C) 'Tổng doanh thu'", 1)
1.1 Các Mệnh Đề QUERY Quan Trọng
SELECT
Chọn cột nào hiển thị. SELECT * lấy tất cả, SELECT A, C chỉ lấy cột A và C.
WHERE
Lọc dữ liệu theo điều kiện. Hỗ trợ AND, OR, LIKE, MATCHES (regex).
GROUP BY + tổng hợp
Nhóm và tổng hợp: SUM, AVG, COUNT, MAX, MIN.
ORDER BY + LIMIT
Sắp xếp kết quả và giới hạn số dòng trả về — rất hữu ích để lấy Top N.
1.2 QUERY Kết Hợp Với Ô Tham Chiếu Động
Một mẹo ít người biết: bạn có thể nhúng giá trị từ ô khác vào chuỗi QUERY bằng cách dùng ký tự &:
-- E1 chứa tên tháng, ví dụ "Tháng 5"
=QUERY(A1:D1000, "SELECT A, B, C WHERE D = '"&E1&"'", 1)
Khi bạn thay đổi giá trị trong ô E1, QUERY tự cập nhật ngay — đây là cơ sở để xây các bộ lọc động (dynamic filter) mà không cần script.
1.3 QUERY Với Pivot (PIVOT Clause)
QUERY còn hỗ trợ mệnh đề PIVOT để chuyển dữ liệu dọc thành ngang — tương tự Pivot Table nhưng tự động cập nhật khi dữ liệu nguồn thay đổi:
-- Doanh thu theo tháng (pivot theo cột tháng):
=QUERY(A1:C100, "SELECT A, SUM(C) GROUP BY A PIVOT B", 1)
2. ARRAYFORMULA — Xử Lý Toàn Cột Chỉ Với Một Công Thức
Thay vì kéo công thức xuống 10.000 dòng (tốn tài nguyên, dễ lỗi khi thêm dòng mới), hãy dùng ARRAYFORMULA:
-- Cách thông thường — phải kéo xuống từng dòng:
=B2*C2
-- Dùng ARRAYFORMULA — nhập một lần ở B2, áp dụng toàn cột:
=ARRAYFORMULA(IF(B2:B="","", B2:B * C2:C))
2.1 ARRAYFORMULA Kết Hợp Với IF Để Xử Lý Ô Trống
Vấn đề phổ biến nhất khi dùng ARRAYFORMULA là nó cũng tính cả ô trống, tạo ra hàng nghìn kết quả rỗng. Giải pháp: bọc trong IF kiểm tra ô rỗng:
-- Chỉ tính khi cột A có dữ liệu:
=ARRAYFORMULA(IF(A2:A<>"", A2:A * 1.1, ""))
-- Đánh số thứ tự tự động (tự cập nhật khi thêm dòng):
=ARRAYFORMULA(IF(A2:A<>"", ROW(A2:A)-1, ""))
2.2 Phím Tắt Nhập ARRAYFORMULA
Thay vì gõ tay, nhấn Ctrl + Shift + Enter (Windows) hoặc Cmd + Shift + Enter (Mac) để Google Sheets tự thêm ARRAYFORMULA bao quanh công thức hiện tại.
Lưu ý quan trọng:
Không đặt hai ARRAYFORMULA trên cùng một cột — chúng sẽ xung đột và báo lỗi #REF!. Mỗi cột chỉ cần một ARRAYFORMULA duy nhất ở dòng đầu tiên.
3. Combo Công Thức Nâng Cao: IMPORTRANGE, FILTER, UNIQUE
3.1 IMPORTRANGE — Kéo Dữ Liệu Từ File Khác
IMPORTRANGE cho phép bạn lấy dữ liệu từ một Google Sheet khác — dù bạn không sở hữu file đó (chỉ cần có quyền xem):
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[FILE_ID]", "Sheet1!A1:D1000")
Kết hợp với QUERY để lọc ngay khi import:
=QUERY(IMPORTRANGE("https://...","Data!A:F"), "SELECT Col1, Col3 WHERE Col5 > 100", 1)
3.2 FILTER — Lọc Linh Hoạt Với Nhiều Điều Kiện
-- Lọc doanh số > 10 triệu VND:
=FILTER(A2:C100, C2:C100 > 10000000)
-- Nhiều điều kiện (AND) — dùng dấu *:
=FILTER(A2:D100, (B2:B100="Hà Nội")*(C2:C100>5000000))
-- Nhiều điều kiện (OR) — dùng dấu +:
=FILTER(A2:D100, (B2:B100="Hà Nội")+(B2:B100="TP.HCM"))
3.3 UNIQUE + SORT — Danh Sách Không Trùng Lặp Tự Động
-- Lấy danh sách khách hàng duy nhất, sắp xếp A-Z:
=SORT(UNIQUE(B2:B1000))
-- Dùng làm nguồn cho dropdown Data Validation động:
-- Đặt công thức UNIQUE vào cột phụ → dùng cột đó làm range cho dropdown
Xem thêm cách ứng dụng các hàm này trong thực tế tại bài Hàm Google Sheets từ cơ bản đến nâng cao.
4. Conditional Formatting Nâng Cao
Phần lớn người dùng chỉ biết tô màu một ô đơn theo giá trị của chính ô đó. Nhưng Custom Formula trong Conditional Formatting cho phép bạn làm nhiều hơn thế — tô màu cả dòng, so sánh với ô khác, dùng điều kiện phức tạp.
4.1 Tô Màu Toàn Dòng Theo Điều Kiện
- Chọn vùng dữ liệu (
A2:F100) - Vào Format → Conditional formatting
- Chọn Custom formula is
- Nhập công thức:
=$C2="Hoàn thành" - Chọn màu → Done
Lưu ý ký hiệu $:
$C2 — khóa cột C nhưng cho phép dòng thay đổi. Đây là điểm mấu chốt để tô màu toàn dòng. Nếu viết $C$2 (khóa cả dòng lẫn cột), công thức sẽ chỉ kiểm tra ô C2 cho mọi dòng — không đúng ý.
4.2 Các Ví Dụ Custom Formula Hữu Ích
| Mục đích | Công thức |
|---|---|
| Tô màu dòng có giá trị trùng lặp | =COUNTIF($A:$A,$A2)>1 |
| Tô màu dòng ngày hôm nay | =$B2=TODAY() |
| Tô màu dòng sắp đến hạn (trong 7 ngày) | =AND($D2-TODAY()<=7,$D2>=TODAY()) |
| Tô màu dòng chẵn (zebra stripes) | =ISEVEN(ROW()) |
| Tô màu ô có chứa từ khóa | =SEARCH("quan trọng",$A2) |
5. Xây Dashboard Tự Động Cập Nhật Trong Google Sheets
Dashboard trong Google Sheets hoạt động theo nguyên lý: dữ liệu nguồn (raw data) → công thức tổng hợp → biểu đồ/KPI tự động cập nhật. Không cần làm lại mỗi ngày.
5.1 Cấu Trúc Sheet Chuẩn Cho Dashboard
Workbook structure:
📊 Dashboard — Sheet hiển thị cho người xem
📥 Data — Raw data, nhập tay hoặc từ IMPORTRANGE/API
🔧 Calc — Bảng tính toán trung gian (QUERY, SUMIFS...)
🔒 Config — Tham số cấu hình (tháng, năm, ngưỡng KPI)
5.2 KPI Card Với SPARKLINE
SPARKLINE vẽ biểu đồ mini ngay trong ô — rất phù hợp cho KPI card:
-- Biểu đồ đường mini từ dữ liệu 12 tháng:
=SPARKLINE(B2:M2, {"charttype","line"; "color","#22c55e"; "linewidth",2})
-- Progress bar (0-100%):
=SPARKLINE(C5, {"charttype","bar"; "max",100; "color1","#22c55e"; "color2","#e5e7eb"})
5.3 Slicer — Bộ Lọc Tương Tác Không Cần Code
Google Sheets có tính năng Slicer cho phép người xem lọc biểu đồ bằng click — không cần chỉnh công thức:
- Click vào biểu đồ hoặc Pivot Table
- Vào Data → Add a slicer
- Chọn cột muốn lọc (ví dụ: Region, Month)
- Di chuyển Slicer đến vị trí mong muốn trên dashboard
Xem hướng dẫn chi tiết tại bài Cách tạo báo cáo Google Sheets chuyên nghiệp.
6. Google Apps Script — Tự Động Hóa Không Cần Code Nhiều
Khi công thức không đủ, Google Apps Script (JavaScript) là bước tiếp theo. Bạn không cần là lập trình viên — nhiều tác vụ chỉ cần 5-20 dòng code.
6.1 Script Gửi Email Báo Cáo Tự Động
function guiBaoCaoHangNgay() {
const sheet = SpreadsheetApp
.getActiveSpreadsheet()
.getSheetByName('Dashboard');
const doanhThu = sheet.getRange('B2').getValue();
const donHang = sheet.getRange('B3').getValue();
MailApp.sendEmail({
to: 'manager@company.com',
subject: 'Báo cáo doanh thu ' + new Date().toLocaleDateString('vi-VN'),
body: 'Doanh thu: ' + doanhThu.toLocaleString('vi-VN') + ' đ
Số đơn: ' + donHang
});
}
Để chạy script tự động mỗi ngày 8 giờ sáng: Extensions → Apps Script → Triggers → Add Trigger → Time-driven → Day timer → 8am to 9am.
6.2 Tự Động Tạo Sheet Mới Theo Tháng
function taoSheetThangMoi() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const thang = Utilities.formatDate(new Date(), 'Asia/Ho_Chi_Minh', 'MM-yyyy');
const ten = 'Dữ liệu ' + thang;
if (!ss.getSheetByName(ten)) {
ss.getSheetByName('Template').copyTo(ss).setName(ten);
}
}
6.3 Bảo Vệ Sheet Và Phân Quyền Chỉnh Sửa
Tính năng Protected ranges & sheets trong Google Sheets cho phép bạn khóa các vùng chứa công thức, chỉ cho phép nhập liệu ở những ô nhất định:
- Chọn vùng cần bảo vệ (ví dụ: toàn bộ sheet Dashboard)
- Chuột phải → Protect range
- Nhập mô tả → Set permissions
- Chọn Only you hoặc chỉ định email được chỉnh sửa
Kết hợp với chia sẻ quyền Viewer cho toàn bộ file — nhân viên xem được nhưng không sửa được công thức, chỉ nhập dữ liệu vào vùng cho phép.
Muốn Có Dashboard Google Sheets Sẵn Dùng?
SheetStore cung cấp template dashboard chuyên nghiệp — setup trong 30 phút, tự cập nhật mỗi ngày
Xem Template Miễn PhíLộ trình học Google Sheets nâng cao:
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 bằng cú pháp giống SQL ngay trong Google Sheets. 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 script.
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ộ cột/dòng thay vì một ô đơn. Thay vì kéo công thức xuống hàng nghìn dòng, bạn chỉ cần nhập một lần ở ô đầu tiên bọc trong ARRAYFORMULA — giảm thiểu lỗi và tăng hiệu suất tính toán.
Conditional Formatting nâng cao trong Google Sheets có gì đặc biệt?
Conditional Formatting nâng cao cho phép dùng Custom Formula để tô màu theo điều kiện phức tạp — ví dụ tô màu cả dòng nếu giá trị ở cột C vượt ngưỡng, so sánh với ô khác, hoặc kết hợp nhiều điều kiện AND/OR.
Làm thế nào để tạo dashboard tự động trong Google Sheets?
Tạo dashboard trong Google Sheets bằng cách kết hợp: (1) QUERY hoặc IMPORTRANGE để kéo dữ liệu từ nhiều sheet, (2) Sparklines hoặc Chart tự cập nhật, (3) Slicer để lọc tương tác, (4) ARRAYFORMULA để tổng hợp KPI. Mỗi khi dữ liệu nguồn thay đổi, dashboard cập nhật tự động.
Google Sheets có thể xử lý được bao nhiêu dòng dữ liệu?
Google Sheets hỗ trợ tối đa 10 triệu ô (cells) và thường xử lý tốt với tập dữ liệu dưới 100.000 dòng. Với dữ liệu lớn hơn, nên sử dụng BigQuery hoặc kết nối Google Sheets với Looker Studio để tối ưu hiệu năng.
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.