Cách vẽ biểu đồ Gantt trên Google Sheets: 3 cách, công thức chép được
Cách vẽ biểu đồ Gantt trên Google Sheets bằng định dạng có điều kiện, hàm SPARKLINE và biểu đồ thanh xếp chồng — có công thức, ví dụ ngày cụ thể.
Công việc & bán hàng · 11 phút đọc
Quản lý công việc nhóm bằng Google Sheets chỉ cần một bảng: mỗi dòng một việc, 6 cột gõ tay và 2 cột công thức tự báo trễ hạn. Từ bảng đó bạn dựng thêm Kanban, trang tổng quan theo người và email nhắc hạn mỗi sáng. Bài đi qua từng bước với công thức chép được, rồi so với khi nào nên dùng mẫu làm sẵn hay ứng dụng như Trello, Asana.

Quản lý công việc nhóm bằng Google Sheets: Kanban, Gantt, nhắc hạn tự động
Xem trên YouTube ↗Ở nhóm 3–10 người, việc thường được giao trong nhóm Zalo, nhắc miệng trong buổi họp, hoặc ghi vào sổ của từng người. Hai tuần sau, không ai trả lời chắc được câu "việc gửi hoá đơn quý 3 đang tới đâu, ai làm". Tin nhắn trôi mất, còn mỗi người một danh sách riêng thì không ai nhìn thấy toàn bộ.
Một bảng tính chung giải quyết đúng chỗ đó: mọi việc nằm một nơi, ai cũng mở được, và công thức tự đánh dấu việc nào trễ. Điều kiện là bảng phải được thiết kế đúng ngay từ đầu — nếu không, nó sẽ thành một danh sách dài mà không ai muốn mở.

Tạo một trang tính tên Công việc, dòng 1 là tiêu đề, mỗi việc một dòng từ dòng 2. Đây là thứ tự cột dùng cho mọi công thức trong bài:
| Cột | Tên | Gõ gì | Ghi chú |
|---|---|---|---|
| A | Công việc | Tên việc, bắt đầu bằng động từ | "Gửi hoá đơn quý 3", không phải "Hoá đơn" |
| B | Người làm | Một người duy nhất | Chọn từ danh sách — hai người thì không ai chịu trách nhiệm |
| C | Ưu tiên | Khẩn cấp / Cao / Trung bình / Thấp | Danh sách cố định |
| D | Trạng thái | Chưa bắt đầu / Đang làm / Bị chặn / Hoàn thành / Đã huỷ | Danh sách cố định — công thức dựa vào đúng chữ này |
| E | Bắt đầu | Ngày | Cần cho Gantt |
| F | Hạn | Ngày | Việc không có hạn sẽ không bao giờ trễ — và thường không bao giờ xong |
| G | Còn lại | Công thức | Số ngày tới hạn, âm là đã trễ |
| H | Tình trạng | Công thức | Trễ hạn / Sắp đến hạn / Đúng tiến độ |
Cột Người làm, Ưu tiên, Trạng thái phải là danh sách chọn, không gõ tự do. Chỉ cần một người gõ "Xong" thay vì "Hoàn thành" là việc đó bị đếm thành trễ hạn mãi mãi. Cách làm: chọn D2:D300 › Dữ liệu › Xác thực dữ liệu › Thêm quy tắc › Menu thả xuống, gõ 5 trạng thái, chọn "Từ chối dữ liệu nhập" cho dữ liệu không hợp lệ. Làm tương tự cho cột B (danh sách thành viên) và C.
Không xoá việc đã xong
Việc hoàn thành vẫn để nguyên trong bảng, chỉ đổi trạng thái. Đó là dữ liệu để biết mỗi tháng nhóm xong bao nhiêu việc, ai hay trễ. Khi bảng quá dài, chuyển các dòng đã xong cũ sang một tab Lưu trữ thay vì xoá.
=IF(OR(A2="";F2="");"";IF(OR(D2="Hoàn thành";D2="Đã huỷ");"";F2-TODAY()))=IF(A2="";"";IF(D2="Hoàn thành";"Hoàn thành";IF(D2="Đã huỷ";"Đã huỷ";IF(F2="";"Chưa có hạn";IF(F2<TODAY();"Trễ hạn";IF(F2<=TODAY()+3;"Sắp đến hạn";"Đúng tiến độ"))))))Thử với ví dụ trong hình, tính tại ngày 13/09/2026: việc "Viết nội dung trang chủ" hạn 12/09 → Còn lại = 12/09 − 13/09 = −1, và vì 12/09 < hôm nay nên Tình trạng = Trễ hạn. Việc "Họp chốt ngân sách" hạn 15/09 → Còn lại = 2, và 15/09 ≤ 16/09 nên là Sắp đến hạn. Kéo hai công thức xuống tới dòng 300.
Để cả dòng việc trễ đổi màu: chọn A2:H300 › Định dạng › Định dạng có điều kiện › Công thức tuỳ chỉnh là =$H2="Trễ hạn", chọn nền hồng nhạt. Thêm một quy tắc thứ hai =$H2="Sắp đến hạn" màu cam nhạt. Dấu $ trước H giữ cho mọi ô trong dòng cùng đọc cột H.

Hạn hiện thành số 46278?
Ngày trong Google Sheets là một con số. Nếu cột F hiện số hoặc hiểu 03/09 thành ngày 9 tháng 3, kiểm tra Tệp › Cài đặt › Vùng đã là Việt Nam chưa — xem cách sửa lỗi ngày tháng trong Google Sheets. Còn nếu cột G hiện ra ngày thay vì số, chọn cột G › Định dạng › Số › Số.
Kanban là cách xem cùng danh sách việc theo cột trạng thái: Chưa bắt đầu, Đang làm, Bị chặn, Hoàn thành. Không cần chép tay — tạo tab Bảng, gõ 4 trạng thái vào A1:D1, rồi dán công thức sau vào A2 và kéo sang D2:
=IFERROR(SORT(FILTER('Công việc'!$A$2:$A$300&" · "&'Công việc'!$B$2:$B$300; 'Công việc'!$D$2:$D$300=A$1); FILTER('Công việc'!$F$2:$F$300; 'Công việc'!$D$2:$D$300=A$1); TRUE); "")Khi ai đó đổi trạng thái ở tab Công việc từ "Chưa bắt đầu" sang "Đang làm", thẻ tự nhảy cột. Hạn chế: Kanban bằng công thức chỉ để xem — muốn kéo thẻ giữa các cột thì cần Apps Script, hoặc vẫn đổi trạng thái ở bảng gốc. IFERROR để cột trống không hiện lỗi #N/A khi chưa có việc nào ở trạng thái đó.

Ngoài Kanban, bảng việc có ngày bắt đầu và hạn còn vẽ được biểu đồ tiến độ theo tuần — xem từng bước ở bài cách vẽ biểu đồ Gantt trên Google Sheets.
Kế hoạch của team đang nằm ở đâu? Kanban + Gantt (Short)
Xem trên YouTube ↗Tạo tab Tổng quan, gõ tên từng thành viên vào A2, A3… Ba cột bên cạnh trả lời câu sếp hay hỏi nhất trong buổi họp đầu tuần:
=COUNTIFS('Công việc'!$B$2:$B$300;$A2;'Công việc'!$D$2:$D$300;"<>Hoàn thành";'Công việc'!$D$2:$D$300;"<>Đã huỷ")=COUNTIFS('Công việc'!$B$2:$B$300;$A2;'Công việc'!$H$2:$H$300;"Trễ hạn")=IFERROR(SORT(FILTER('Công việc'!A2:F300; 'Công việc'!F2:F300<>""; 'Công việc'!F2:F300<=TODAY()+7; 'Công việc'!D2:D300<>"Hoàn thành"; 'Công việc'!D2:D300<>"Đã huỷ"); 6; TRUE); "Không có việc nào đến hạn trong 7 ngày")
Một người có 12 việc đang mở trong khi người khác có 3 là tín hiệu chia lại việc, không phải tín hiệu người đó chậm. Nhìn cột trễ hạn theo người mỗi tuần, bạn thấy sớm ai đang quá tải.
Google Sheets có sẵn Công cụ › Cài đặt thông báo, nhưng nó chỉ báo khi có người sửa file — không nhắc khi việc sắp tới hạn. Muốn có email mỗi sáng, dùng một đoạn Apps Script ngắn: mở Tiện ích mở rộng › Apps Script, xoá nội dung có sẵn, dán:
function nhacHanHangNgay() {
const sh = SpreadsheetApp.getActive().getSheetByName('Công việc');
const n = sh.getLastRow() - 1;
if (n < 1) return;
const rows = sh.getRange(2, 1, n, 8).getValues();
const mai = new Date();
mai.setHours(0, 0, 0, 0);
mai.setDate(mai.getDate() + 1);
const tz = Session.getScriptTimeZone();
const lines = rows
.filter(r => r[0] && r[5] instanceof Date && r[5] <= mai && r[3] !== 'Hoàn thành' && r[3] !== 'Đã huỷ')
.map(r => '- ' + r[0] + ' · ' + r[1] + ' · hạn ' + Utilities.formatDate(r[5], tz, 'dd/MM'));
if (lines.length) {
MailApp.sendEmail(Session.getEffectiveUser().getEmail(),
'Việc trễ hạn và đến hạn ngày mai (' + lines.length + ')', lines.join('\n'));
}
}Muốn mỗi người nhận email việc của riêng mình, thêm một bảng tên → email rồi gom dòng theo cột B trước khi gửi. Google giới hạn số email Apps Script gửi mỗi ngày, nên với nhóm đông, gom thành một email cho mỗi người thay vì một email cho mỗi việc.
Khoá các cột công thức
Khi cả nhóm cùng sửa, sớm muộn sẽ có người gõ đè lên cột Còn lại hay Tình trạng. Bảo vệ cột G:H để chỉ bạn sửa được — xem cách khoá ô công thức trong Google Sheets.
Bảng chỉ có ích khi cả nhóm cập nhật nó. Một nhịp đơn giản mà nhóm nhỏ giữ được:
Muốn mỗi người chỉ thấy việc của mình mà không làm rối màn hình người khác, dùng Dữ liệu › Tạo chế độ xem bộ lọc, lọc cột B theo tên rồi đặt tên chế độ xem. Mỗi người mở chế độ xem của mình; bộ lọc thường thì đổi màn hình của cả nhóm.
Đánh dấu xong 1 việc, 3 chỗ trong file tự đổi theo (Short)
Xem trên YouTube ↗| Tự dựng theo bài này | Bảng theo dõi công việc PRO | |
|---|---|---|
| Bảng việc, báo trễ hạn | Có, với 2 công thức ở trên | Có sẵn, cột công thức đã khoá |
| Kanban | Xem bằng FILTER, không kéo thả | Tab Bảng + hộp thoại kéo thả (Google Sheets) |
| Gantt | Tự làm bằng định dạng có điều kiện | Tab Tiến độ 8 tuần + Gantt kéo thanh đổi ngày |
| Việc định kỳ | Tự thêm bảng và công thức | Tab Định kỳ, tự tính hạn kế tiếp |
| Nhắc hạn | Email cho chủ file bằng đoạn script trên | Email, Google Chat hoặc Telegram, báo cáo tuần |
| Chấm giờ làm | Tự thêm sheet | Tab Chấm công theo việc và người |
| Chi phí | Miễn phí | Mua một lần |
Bảng tính hợp với nhóm nhỏ, việc có cấu trúc giống nhau, cần báo cáo theo ý mình và không muốn trả phí theo đầu người mỗi tháng. Nhóm đông, nhiều dự án chồng chéo, cần bình luận và đính kèm file trên từng thẻ thì ứng dụng chuyên dụng sẽ hợp hơn. So sánh chi tiết ở quản lý công việc bằng Google Sheets hay Trello, Asana, hoặc từng cặp: với Trello, với Asana, với Smartsheet, với Base Wework.
Nếu nhóm của bạn là đội bán hàng, việc chính là gọi lại khách thay vì làm dự án, thì cấu trúc bảng khác hẳn — xem quản lý khách hàng tiềm năng bằng Google Sheets.
Hợp nhất với người làm một mình và nhóm nhỏ cùng sửa một file. Khi nhóm đông, nhiều dự án song song và cần trao đổi trên từng việc, ứng dụng quản lý dự án sẽ gọn hơn — xem Google Sheets hay Trello, Asana.
Dùng Chế độ xem bộ lọc (Dữ liệu › Tạo chế độ xem bộ lọc) — mỗi người lọc theo tên mình mà không ảnh hưởng người khác. Lưu ý đây chỉ là cách xem: ai có quyền mở file vẫn thấy mọi dòng.
Tạo bảng Định kỳ: tên việc, ngày bắt đầu (B2), chu kỳ 7 ngày. Hạn kế tiếp = =IF(TODAY()<=B2;B2;B2+7*CEILING((TODAY()-B2)/7;1)). Ví dụ bắt đầu thứ Hai 07/09, hôm nay 10/09 → hạn kế tiếp 14/09.
Ứng dụng Google Sheets xem và sửa bảng được, công thức và màu vẫn chạy. Menu và hộp thoại tự tạo bằng Apps Script thì không hiện trên ứng dụng điện thoại. Xem thêm Google Sheets hay Excel.
Được với Excel 365 hoặc 2021: các công thức IF, COUNTIFS, FILTER, SORT và định dạng có điều kiện đều có (máy để vùng tiếng Anh thì đổi dấu ; thành dấu phẩy). Đoạn script nhắc hạn là Apps Script nên chỉ chạy trên Google Sheets.
Cách vẽ biểu đồ Gantt trên Google Sheets bằng định dạng có điều kiện, hàm SPARKLINE và biểu đồ thanh xếp chồng — có công thức, ví dụ ngày cụ thể.
Cách quản lý khách hàng tiềm năng (lead) bằng Google Sheets: hai bảng cần có, công thức chuẩn hoá số điện thoại, chấm điểm, nhắc gọi lại và đo phễu.
Google Sheets hay Excel: so chi phí, làm chung, dùng trên điện thoại, khi mất mạng, giới hạn dữ liệu, Apps Script với VBA và các công thức khác nhau.
Hướng dẫn dựng file quản lý phòng trọ: 6 bảng cần có, công thức tính tiền điện nước, tiền phòng theo ngày, công nợ và vòng 6 bước mỗi tháng.
Xem thêm mẹo và video hướng dẫn trên kênh YouTube HiTaVa, hoặc đọc các bài khác trong chủ đề Công việc & bán hàng.
Cần hỏi thêm?Zalo 0935077673 (Hải Vân)