Hướng Dẫn Tạo Dashboard KPI Trên Google Sheets 2026

Một dashboard KPI tốt giúp bạn ra quyết định trong 30 giây — thay vì mất 2 tiếng lọc dữ liệu mỗi buổi sáng.
Hướng dẫn từng bước tạo dashboard KPI chuyên nghiệp trên Google Sheets 2026: chọn KPI phù hợp, thiết kế cấu trúc dữ liệu, công thức SPARKLINE/QUERY nâng cao, conditional formatting RAG status, auto-refresh với IMPORTRANGE và design best practices theo chuẩn doanh nghiệp.
1. KPI Dashboard Là Gì Và Tại Sao Cần Nó?
KPI Dashboard (Key Performance Indicator Dashboard) là màn hình tổng hợp hiển thị các chỉ số quan trọng nhất của doanh nghiệp trên một giao diện duy nhất, cập nhật tự động theo dữ liệu thực tế.
Không Có Dashboard KPI
- • Mỗi buổi sáng mở 5–10 file riêng lẻ
- • Copy-paste số liệu để tổng hợp
- • Không biết kết quả hôm qua cho đến trưa
- • Khó nhận ra xu hướng xấu kịp thời
- • Họp hàng tuần không có số liệu tức thì
Có Dashboard KPI Tốt
- • Mở 1 tab, thấy toàn bộ tình hình
- • Số liệu cập nhật tự động theo thời gian thực
- • Cảnh báo màu đỏ/vàng/xanh rõ ràng
- • Xu hướng hiển thị qua sparkline
- • Ra quyết định dựa trên dữ liệu, không cảm tính
Tại sao Google Sheets thay vì Tableau/Power BI? Vì 90% doanh nghiệp SME Việt Nam không cần công cụ BI đắt tiền. Google Sheets đủ mạnh để xây dashboard KPI chuyên nghiệp, miễn phí, và đội ngũ đã biết dùng.
2. Bước 1: Chọn KPI Phù Hợp Cho Doanh Nghiệp
Sai lầm phổ biến nhất là đưa quá nhiều số liệu vào dashboard. Nguyên tắc: tối đa 10–12 KPI cốt lõi, mỗi phòng ban 3–5 KPI riêng.
| Phòng Ban / Lĩnh Vực | KPI Quan Trọng | Tần Suất Cập Nhật | Nguồn Dữ Liệu |
|---|---|---|---|
| Kinh Doanh | Doanh thu, Số đơn, Tỷ lệ chốt, Giá trị đơn trung bình | Ngày/Tuần | CRM, POS |
| Marketing | Leads mới, CPL, CTR, Tỷ lệ chuyển đổi | Ngày | GA4, Ads |
| Vận Hành | Tồn kho, Tỷ lệ giao đúng hạn, Chi phí vận hành | Tuần | WMS, ERP |
| Nhân Sự | Headcount, Tỷ lệ nghỉ việc, Năng suất/người | Tháng | HRM |
| Tài Chính | Doanh thu, Chi phí, Lợi nhuận, Dòng tiền | Tuần/Tháng | Kế toán |
Nguyên tắc SMART cho KPI:
- Specific — Cụ thể: "Doanh thu từ kênh online" thay vì chỉ "Doanh thu"
- Measurable — Đo lường được: có số liệu thực tế, không cảm tính
- Achievable — Thực tế: mục tiêu khả thi, không vô lý
- Relevant — Liên quan: KPI phải ảnh hưởng đến quyết định kinh doanh
- Time-bound — Có kỳ hạn: so sánh tuần/tháng/quý
3. Bước 2: Thiết Kế Cấu Trúc Dữ Liệu Chuẩn
Dashboard đẹp nhưng dữ liệu rác = vô dụng. Cấu trúc dữ liệu tốt là nền tảng của dashboard KPI chính xác.
Quy Tắc Vàng Cho Dữ Liệu Google Sheets
// SHEET: DuLieuBanHang (Data Source) // Cot A: Ngay (Date) -- Format: YYYY-MM-DD, KHONG dung DD/MM/YYYY // Cot B: MaDon -- Unique ID cho moi don hang // Cot C: KenhBan -- Online / Offline / Shopee / Lazada // Cot D: SanPham -- Ten san pham (chuan hoa, khong viet tat) // Cot E: DanhMuc -- Nhom san pham // Cot F: SoLuong -- So nguyen, khong chuoi // Cot G: GiaBan -- So thap phan, khong co ki tu tien te // Cot H: DoanhThu -- = F * G (tinh tu dong) // Cot I: NhanVien -- Nhan vien phu trach // Cot J: TrangThai -- PAID / PENDING / CANCELLED // NGUYEN TAC: // 1. Moi hang = 1 giao dich // 2. Khong merge cells // 3. Khong de o trong o giua data // 4. Header o hang 1, data bat dau tu hang 2 // 5. Khong dung mau sac de phan biet loai data
Cấu Trúc Tabs Trong File Google Sheets
| Tab | Mục Đích | Ai Chỉnh Sửa |
|---|---|---|
| 📊 DASHBOARD | Màn hình tổng quan — chỉ xem | Không ai (công thức tự động) |
| 📝 DATA_BanHang | Nguồn dữ liệu bán hàng | Nhân viên nhập liệu |
| 📝 DATA_ChiPhi | Nguồn dữ liệu chi phí | Kế toán |
| ⚙️ CONFIG | Cấu hình: mục tiêu KPI, màu sắc | Quản lý |
| 📈 CALC | Tính toán trung gian (ẩn với người dùng) | Không ai |
4. Bước 3: Thiết Kế Layout Dashboard
Layout chuẩn cho KPI dashboard theo nguyên tắc "F-pattern reading" — mắt người đọc từ trái sang phải, từ trên xuống dưới:
Doanh Thu
Số Đơn
Lợi Nhuận
Khách Mới
5. Bước 4: Công Thức Cơ Bản Cho KPI Cards
Mỗi KPI Card thường hiển thị: Giá trị hiện tại, So sánh kỳ trước (%), và Xu hướng (sparkline).
-- DOANH THU THANG NAY =SUMPRODUCT((MONTH(DATA_BanHang!A2:A)=MONTH(TODAY()))*(YEAR(DATA_BanHang!A2:A)=YEAR(TODAY()))*(DATA_BanHang!J2:J="PAID")*DATA_BanHang!H2:H) -- SO SANH VS THANG TRUOC (%) =(DoanhThuThangNay - DoanhThuThangTruoc) / DoanhThuThangTruoc -- DOANH THU THANG TRUOC =SUMPRODUCT((MONTH(DATA_BanHang!A2:A)=IF(MONTH(TODAY())=1,12,MONTH(TODAY())-1))*(YEAR(DATA_BanHang!A2:A)=IF(MONTH(TODAY())=1,YEAR(TODAY())-1,YEAR(TODAY())))*(DATA_BanHang!J2:J="PAID")*DATA_BanHang!H2:H) -- SO DON HANG HOM NAY =COUNTIFS(DATA_BanHang!A2:A, TODAY(), DATA_BanHang!J2:J, "PAID") -- GIA TRI DON TRUNG BINH =IFERROR(SUMIFS(DATA_BanHang!H2:H,DATA_BanHang!J2:J,"PAID",DATA_BanHang!A2:A,">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1))/COUNTIFS(DATA_BanHang!J2:J,"PAID",DATA_BanHang!A2:A,">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1)), 0) -- TY LE DAT MUC TIEU =DoanhThuThangNay / CONFIG!B2 -- B2 la muc tieu thang nay trong sheet CONFIG
Định Dạng Số Trong KPI Card
// Hien thi 1.250.000 thanh "1.25M" hoac "1,250K"
// Custom number format trong Google Sheets:
// Trieu dong: [>=1000000]#,##0.0,,"M";[>=1000]#,##0,"K";#,##0
// Phan tram voi mau: [Color10][>=0]+0.0%;[RED]-0.0%
// De set: Format > Number > Custom number format
// Cong thuc hien thi ten KPI dong + xu huong:
=TEXT(DoanhThuThangNay,"#,##0") & " (" & TEXT((DoanhThuThangNay-DoanhThuThangTruoc)/DoanhThuThangTruoc, "+0%;-0%") & ")"
6. Bước 5: SPARKLINE — Biểu Đồ Xu Hướng Mini Trong Ô
SPARKLINE là tính năng độc đáo của Google Sheets — tạo biểu đồ nhỏ gọn ngay trong một ô, không cần tạo chart riêng. Cực kỳ hiệu quả cho KPI cards.
-- SPARKLINE co ban: bieu do duong 7 ngay gan nhat
=SPARKLINE(QUERY(DATA_BanHang!A:H,"SELECT SUM(H) WHERE J='PAID' GROUP BY A ORDER BY A DESC LIMIT 7 LABEL SUM(H) ''"),{"charttype","line";"color","#10b981";"linewidth",2})
-- SPARKLINE dang cot (bar)
=SPARKLINE(DoanhThu30Ngay, {"charttype","bar";"color1","#3b82f6";"color2","#e5e7eb"})
-- SPARKLINE voi mau thay doi theo xu huong (xanh tang, do giam)
=SPARKLINE(DoanhThu7Ngay, {"charttype","line";"color",IF(DoanhThuHomNay>DoanhThuHomQua,"#10b981","#ef4444");"linewidth",2})
-- SPARKLINE win/loss (gia tri +/-)
=SPARKLINE(TangTruong30Ngay, {"charttype","winloss";"color1","#10b981";"color2","#ef4444"})
-- Tao mang du lieu 7 ngay cho SPARKLINE
-- Dat vung nay o CALC sheet, an di:
=ARRAYFORMULA(MMULT((ROW(INDIRECT("A1:A"&COUNTA(DATA_BanHang!A2:A)))),0)+
SUMIFS(DATA_BanHang!H2:H,DATA_BanHang!A2:A,TODAY()-{6,5,4,3,2,1,0}))
Mẹo SPARKLINE hiệu quả:
- • Đặt vùng dữ liệu cho SPARKLINE ở sheet CALC (ẩn) để không làm rối dashboard
- • Kích thước ô nên ít nhất 80px rộng x 40px cao để sparkline đọc được
- • Dùng màu #10b981 (xanh) cho xu hướng tốt, #ef4444 (đỏ) cho xu hướng xấu
- • Kết hợp sparkline với ô bên cạnh hiển thị % thay đổi để context rõ hơn
7. Bước 6: Conditional Formatting RAG Status
RAG (Red-Amber-Green) status là phương pháp hiển thị trực quan tình trạng KPI: Xanh = đạt mục tiêu, Vàng = cần chú ý, Đỏ = nguy hiểm.
// Cach 1: Dung Conditional Formatting trong Google Sheets // Format > Conditional Formatting > Custom formula // O hien thi % dat muc tieu: // Xanh (>= 100%): =B3>=1 Color: #d1fae5 text: #065f46 // Vang (70-99%): =AND(B3>=0.7, B3<1) Color: #fef3c7 text: #92400e // Do (< 70%): =B3<0.7 Color: #fee2e2 text: #991b1b // Cach 2: Dung cong thuc tra ve emoji/text trang thai =IF(TyLeDat>=1, "🟢 DAT MUCTIEU", IF(TyLeDat>=0.7, "🟡 CAN CHU Y", "🔴 NGUY HIEM")) // Cach 3: Dung IFS cho nhieu muc =IFS( TangTruong>0.2, "📈 TANG MANH", TangTruong>0.05, "📈 TANG TOT", TangTruong>-0.05, "➡️ ON DINH", TangTruong>-0.2, "📉 GIAM NHE", TRUE, "⚠️ GIAM MANH" )
Thiết Lập Color Scale Tự Động
// Color scale cho bang du lieu nhieu hang:
// Format > Conditional Formatting > Color scale
// Minpoint: do #fee2e2 (thap nhat)
// Midpoint: vang #fef3c7 (trung binh)
// Maxpoint: xanh #d1fae5 (cao nhat)
// Data bar (thanh mini trong o):
// Them column "Bar" = formula tao chuoi ky tu tao thanh toan:
=REPT("█", ROUND(TyLe*10, 0)) & REPT("░", 10-ROUND(TyLe*10, 0))
// Ket qua: "███████░░░" (70% dat muc tieu)
8. Bước 7: Chọn Loại Biểu Đồ Phù Hợp
| Mục Đích | Loại Biểu Đồ | Ví Dụ Sử Dụng |
|---|---|---|
| Xu hướng theo thời gian | Line Chart (Đường) | Doanh thu 12 tháng, traffic website hàng ngày |
| So sánh các hạng mục | Bar Chart (Cột đứng/ngang) | Doanh thu theo sản phẩm, hiệu suất nhân viên |
| Tỷ lệ phần trăm | Pie/Donut Chart | Cơ cấu doanh thu theo kênh, phân bổ chi phí |
| Tiến độ mục tiêu | Bullet/Gauge Chart | % đạt chỉ tiêu tháng, tiến độ dự án |
| Tương quan 2 biến | Scatter Chart | Chi phí marketing vs doanh thu, giá vs số lượng bán |
| Phân phối dữ liệu | Histogram | Phân bố giá trị đơn hàng, thời gian giao hàng |
Lỗi biểu đồ phổ biến cần tránh:
- ✗ 3D charts — khó đọc số liệu, chỉ dùng để "cho đẹp"
- ✗ Quá nhiều màu sắc (>5 màu trong 1 biểu đồ)
- ✗ Trục Y không bắt đầu từ 0 — gây ảo giác về mức độ thay đổi
- ✗ Pie chart với quá nhiều phần nhỏ (>6 phần) — dùng bar chart thay thế
9. Bước 8: Auto-Refresh Với IMPORTRANGE
Nếu dữ liệu nguồn nằm ở nhiều Google Sheets khác nhau, dùng IMPORTRANGE để kéo về Dashboard tự động.
-- Ket noi du lieu tu file CRM sang Dashboard:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[SPREADSHEET_ID]/edit", "CRM!A2:J")
-- Khi lan dau dung IMPORTRANGE:
-- Google se yeu cau "Allow access" -- click vao o va chon Allow
-- Ket noi nhieu nguon va gop lai (QUERY + IMPORTRANGE):
=QUERY(
{IMPORTRANGE("[ID_1]","BanHang!A2:H");IMPORTRANGE("[ID_2]","BanHang!A2:H")},
"SELECT Col1, Col3, Col8 WHERE Col10='PAID' ORDER BY Col1 DESC"
)
-- Kiem tra IMPORTRANGE co dang hoat dong khong:
=IFERROR(IMPORTRANGE("[ID]","Sheet1!A1"), "KET NOI LOI - KIEM TRA LAI")
-- Tan suat refresh: IMPORTRANGE tu dong cap nhat moi 1-30 giay
-- De refresh ngay lap tuc: File > Spreadsheet settings > Recalculation: On change and every minute
10. Bước 9: Tự Động Hóa Với Apps Script
Apps Script giúp tự động gửi dashboard qua email, tạo snapshot lịch sử, hoặc trigger cảnh báo khi KPI vượt ngưỡng.
// Extensions > Apps Script > Dan vao va Save
// 1. Gui email bao cao hang ngay luc 8:00 sang
function sendDailyKPIReport() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const dashboard = ss.getSheetByName("DASHBOARD")
// Doc cac KPI chinh tu dashboard
const doanhThu = dashboard.getRange("C3").getValue()
const soDon = dashboard.getRange("E3").getValue()
const loiNhuan = dashboard.getRange("G3").getValue()
const tyLeDat = dashboard.getRange("I3").getValue()
const body = `BAO CAO KPI - ${new Date().toLocaleDateString("vi-VN")}
` +
`Doanh thu hom nay: ${doanhThu.toLocaleString("vi-VN")} d
` +
`So don hang: ${soDon}
` +
`Loi nhuan: ${loiNhuan.toLocaleString("vi-VN")} d
` +
`Ty le dat muc tieu: ${(tyLeDat*100).toFixed(1)}%
` +
"Xem Dashboard: " + ss.getUrl()
GmailApp.sendEmail(
"giamdoc@congty.com",
"KPI Report - " + new Date().toLocaleDateString("vi-VN"),
body
)
}
// 2. Canh bao khi KPI xuong duoi nguong
function checkKPIAlert() {
const tyLeDat = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName("DASHBOARD").getRange("I3").getValue()
if (tyLeDat < 0.7) {
GmailApp.sendEmail(
"giamdoc@congty.com",
"CANH BAO: KPI Doanh Thu Duoi 70%",
"Ty le dat muc tieu chi con " + (tyLeDat*100).toFixed(1) + "%. Can xu ly khan cap!"
)
}
}
// 3. Cai trigger: Extensions > Apps Script > Triggers (dong ho)
// sendDailyKPIReport: Time-driven > Day timer > 8:00-9:00am
// checkKPIAlert: Time-driven > Hour timer > Every hour
11. Bước 10: Design Best Practices
Màu Sắc Khuyến Nghị
Typography & Spacing
- • Font: Google Sheets mặc định Arial/Roboto
- • KPI số lớn: font size 24–36pt, bold
- • Label KPI: font size 10–12pt, italic
- • Padding ô: 8–12px (Row height ~40px)
- • Freeze row 1 luôn (header không mất khi scroll)
- • Ẩn gridlines: View > Gridlines (bỏ check)
12. Mẫu Dashboard Theo Ngành
| Ngành | KPI Cốt Lõi | Template SheetStore |
|---|---|---|
| Bán Lẻ / FMCG | Doanh thu/ngày, tồn kho, hàng bán chạy, tỷ lệ hoàn trả | Dashboard Bán Lẻ |
| F&B / Nhà Hàng | Revenue/cover, average check, food cost %, table turnover | Dashboard F&B |
| Dịch Vụ / Agency | Số dự án, utilization rate, doanh thu/người, NPS | Dashboard Agency |
| Bất Động Sản | Leads mới, tỷ lệ chốt, doanh thu môi giới, vòng quay giao dịch | Dashboard BĐS |
| E-commerce | GMV, conversion rate, CAC, LTV, return rate | Dashboard Ecommerce |
SheetStore Dashboard Templates — Đã Xây Dựng Sẵn
Thay vì tự xây từ đầu mất 2–4 tuần, SheetStore cung cấp bộ template dashboard KPI đã được thiết kế chuyên nghiệp cho các ngành phổ biến tại Việt Nam. Chỉ cần nhập dữ liệu của bạn, dashboard tự động cập nhật.
- ✓ 10+ template dashboard theo ngành
- ✓ Công thức SPARKLINE, QUERY đã cấu hình sẵn
- ✓ Conditional formatting RAG status đã setup
- ✓ Apps Script gửi email báo cáo tự động
- ✓ Hướng dẫn tùy chỉnh cho doanh nghiệp của bạn
13. FAQ — Câu Hỏi Thường Gặp
Google Sheets có đủ mạnh để làm dashboard KPI chuyên nghiệp không?
Hoàn toàn đủ cho 90% doanh nghiệp SME. Google Sheets xử lý tốt dataset dưới 100.000 dòng, công thức QUERY mạnh tương đương SQL cơ bản, SPARKLINE và conditional formatting đủ để tạo visual đẹp. Chỉ cần nâng lên Looker Studio hoặc Power BI khi dataset vượt 1 triệu dòng hoặc cần real-time dưới 1 giây.
IMPORTRANGE có làm chậm Google Sheets không?
Có thể nếu dùng quá nhiều. Nguyên tắc: tối đa 5–7 IMPORTRANGE trong một file, mỗi IMPORTRANGE chỉ kéo dữ liệu cần thiết (không kéo cả sheet trống). Dùng QUERY bọc ngoài IMPORTRANGE để lọc trước khi pull về, giảm kích thước dữ liệu truyền tải.
Làm sao để dashboard cập nhật tự động khi có dữ liệu mới?
Có 3 cách: (1) IMPORTRANGE tự động kéo dữ liệu từ file nguồn mỗi 1-30 giây. (2) File Settings > Recalculation > Every minute để công thức volatile như TODAY() và NOW() tính lại mỗi phút. (3) Apps Script với trigger time-based để tính toán phức tạp theo lịch. Kết hợp cả 3 cho dashboard gần real-time.
Bao nhiêu KPI là đủ cho một dashboard?
Nguyên tắc "Dashboard in one glance": tối đa 12 KPI trên màn hình mà không cần scroll, trong đó 4–6 KPI quan trọng nhất hiển thị dạng big number ở đầu trang. Nếu cần nhiều hơn, tạo nhiều tab dashboard theo chủ đề (Kinh doanh, Marketing, Vận hành) thay vì nhét hết vào 1 trang.
Có cần biết code để tạo dashboard KPI không?
Không cần biết code. Các công thức SUMIFS, COUNTIFS, QUERY là đủ cho 80% nhu cầu. Apps Script (JavaScript cơ bản) chỉ cần khi muốn tự động hóa gửi email hoặc tích hợp API bên ngoài. SheetStore cung cấp template đã có sẵn code, bạn chỉ cần điền dữ liệu.
Xây Dashboard KPI Chuyên Nghiệp Ngay Hôm Nay?
SheetStore cung cấp template dashboard KPI sẵn có cho nhiều ngành, tiết kiệm 2–4 tuần xây dựng từ đầu. Chỉ 699.000đ/năm.
📚 Bài Viết Liên Quan
- Template Google Sheets Báo Cáo Bán Hàng Theo Vùng và Đại Lý 2027: Phân Tích Đa Chiều
- Google Sheets Nâng Cao Bài 9: Bảo Mật, Phân Quyền và Chia Sẻ Chuyên Nghiệp
- Google Sheets Nâng Cao Bài 4: Hàm QUERY - Lọc và Phân Tích Dữ Liệu Chuyên Nghiệp
- Template Google Sheets Quản Lý Phòng Khám và Bệnh Viện Nhỏ 2027
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
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.