Bạn có thể dùng dữ liệu trên Google Sheets để tạo dashboard — một trang báo cáo gồm các con số tổng hợp, biểu đồ và bảng chi tiết. Cách làm này có thể áp dụng cho việc theo dõi bán hàng, tiến độ công việc hoặc chăm sóc khách hàng.
Bài viết hướng dẫn tám bước để đọc dữ liệu từ Sheets bằng Google Apps Script (GAS), tạo giao diện và đưa dashboard lên một đường dẫn truy cập. Mỗi bước giải thích việc cần làm, cách thực hiện và kết quả cần kiểm tra.
Bài viết sẽ sử dụng data test trong IT gồm trạng thái các ticket. CSV là file văn bản lưu dữ liệu theo hàng và cột, có thể nhập vào Google Sheets. Bạn cần file mẫu này và tài khoản Google có thể sử dụng Sheets và Apps Script để thực hành.
Link CSV: https://drive.google.com/file/d/1TvmKXxvKmnfPAtsXH6P0zM2jte5Yg7oo/view?usp=sharing
Quy trình từ dữ liệu đến dashboard:
Bạn sẽ bắt đầu với file Tickets.csv và tạo một trang báo cáo có số liệu, biểu đồ và bộ lọc. Tám bước dưới đây cho biết từng việc cần làm; bạn có thể bấm vào tên bước để xem hướng dẫn chi tiết.
- Đưa dữ liệu vào Google Sheets. Nhập Tickets.csv để có một bảng chứa 32 yêu cầu. Đây là dữ liệu gốc mà dashboard sẽ sử dụng.
- Dùng GAS để đọc và xử lý dữ liệu. Cho chương trình đọc bảng, kiểm tra dữ liệu thiếu hoặc sai, rồi tính toán và tổng hợp số liệu.
- Xác định người xem cần biết gì. Viết các câu hỏi dashboard phải trả lời, chẳng hạn “Còn bao nhiêu yêu cầu chưa xong?” hoặc “Có việc nào quá hạn?”.
- Chọn chỉ số và cách tính. Từ các câu hỏi trên, chọn những con số cần hiển thị và thống nhất cách tính từng số, như tổng yêu cầu và số yêu cầu quá hạn.
- Phác bố cục dashboard. Quyết định chỗ đặt bộ lọc, các chỉ số, biểu đồ và bảng chi tiết để người xem dễ tìm thông tin.
- Tạo giao diện bằng HTML Service. Dùng HTML, CSS và JavaScript để làm trang theo bản phác, rồi kết nối trang với phần xử lý dữ liệu trong GAS.
- Triển khai thành GAS Web App. Tạo bản chạy của dashboard, chọn người được phép truy cập và lấy đường dẫn để mở trang.
- Mở dashboard và kiểm tra kết quả. So sánh số liệu với CSV, thử các bộ lọc và kiểm tra xem trang đã trả lời được những câu hỏi ở bước 3 chưa.
1. Google Sheets: đưa dữ liệu mẫu vào bảng tính
Google Sheets là nơi lưu dữ liệu mà dashboard sẽ đọc. Bạn nhập file Tickets.csv vào Sheets để mỗi yêu cầu nằm trên một hàng, còn mỗi cột ghi một thông tin như ngày tạo, trạng thái hoặc hạn xử lý. Những dòng chưa được cộng, đếm hay tổng hợp này được gọi là raw data — dữ liệu gốc.
- Tạo một bảng Google Sheets mới. Chọn File → Import → Upload (Tệp → Nhập → Tải lên), rồi chọn file Tickets.csv.
- Nhập dữ liệu vào một trang tính mới. Nếu được hỏi cách tách cột, chọn dấu phẩy.
- Đổi tên trang tính vừa nhập thành Tickets. Giữ nguyên bảy tên cột trong file CSV để phần code đọc đúng dữ liệu.
- Vào File → Settings (Tệp → Cài đặt), đặt múi giờ GMT+07:00 để việc tính thời hạn thống nhất theo giờ Việt Nam.

2. GAS: đọc, làm sạch và tổng hợp dữ liệu
GAS là công cụ của Google để viết chương trình làm việc với Sheets. Bạn dùng nó để đọc các dòng trong bảng, phát hiện dữ liệu sai và tính những con số sẽ đưa lên dashboard.
Với bộ mẫu, làm sạch là kiểm tra mã trùng, ô thiếu, ngày và số giờ không hợp lệ; tính toán là đếm yêu cầu chưa xong, quá hạn và tính thời gian trung bình; tổng hợp là nhóm các yêu cầu theo ngày hoặc dịch vụ.
- Từ bảng Sheets vừa tạo, chọn Extensions → Apps Script (Tiện ích mở rộng → Apps Script).
- Trong file Code.gs, thêm phần chương trình đọc trang tính Tickets, kiểm tra từng dòng và tổng hợp số liệu.
- Điền ID bảng tính vào cấu hình
SPREADSHEET_ID. ID là đoạn nằm giữa/d/và/edittrong địa chỉ Google Sheets; chỉ lấy đoạn này. - Lưu code và chạy hàm kiểm tra dữ liệu của bộ mẫu, verifySample. Khi được yêu cầu cấp quyền, dùng tài khoản có quyền đọc bảng tính.
- Mở Execution log (nhật ký thực thi) để xem số dòng đã đọc và số dòng bị bỏ qua.
Như ví dụ sau đây để lấy ID của google sheet
Link = https://docs.google.com/spreadsheets/d/1ZQlFl1aYAEOd28ZFlfEnD_KjMW7MdEtFwOpeJHTZ9F4/edit?gid=645430870#gid=645430870
ID = “1ZQlFl1aYAEOd28ZFlfEnD_KjMW7MdEtFwOpeJHTZ9F4”
Và dán code vào file Code.gs
Link Code.gs: https://drive.google.com/file/d/1HzpL9MddoPdEkOnLWAUWUkQqIblYohB0/view?usp=sharing

Và đây là két quả:

3. Dashboard requirements: xác định người dùng cần biết gì
Bạn xác định dashboard phục vụ ai và cần trả lời những câu hỏi nào. Đây là ý nghĩa của dashboard requirements. Các câu hỏi này giúp bạn biết thông tin nào cần đưa lên trang.
Trong ví dụ, người phụ trách muốn biết còn bao nhiêu yêu cầu chưa xong, có việc nào đã quá hạn và dịch vụ nào đang có nhiều yêu cầu hỗ trợ.
Thực hiện như thế nào?
- Ghi người sẽ dùng dashboard và thời điểm họ thường xem, chẳng hạn trước buổi trao đổi công việc hằng ngày.
- Viết ba hoặc bốn câu hỏi mà họ cần được trả lời. Dùng câu cụ thể như “Còn bao nhiêu yêu cầu chưa xong?” thay cho “Cần xem tình hình tổng quan”.
- Với mỗi câu hỏi, ghi người dùng sẽ làm gì sau khi xem kết quả: phân công việc, kiểm tra yêu cầu quá hạn hoặc xem kỹ một dịch vụ.
- Chọn các bộ lọc cần thiết. Với Tickets.csv, đó là ngày tạo, dịch vụ và mức ưu tiên.
Bảng nhu cầu mẫu cho Tickets.csv
Bảng dưới đây là một tình huống sử dụng giả định để thực hành. Bạn cần xác nhận các lựa chọn về người xem và lịch cập nhật với nhóm sẽ sử dụng dashboard.
| Cần làm rõ | Ví dụ áp dụng |
|---|---|
| Ai xem? | Người phụ trách và các thành viên xử lý yêu cầu. |
| Xem để làm gì? | Phát hiện việc đang chậm và chọn những yêu cầu cần kiểm tra trước. |
| Cần biết gì? | Còn bao nhiêu yêu cầu chưa xong? Có việc nào quá hạn? Dịch vụ nào có nhiều yêu cầu? Những việc nào cần ưu tiên? |
| Hành động sau khi xem? | Mở chi tiết yêu cầu, trao đổi với người xử lý và thống nhất thứ tự công việc. |
| Khi nào, ở đâu, trên thiết bị nào? | Trước buổi trao đổi hằng ngày, trên máy tính tại nơi làm việc; có thể xem nhanh bằng điện thoại. |
| Dữ liệu nào được dùng? | 32 yêu cầu trong Tickets.csv, có ngày tạo từ 07/09 đến 13/09/2026; lọc theo ngày tạo, dịch vụ và ưu tiên. |
| Ai cập nhật, khi nào? | Người xử lý cập nhật trạng thái và số giờ trước buổi trao đổi. Người phụ trách kiểm tra dữ liệu; người xem tải lại dashboard để đọc kết quả mới. |
| Ai xác nhận bản mẫu? | Người phụ trách cùng các thành viên dùng thử, thống nhất thông tin cần có trước khi làm giao diện và hẹn ngày kiểm tra lại. |
Giới hạn của dữ liệu mẫu: CSV không có người được phân công, ngày hoàn thành từng yêu cầu hay mức thời gian xử lý mục tiêu. Vì vậy, bạn chưa thể lập báo cáo theo nhân viên hoặc biểu đồ số việc hoàn thành mỗi ngày. Bộ mẫu cũng chỉ thể hiện trạng thái tại một thời điểm; không thể suy ra số việc tồn của từng ngày trong quá khứ.
Nếu một câu hỏi cần thông tin chưa có, hãy ghi rõ là chưa trả lời được và thống nhất cách bổ sung dữ liệu. Không thay một chỉ số khác vào rồi dùng cùng tên. Ví dụ, “yêu cầu mới theo ngày” và “yêu cầu hoàn thành theo ngày” là hai nội dung khác nhau.
4. KPI / metrics: chọn chỉ số và cách tính
Bạn chuyển các câu hỏi ở bước 3 thành những con số có thể tính từ Sheets. Metric là một số liệu đo lường; KPI là chỉ số được chọn để theo dõi một mục tiêu. Ví dụ, số yêu cầu quá hạn có thể là KPI khi nhóm đặt mục tiêu giảm việc trễ hẹn.
Thực hiện như thế nào?
- Chọn bốn chỉ số cho bộ mẫu: tổng yêu cầu, yêu cầu chưa xong, yêu cầu đang quá hạn và thời gian xử lý trung bình.
- Ghi công thức và điều kiện tính của từng chỉ số. “Chưa xong” gồm Open và In Progress; “đã xong” là Resolved.
- Thống nhất cách tính quá hạn: yêu cầu chưa xong có hạn trước ngày kiểm tra thì đang quá hạn. Hạn trong chính ngày đó vẫn còn hiệu lực đến hết ngày.
- Đối chiếu phép tính với CSV, rồi dùng cùng công thức trong GAS.
5. Dashboard design: sắp xếp nội dung và chọn biểu đồ
Bạn phác cách trình bày trước khi viết giao diện. Layout là bố cục trang; hierarchy là thông tin nào cần được nhìn thấy trước; charts là các biểu đồ.
- Đặt bộ lọc ở đầu trang để người xem biết đang chọn khoảng ngày, dịch vụ và mức ưu tiên nào.
- Đặt bốn chỉ số chính ngay phía trên phần kết quả để có thể đọc nhanh.
- Dùng biểu đồ đường để xem số yêu cầu mới theo ngày; dùng thanh ngang để so sánh số yêu cầu giữa các dịch vụ.
- Đặt bảng chi tiết bên dưới. Với bộ mẫu, bảng này liệt kê yêu cầu Critical hoặc High chưa hoàn thành.
Thông tin nào sử dụng số lớn, biểu đồ hay bảng?
| Thông tin cần xem | Cách trình bày và lý do |
|---|---|
| Tổng yêu cầu, chưa xong, quá hạn, giờ trung bình | Dùng ô số liệu lớn để người xem đọc nhanh, ghi rõ tên và đơn vị. |
| Số yêu cầu mới thay đổi theo ngày | Dùng biểu đồ đường: ngày nằm trên trục ngang, số yêu cầu nằm trên trục dọc. Nhìn đường nối để biết số yêu cầu tăng hay giảm qua các ngày. |
| Dịch vụ nào có nhiều yêu cầu? | Dùng thanh ngang để so sánh độ dài; tên dịch vụ có đủ chỗ hiển thị. Sắp xếp số lượng giảm dần để dễ tìm nhóm nhiều nhất. |
| Yêu cầu nào cần xem trước? | Dùng bảng để đọc mã yêu cầu, trạng thái và hạn xử lý. Xếp việc khẩn cấp trước, rồi đến việc có ưu tiên cao; trong cùng mức, việc cũ đứng trước. |

6. HTML Service: tạo giao diện bằng HTML, CSS và JavaScript
HTML Service giúp Apps Script cung cấp trang giao diện cho trình duyệt. HTML tạo các phần nội dung, CSS định dạng chúng, còn JavaScript lấy dữ liệu và cập nhật kết quả khi người dùng thao tác.
Thực hiện như thế nào?
- Trong dự án Apps Script, bấm dấu + ở danh sách Files, chọn HTML và đặt tên Index.
- Mở file Index.html trong bộ mã nguồn đã tải ở bước 2 bằng trình soạn thảo văn bản. Sao chép toàn bộ nội dung, rồi dán thay nội dung mặc định của file Index.html trong Apps Script. Giao diện mẫu đã có bộ lọc, ô số liệu, biểu đồ và bảng chi tiết theo bản phác ở bước 5.
- Trong Index.html, tìm
google.script.runđể xem chỗ giao diện gọi phần xử lý trong Code.gs. Code mẫu đã gửi kèm điều kiện lọc và cập nhật trang khi nhận được kết quả. - Xem các thông báo có sẵn trong giao diện mẫu: đang tải dữ liệu, có lỗi và không có kết quả phù hợp. Bạn có thể chỉnh câu chữ cho đúng cách dùng của mình.
- Code.gs của bộ mẫu đã có hàm
doGet()để trả về file giao diện Index. Kiểm tra tên file giao diện là Index.html, rồi lưu cả hai file.

Và đây là kết

Link index.html: https://drive.google.com/file/d/1–uFsy9dea0NMjE6i_yEDOJnsoLr-wYP/view?usp=sharing
7. GAS Web App: tạo đường dẫn truy cập dashboard
Bạn triển khai dự án thành một ứng dụng web để người dùng mở dashboard bằng đường dẫn. Đây là bước đưa phần xử lý và giao diện vào một bản chạy có thể truy cập.
Thực hiện như thế nào?
- Trong Apps Script, chọn Deploy → New deployment (Triển khai → Triển khai mới).
- Chọn loại triển khai Web app.
- Ở Execute as, chọn tài khoản chương trình sẽ dùng để đọc Sheets. Khi thử với bảng của mình, chọn Me.
- Ở Who has access, chọn ai được mở dashboard. Lần thử cá nhân có thể chọn Only myself nếu tài khoản cung cấp lựa chọn đó.
- Bấm Deploy, hoàn tất yêu cầu cấp quyền rồi sao chép URL ứng dụng web.
Đây là video
8. Dashboard: đọc kết quả và thử bộ lọc
Bạn kiểm tra dashboard có đọc đúng dữ liệu và trả lời được các câu hỏi đã đặt ra hay không. Một trang hiển thị được biểu đồ vẫn cần được đối chiếu với bảng tính trước khi dùng.
Thực hiện như thế nào?
- Mở dashboard và bỏ các điều kiện lọc. Với CSV gốc, tổng phải là 32 yêu cầu, trong đó 12 chưa xong và thời gian xử lý trung bình là 13 giờ.
- Kiểm tra số quá hạn. Tại ngày 13/09/2026, có 7 yêu cầu đang quá hạn. Số này thay đổi nếu dùng ngày kiểm tra khác.
- Chọn Dịch vụ Payment API rồi bấm Áp dụng. Kết quả phải còn 12 yêu cầu, trong đó 4 chưa xong. Bấm Đặt lại để quay về toàn bộ dữ liệu.
- Thử lọc ngày tạo từ 10/09 đến 13/09/2026. Kết quả là 19 yêu cầu, 9 chưa xong và trung bình 13 giờ; có 4 yêu cầu quá hạn nếu kiểm tra tại 13/09/2026.
- Chọn khoảng ngày không có dữ liệu. Trang cần báo không có kết quả phù hợp và bỏ các số liệu cũ.
Video demo:
Nhận xét về cách tạo dashboard từ Google Sheets
Điểm tốt
- Tận dụng bảng dữ liệu đang có. Nhóm vẫn nhập và sửa dữ liệu trong Google Sheets; dashboard đọc bảng đó để tạo báo cáo.
- Chủ động chọn thông tin cần xem. Bạn có thể điều chỉnh chỉ số, bộ lọc và biểu đồ theo nhu cầu. Với Tickets.csv, cùng 32 dòng dữ liệu có thể dùng để xem tổng số yêu cầu, việc quá hạn hoặc tình hình của từng dịch vụ.
- Thuận tiện cho người xem. Sau khi triển khai và cấp quyền, người dùng mở dashboard bằng đường dẫn trên trình duyệt, không cần cài ứng dụng riêng.
Điểm yếu
- Cần người biết sửa code để duy trì. Khi đổi tên cột, công thức hoặc cấu trúc bảng, bạn phải kiểm tra và sửa phần xử lý tương ứng. Việc nhập thiếu hoặc sai dữ liệu cũng có thể làm báo cáo thiếu số liệu.
- Bản mẫu chưa tự cập nhật liên tục. Khi có người sửa Sheets, trang đang mở chưa hiển thị ngay thay đổi đó. Người xem cần tải lại trang hoặc áp dụng bộ lọc để đọc dữ liệu mới.
- Có giới hạn khi mở rộng. Apps Script giới hạn thời gian chạy và số lượt xử lý đồng thời. Vì vậy, trước khi dùng với dữ liệu lớn hoặc nhiều người truy cập cùng lúc, cần kiểm tra khả năng đáp ứng; bộ mẫu 32 dòng chưa đủ để đánh giá điều này. Xem các giới hạn của Apps Script do Google công bố.
Theo tôi, cách này phù hợp cho báo cáo nội bộ khi nhóm đã dùng Sheets và có người phụ trách phần code. Điểm đáng cân nhắc là công sức bảo trì: bạn được tự chọn cách trình bày, nhưng cũng phải tự kiểm tra dữ liệu, công thức và việc cập nhật. Nếu cần báo cáo cập nhật liên tục hoặc phục vụ nhiều người, nên thử với dữ liệu và lượng truy cập thực tế trước khi quyết định sử dụng.
Link tham khảo:
https://www.digital.go.jp/resources/dashboard-guidebook#guidebook-features