# 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 nhanh và dễ sửa nhất là tô màu ô bằng định dạng có điều kiện: mỗi cột là một ngày, ô nào nằm giữa ngày bắt đầu và hạn của dòng đó thì tự tô. Bài hướng dẫn cách này từng bước, thêm màu cho việc quá hạn, phần đã xong, cột hôm nay — rồi hai cách khác là hàm SPARKLINE và biểu đồ thanh xếp chồng, kèm bảng so sánh khi nào dùng cách nào.

Đăng 2026-10-10 · 10 phút đọc · Gantt, Google Sheets, Định dạng có điều kiện, SPARKLINE, Công thức

## Biểu đồ Gantt là gì, khi nào cần

Biểu đồ Gantt xếp các việc theo dòng và thời gian theo cột; mỗi việc là một thanh ngang chạy từ ngày bắt đầu tới hạn. Nhìn vào là thấy ngay việc nào chồng lên việc nào, tuần nào cả nhóm đang dồn việc, và việc nào đã trượt quá hạn.

Danh sách việc kiểu bảng trả lời "việc gì, ai làm, hạn bao giờ". Gantt trả lời câu khác: "**tuần sau có kịp không**". Nó cần khi việc có độ dài vài ngày trở lên và phụ thuộc nhau — ra mắt sản phẩm, làm website, tổ chức sự kiện. Nếu toàn việc làm trong một buổi, danh sách có cột hạn là đủ.

- **Cột cần có:** Việc, Bắt đầu, Hạn
- **Công thức chính:** 1 quy tắc định dạng có điều kiện
- **Cách khác:** SPARKLINE, biểu đồ thanh xếp chồng
- **Chạy trên:** Google Sheets, Excel

## Cách 1: vẽ Gantt bằng định dạng có điều kiện (từng bước)

![Lưới Gantt 5 việc từ 14/9 tới 27/9: Khảo sát khách hàng màu xám đã xong, Sửa lỗi thanh toán màu đỏ quá hạn, Viết nội dung có phần đầu tím đậm là phần đã xong, cột 18/9 tô nhạt là hôm nay, cột thứ Bảy Chủ nhật tô xám nhạt](https://www.hitava.cloud/img/blog/cach-ve-bieu-do-gantt-tren-google-sheets/gantt-luoi.webp)
*Kết quả sau khi làm xong các bước bên dưới. Hôm nay là 18/09.*

Dùng bảng việc có sẵn, hoặc tạo trang tính mới với bố cục sau (dòng 1 là tiêu đề, mỗi việc một dòng từ dòng 2):

| Cột | Nội dung | Ví dụ dòng 4 |
|---|---|---|
| A | Việc | Viết nội dung |
| B | Người làm | Lan |
| C | Bắt đầu | 16/09/2026 |
| D | Hạn | 23/09/2026 |
| E | Trạng thái | Đang làm |
| F | Tiến độ (%) | 50% |
| G1 → AJ1 | Mỗi ô một ngày | 14/09, 15/09, … 13/10 (30 ngày) |

1. **Ngày đầu tiên** — ô G1 gõ một ngày, hoặc dùng =TODAY()-WEEKDAY(TODAY();2)+1 để lưới luôn bắt đầu từ thứ Hai tuần này. Ví dụ hôm nay thứ Sáu 18/09/2026: WEEKDAY trả về 5, nên G1 = 18 − 5 + 1 = **14/09**.
2. **Các ngày tiếp theo** — ô H1 gõ =G1+1, kéo sang phải tới AJ1 là 30 ngày.
3. **Cho cột hẹp lại** — chọn G1:AJ1 › Định dạng › Số › Định dạng ngày giờ tuỳ chỉnh, chỉ giữ "Ngày" (hiện 14, 15, 16…). Chọn cột G:AJ, kéo độ rộng còn khoảng 28 điểm ảnh.
4. **Quy tắc tô màu** — chọn vùng G2:AJ50 › **Định dạng › Định dạng có điều kiện** › Quy tắc định dạng: **Công thức tuỳ chỉnh là**, dán công thức bên dưới, chọn màu nền tím, bấm Xong.

Ô được tô khi dòng đó có ngày bắt đầu, và ngày của cột nằm trong khoảng Bắt đầu → Hạn:

```
=AND($C2<>"";G$1>=$C2;G$1<=$D2)
```

![Minh hoạ cách Google Sheets đọc công thức ở ô K4 (18/09 nằm giữa 16/09 và 23/09 nên TRUE, ô được tô) và ô K5 (18/09 trước ngày bắt đầu 21/09 nên FALSE, ô trắng); giải thích $C2 khoá cột và G$1 khoá dòng](https://www.hitava.cloud/img/blog/cach-ve-bieu-do-gantt-tren-google-sheets/doc-cong-thuc.webp)
*Bạn chỉ viết công thức cho ô G2. Sheets tự dời công thức sang từng ô khác trong vùng.*

**Sai dấu $ là lưới tô lung tung:** Viết $C2 (khoá cột, không khoá dòng) và G$1 (khoá dòng, không khoá cột). Viết nhầm $C$2 thì mọi dòng đều đọc ngày bắt đầu của việc đầu tiên; viết nhầm G1 thì dòng 3 sẽ so với ô G2 thay vì tiêu đề ngày.

## Thêm màu: quá hạn, phần đã xong, hôm nay, cuối tuần

Một màu cho mọi thanh thì chưa nói được nhiều. Thêm các quy tắc dưới đây vào **cùng vùng G2:AJ50**. Google Sheets dùng quy tắc **đầu tiên đúng** trong danh sách cho mỗi ô, nên thứ tự quan trọng — kéo các quy tắc cho đúng thứ tự này:

*Quy tắc 2 đứng sau quy tắc 1 nên việc đã xong không bao giờ bị tô đỏ.*

| Thứ tự | Màu | Công thức tuỳ chỉnh |
|---|---|---|
| 1 | Xám — đã hoàn thành | =AND($C2<>"";G$1>=$C2;G$1<=$D2;$E2="Hoàn thành") |
| 2 | Đỏ hồng — quá hạn chưa xong | =AND($C2<>"";G$1>=$C2;G$1<=$D2;$D2<TODAY()) |
| 3 | Tím đậm — phần đã xong theo % | =AND($C2<>"";G$1>=$C2;G$1<$C2+ROUND(($D2-$C2+1)*$F2;0)) |
| 4 | Tím nhạt — thanh việc | =AND($C2<>"";G$1>=$C2;G$1<=$D2) |
| 5 | Tím rất nhạt — cột hôm nay | =G$1=TODAY() |
| 6 | Xám rất nhạt — thứ Bảy, Chủ nhật | =WEEKDAY(G$1;2)>5 |

Thử quy tắc 3 với dòng "Viết nội dung": từ 16/09 tới 23/09 là 8 ngày, tiến độ 50% → ROUND(8 × 0,5) = 4 ngày. Ô được tô đậm khi ngày của cột < 16/09 + 4 = 20/09, tức các ngày **16, 17, 18, 19**. Bốn ngày còn lại do quy tắc 4 tô nhạt. Cột Tiến độ để trống thì quy tắc 3 không tô ô nào.

Dự án dài vài tháng thì cho mỗi cột là **một tuần**: H1 đổi thành =G1+7, và quy tắc thanh việc đổi thành =AND($C2<>"";G$1+6>=$C2;G$1<=$D2) — cột tuần được tô khi tuần đó chạm vào khoảng Bắt đầu → Hạn.

**Ngày gõ vào bị hiểu ngược tháng:** Nếu bạn gõ 03/09 mà thanh hiện ở tháng 3, file đang để vùng Hoa Kỳ. Đổi ở Tệp › Cài đặt › Vùng: Việt Nam — chi tiết ở [cách sửa lỗi ngày tháng trong Google Sheets](https://www.hitava.cloud/blog/sua-loi-ngay-thang-google-sheets).

## Cách 2: thanh Gantt trong một ô bằng hàm SPARKLINE

SPARKLINE vẽ một biểu đồ nhỏ ngay trong ô. Với kiểu "bar", nó vẽ các đoạn nối nhau: đoạn đầu màu trắng (khoảng trống từ mốc tới ngày bắt đầu), đoạn sau màu tím (độ dài việc). Gõ mốc đầu vào K1 (ví dụ 01/09/2026) và mốc cuối vào L1 (31/10/2026), rồi ở cột G:

Thanh của dòng 2. Kéo xuống cho các dòng khác; nới rộng cột G cho thanh dài ra:

```
=SPARKLINE({MAX(0;C2-$K$1)\D2-MAX(C2;$K$1)+1};{"charttype"\"bar";"max"\$L$1-$K$1+1;"color1"\"white";"color2"\"#7E6CD9"})
```

Ví dụ việc 15/09 → 30/09: đoạn trắng = 15/09 − 01/09 = **14** ngày, đoạn tím = 30/09 − 15/09 + 1 = **16** ngày, cả trục dài 31/10 − 01/09 + 1 = **61** ngày. Thanh tím bắt đầu ở khoảng 23% chiều rộng ô và dài khoảng 26%.

**Dấu \ trong mảng là do vùng Việt Nam:** File để vùng Việt Nam (dấu phẩy là dấu thập phân) thì trong dấu ngoặc nhọn, các cột cách nhau bằng \ và các dòng bằng ;. File để vùng Hoa Kỳ thì đổi \ thành dấu phẩy và mọi ; giữa đối số thành dấu phẩy.

SPARKLINE gọn và không cần cột ngày, nhưng không có nhãn ngày, không tô được cột hôm nay hay cuối tuần, và mỗi thanh chỉ có hai màu xen kẽ. Hợp để gắn một cột "thanh thời gian" vào bảng việc có sẵn, không hợp để họp xem tiến độ.

## Cách 3: biểu đồ thanh xếp chồng

Cách này dùng biểu đồ có sẵn của Google Sheets, hợp để chèn vào báo cáo hoặc slide. Cần hai cột phụ, ví dụ H "Lệch" = =C2-$K$1 (số ngày từ mốc đầu tới ngày bắt đầu) và I "Số ngày" = =D2-C2+1.

1. Chọn cột A (tên việc), giữ Ctrl (Cmd trên Mac) chọn thêm cột H và I, gồm cả dòng tiêu đề.
2. **Chèn › Biểu đồ**, ở Loại biểu đồ chọn **Biểu đồ thanh xếp chồng**.
3. Tab Tuỳ chỉnh › Chuỗi › chọn chuỗi "Lệch" › Độ mờ của màu nền: 0%. Đoạn lệch biến mất, chỉ còn thanh "Số ngày" nằm đúng chỗ.
4. Nếu việc đầu tiên nằm dưới cùng, bật đảo ngược thứ tự ở phần Trục dọc.

Hạn chế: trục ngang hiện số ngày tính từ mốc K1 chứ không phải ngày tháng, và đổi màu theo trạng thái thì phải tách thành nhiều chuỗi. Biểu đồ cũng không tự thêm việc mới nếu bạn chỉ chọn đúng vùng dữ liệu hiện có — chọn rộng hơn (ví dụ A1:A100) ngay từ đầu.

## Nên dùng cách nào?

|  | Định dạng có điều kiện | SPARKLINE | Biểu đồ xếp chồng |
|---|---|---|---|
| Dựng mất | 10–15 phút | 5 phút | 10 phút |
| Thấy ngày, cuối tuần, hôm nay | Có | Không | Chỉ số ngày |
| Màu theo trạng thái, % xong | Có (nhiều quy tắc) | Không | Phải tách chuỗi |
| Việc mới tự hiện | Có, trong vùng đã áp quy tắc | Có, khi kéo công thức xuống | Có, nếu chọn vùng rộng |
| Hợp với | Theo dõi hằng ngày, họp nhóm | Thêm một cột vào bảng có sẵn | Báo cáo, slide |

Với nhóm nhỏ theo dõi việc mỗi ngày, cách 1 là đủ và dễ sửa nhất. Gantt chỉ là một góc nhìn của bảng việc — cách dựng bảng việc, cột trạng thái, Kanban và nhắc hạn nằm ở bài [quản lý công việc nhóm bằng Google Sheets](https://www.hitava.cloud/blog/quan-ly-cong-viec-nhom-bang-google-sheets).

## Gantt trong Bảng theo dõi công việc PRO

Mẫu Bảng theo dõi công việc PRO dùng đúng cách 1 cho tab **Tiến độ**: lưới 8 tuần với ô "Từ ngày" gõ đè để cuộn lịch, việc quá hạn tự tô đỏ, chỉ hiện việc đã có cả ngày bắt đầu và hạn. Tab này chạy cả trên Excel.

![Tab Tiến độ của Bảng theo dõi công việc PRO: ô Từ ngày 07/09/2026, mỗi việc một dòng với người làm, bắt đầu, hạn, các thanh hồng là việc quá hạn và thanh tím là việc đang đúng tiến độ](https://www.hitava.cloud/img/blog/cach-ve-bieu-do-gantt-tren-google-sheets/tab-tien-do.webp)
*Tab Tiến độ: thanh hồng là việc đã quá hạn, thanh tím là việc còn trong hạn.*

Trên Google Sheets, gói Apps Script đi kèm mở thêm hộp thoại Gantt: xem theo tuần, tháng, quý, nhóm theo dự án, và **kéo thanh để dời ngày** hoặc kéo mép để đổi ngày bắt đầu, hạn — ngày trong bảng việc tự cập nhật theo.

![Hộp thoại Gantt của Bảng theo dõi công việc PRO: chế độ Tuần, nhóm theo dự án, thanh màu theo đang làm, sắp hạn, trễ, xong, mốc hình thoi và vạch đỏ ngày hôm nay](https://www.hitava.cloud/img/blog/cach-ve-bieu-do-gantt-tren-google-sheets/gantt-keo-tha.webp)
*Gantt kéo thả (chỉ trên Google Sheets, cần máy tính): thanh cam sắp hạn, hồng trễ, hình thoi là mốc.*

→ [Không muốn tự dựng sáu quy tắc màu? Bảng theo dõi công việc PRO có sẵn tab Tiến độ 8 tuần, Kanban, Lịch, nhắc hạn, và trên Google Sheets có Gantt kéo thanh để đổi ngày.](https://www.hitava.cloud/san-pham/bang-theo-doi-cong-viec-pro)

Video: [Kế hoạch của team đang nằm ở đâu? Kanban + Gantt (Short)](https://youtu.be/iCgQm1yx1aI)

Đang cân nhắc giữa bảng tính và phần mềm có Gantt sẵn, xem [Bảng theo dõi công việc PRO và Smartsheet](https://www.hitava.cloud/so-sanh/cong-viec-pro-va-smartsheet) hoặc [Google Sheets hay Trello, Asana](https://www.hitava.cloud/so-sanh/quan-ly-cong-viec-google-sheets-hay-trello-asana).

- [Quản lý công việc nhóm bằng Google Sheets](https://www.hitava.cloud/blog/quan-ly-cong-viec-nhom-bang-google-sheets): Bảng việc, công thức trễ hạn, Kanban, nhắc hạn qua email
- [Cách sửa lỗi ngày tháng trong Google Sheets](https://www.hitava.cloud/blog/sua-loi-ngay-thang-google-sheets): Vùng, 03/07 thành 7/3, DATEVALUE
- [Cách khoá ô công thức trong Google Sheets](https://www.hitava.cloud/blog/khoa-o-cong-thuc-google-sheets): Giữ lưới Gantt không bị gõ đè
- [Hướng dẫn cài đặt Bảng theo dõi công việc PRO](https://www.hitava.cloud/huong-dan/bang-theo-doi-cong-viec-pro): Cài Apps Script để mở hộp thoại Gantt

## Câu hỏi thường gặp

**Google Sheets có sẵn biểu đồ Gantt không?**

Không có loại biểu đồ tên "Gantt" trong trình chỉnh sửa biểu đồ thông thường. Ba cách phổ biến là tô ô bằng định dạng có điều kiện, hàm SPARKLINE, và biểu đồ thanh xếp chồng với chuỗi đầu tiên để trong suốt — như trong bài.

**Vì sao lưới không tô màu gì cả?**

Thường do một trong ba lỗi: cột C, D là chữ chứ không phải ngày (căn trái là dấu hiệu); dòng tiêu đề G1 không phải ngày; hoặc công thức sai dấu $. Thử gõ =ISNUMBER(C2) vào một ô trống — ra FALSE là ngày đang ở dạng chữ.

**Làm sao không tính thứ Bảy, Chủ nhật vào thời gian việc?**

Quy tắc cuối tuần chỉ tô nền xám. Muốn hạn tự tính theo ngày làm việc, dùng =WORKDAY(C2;số_ngày-1) cho cột Hạn, hoặc =NETWORKDAYS(C2;D2) để đếm số ngày làm việc của một việc.

**Có làm được Gantt như vậy trên Excel không?**

Được. Excel cũng có định dạng có điều kiện bằng công thức (Home › Conditional Formatting › New Rule › Use a formula). Công thức giữ nguyên, chỉ đổi dấu ; thành dấu phẩy nếu Excel để vùng tiếng Anh. Xem thêm [Google Sheets hay Excel](https://www.hitava.cloud/blog/google-sheets-hay-excel).

**Có kéo thanh Gantt để đổi ngày trong Google Sheets được không?**

Không với ô và định dạng có điều kiện — bạn đổi ngày ở cột Bắt đầu, Hạn và thanh tự dời theo. Kéo thả cần một hộp thoại viết bằng Apps Script, như hộp thoại Gantt trong Bảng theo dõi công việc PRO.

## Mẫu liên quan

- https://www.hitava.cloud/san-pham/bang-theo-doi-cong-viec-pro

Trang bài viết: https://www.hitava.cloud/blog/cach-ve-bieu-do-gantt-tren-google-sheets