Cách Theo Dõi Hợp Đồng Thuê Phòng Trọ Sắp Hết Hạn 2026
Mục lục:
Trả lời nhanh: Lập một bảng hợp đồng trong Google Sheets có cột ngày kết thúc, dùng công thức so ngày kết thúc với TODAY() để báo "Sắp hết hạn" khi còn 30 ngày trở xuống và "Đã hết hạn" khi quá ngày, rồi tô màu có điều kiện. Mở bảng mỗi tuần một lần để xử lý kịp.
Thử hình dung anh Tuấn, chủ một dãy trọ 12 phòng. Hợp đồng của anh ghi tay trong cuốn sổ, mỗi người thuê một trang, ngày hết hạn gạch chân bút đỏ. Tháng này cuốn sổ nằm ở nhà, anh đang ở dãy trọ bên kia. Có phòng vừa hết hạn từ tuần trước mà không ai nhắc, khách vẫn ở, vẫn đóng tiền, nhưng hai bên chưa hề nói chuyện gia hạn hay chỉnh giá. Đến lúc anh nhớ ra thì mọi thứ đã trôi qua một nhịp, và việc thương lượng lại trở nên gượng gạo.
Đây là tình huống minh họa, nhưng chủ trọ nào có hơn chục phòng cũng dễ gặp. Chuyện quên không nằm ở trí nhớ của bạn. Hạn hợp đồng rải đều trong năm, mỗi phòng một ngày, và không có thứ gì chủ động báo bạn biết. Bài này hướng dẫn dựng một bảng theo dõi trong Google Sheets để bảng tự báo thay bạn.
Bảng hợp đồng cần những cột nào
Đừng bắt đầu bằng công thức. Bắt đầu bằng một bảng sạch, vì công thức chỉ chạy đúng khi dữ liệu nhập đúng. Tạo một tab tên "HopDong" với dòng 1 là tiêu đề và dữ liệu bắt đầu từ dòng 2:
| Cột | Nội dung | Ghi chú nhập liệu |
|---|---|---|
| A | Phòng | Ví dụ P101, P102 |
| B | Người thuê | Tên người đứng hợp đồng |
| C | Ngày bắt đầu | Định dạng ngày, ví dụ 01/03/2026 |
| D | Ngày kết thúc | Định dạng ngày, ví dụ 31/08/2026 |
| E | Tiền cọc | Số thuần, ví dụ 3000000 |
| F | Nợ tồn | Tổng tiền phòng, điện nước còn nợ |
| G | Trạng thái | Công thức tự điền |
| H | Số ngày còn lại | Công thức tự điền |
Có hai lỗi hay gặp ở bước này. Thứ nhất, cột C và D phải là ngày thật chứ không phải chữ trông giống ngày. Bấm vào ô, nếu ngày canh lề trái thì nhiều khả năng Sheets đang hiểu nó là văn bản. Chọn cả hai cột, vào Định dạng, Số, Ngày để ép về dạng ngày. Thứ hai, cột E và F nên nhập số thuần, không gõ "3tr" hay "3.000.000đ", nếu không về sau không cộng trừ được.
Mỗi hợp đồng một dòng. Khi gia hạn, đừng ghi đè ngày cũ, hãy thêm một dòng mới với ngày bắt đầu mới. Giữ lại lịch sử sẽ có ích khi hai bên nhớ khác nhau về lần gia hạn trước.

Công thức báo "sắp hết hạn" và "đã hết hạn"
Giả sử hôm nay là 10/08/2026 và bảng có ba dòng:
| Phòng | Người thuê | Ngày kết thúc | Kết quả mong muốn |
|---|---|---|---|
| P101 | Minh | 31/08/2026 | Sắp hết hạn (còn 21 ngày) |
| P102 | Hạnh | 05/08/2026 | Đã hết hạn |
| P103 | Quân | 28/02/2027 | Còn hạn |
Ở ô G2, dán công thức sau rồi kéo xuống các dòng dưới:
=IF(D2="","",IF(D2<TODAY(),"Đã hết hạn",IF(D2-TODAY()<=30,"Sắp hết hạn","Còn hạn")))
Đọc từ ngoài vào trong: ô ngày kết thúc để trống thì không hiện gì. Ngày kết thúc nhỏ hơn hôm nay thì là "Đã hết hạn". Còn lại, nếu khoảng cách tới hôm nay không quá 30 ngày thì là "Sắp hết hạn", ngoài ra là "Còn hạn". Con số 30 là gợi ý, vì một tháng đủ để nhắn khách, hỏi ý định và tính lại giá nếu cần. Nếu hợp đồng của bạn thường ngắn hơn, đổi thành 20 hoặc 15 cũng được, miễn thống nhất một con số cho cả bảng.
Ở ô H2, thêm số ngày còn lại để dễ sắp xếp theo mức độ gấp:
=IF(D2="","",D2-TODAY())
Kết quả âm nghĩa là đã quá hạn bấy nhiêu ngày. Với dòng P102 ở trên, H2 sẽ ra -5. Nhìn con số này, bạn biết ngay phòng đó đã trôi qua 5 ngày mà chưa ai nói chuyện gia hạn.
Muốn có thêm một ô tổng quan ở đầu tab, ví dụ ô J1, dùng:
=COUNTIF(G2:G200,"Sắp hết hạn")
Mở file ra là thấy ngay "có mấy phòng cần gọi tuần này" mà không phải cuộn cả bảng. Muốn một danh sách riêng chỉ gồm các phòng sắp hết hạn, xếp theo ngày gần nhất, đặt công thức này ở một tab khác:
=IFERROR(SORT(FILTER(HopDong!A2:D200,HopDong!G2:G200="Sắp hết hạn"),4,TRUE),"Không có phòng nào")
Đối số 4 là cột thứ tư của vùng vừa lọc, tức cột ngày kết thúc. IFERROR giữ cho ô không hiện lỗi đỏ khi tháng đó chưa có phòng nào gần hạn.

Tô màu để nhìn lướt là biết
Chữ trong cột G đã đủ thông tin, nhưng mắt người đọc màu nhanh hơn đọc chữ. Chọn vùng A2:H200, vào Định dạng, Định dạng có điều kiện, chọn "Công thức tùy chỉnh". Bạn cần hai luật.
Luật đỏ cho hợp đồng đã quá hạn:
=AND($D2<>"",$D2<TODAY())
Luật vàng cho hợp đồng trong 30 ngày tới:
=AND($D2<>"",$D2>=TODAY(),$D2-TODAY()<=30)
Dấu đô la đứng trước chữ D để khóa cột, còn số dòng thì để trượt. Nhờ vậy cả hàng đổi màu theo ngày kết thúc của chính hàng đó, không chỉ mỗi ô D. Điều kiện phải bao gồm $D2<>"", nếu không các dòng trống cũng bị tô vì ô trống được hiểu là ngày 0.
Thứ tự luật cũng có ý nghĩa. Với hai điều kiện loại trừ nhau như trên thì sắp xếp thế nào cũng được, nhưng nếu sau này bạn thêm luật thứ ba, hãy để luật đỏ ở trên cùng. Sheets áp dụng luật đầu tiên khớp.
Khi khách gia hạn hoặc trả phòng: làm theo thứ tự nào
Bảng báo hạn chỉ làm xong nửa việc. Nửa còn lại là bạn làm gì khi dòng đã chuyển vàng. Quy trình sau ít sót nhất, và nó chạy được trên chính cái bảng ở trên.
Trước hạn 30 ngày: hỏi ý định
Khi dòng chuyển vàng, nhắn hoặc gặp khách để hỏi họ ở tiếp hay không. Ghi câu trả lời vào một cột phụ, ví dụ cột I "Ý định". Chỉ cần ba giá trị: "Ở tiếp", "Trả phòng", "Chưa rõ". Cột này cho bạn biết phòng nào cần tìm người thuê mới sớm, và phòng nào đã yên tâm.
Nếu gia hạn
Thêm dòng mới ngay dưới dòng cũ với ngày bắt đầu là ngày kế tiếp ngày kết thúc cũ, ngày kết thúc mới theo kỳ hạn hai bên thống nhất. Dòng cũ để nguyên, chuyển chữ trong cột I thành "Đã gia hạn". Khoản cọc nếu giữ nguyên thì chép sang dòng mới, còn nợ tồn nếu có thì phải ghi rõ ở cột F của dòng mới để không bị bỏ sót.
Nếu trả phòng: tính trừ nợ vào cọc
Giả sử phòng P102 của chị Hạnh có tiền cọc 3.000.000đ. Đến ngày trả phòng, còn nợ tiền phòng 1.200.000đ và tiền điện nước 350.000đ, tổng nợ là 1.550.000đ. Cách tính rất đơn giản: cọc trừ nợ, phần dư là số hoàn lại.
Với E2 là tiền cọc và F2 là nợ tồn, hai công thức sau cho ra hai con số bạn cần:
Số hoàn lại cho khách: =MAX(E2-F2,0)
Số khách còn phải đóng thêm: =MAX(F2-E2,0)
Với ví dụ trên, số hoàn lại là 3.000.000 trừ 1.550.000, bằng 1.450.000đ, và số khách còn phải đóng thêm bằng 0. Nếu nợ là 3.400.000đ thay vì 1.550.000đ, cọc không đủ bù, khách còn phải đóng thêm 400.000đ. Hàm MAX giữ cho kết quả không bao giờ âm, nên ô nào cũng đọc được ngay.
Lưu ý nhỏ về thao tác: chốt chỉ số điện nước ngày trả phòng trước khi tính F2, vì khoản nợ sai thì phép trừ đúng cũng vô ích. Nếu khách rời đi giữa tháng, cách tính tiền phòng theo số ngày ở thực tế có trong bài Cách Tính Tiền Phòng Trọ Khi Thuê Giữa Tháng 2026. Còn các quy định về tiền cọc nói chung, bạn nên hỏi người có chuyên môn thay vì tự suy ra từ một bảng tính.
Thói quen khiến bảng không bị bỏ xó
Công thức hay mà không ai mở file thì cũng như cuốn sổ để quên ở nhà. Hai thói quen nhỏ giữ cho bảng sống được.
Thứ nhất, chọn một ngày cố định trong tuần, chẳng hạn sáng thứ Hai, để mở tab "HopDong" và nhìn ô đếm "Sắp hết hạn". Không cần gì hơn: nếu ô đó bằng 0, đóng file; nếu khác 0, xem danh sách và gọi người. Mất khoảng năm phút. Nếu bạn quen đặt lịch nhắc trên điện thoại, đặt một lời nhắc lặp lại mỗi tuần trỏ vào file này.
Thứ hai, nhập hợp đồng ngay ngày ký, không để dồn cuối tháng. Bảng chỉ báo đúng khi dữ liệu đã vào. Hợp đồng nào ký mà chưa nhập thì với bảng là không tồn tại. Một chủ trọ có 12 phòng với hợp đồng sáu tháng thì mỗi năm chỉ có khoảng 24 lần nhập hoặc gia hạn, tức trung bình hai lần mỗi tháng, đủ nhẹ để làm ngay tại chỗ.
Cách làm này cũng áp dụng được cho các loại hợp đồng khác. Nếu bạn còn có hợp đồng với nhà cung cấp, thợ sửa chữa hay dịch vụ thuê bao, cùng một cấu trúc cột và công thức dùng lại được, như trong bài Cách Quản Lý Hợp Đồng Bằng Excel: Mẫu Theo Dõi Và Cảnh Báo Hết Hạn.
Giới hạn thật của một bảng tự dựng
Bảng như trên làm tốt một việc: báo hạn. Nhưng nó có mấy chỗ yếu bạn nên biết trước khi dựa hẳn vào nó.
Bảng chỉ biết ngày, không biết nợ. Cột F do bạn gõ tay, nên nếu tiền phòng và điện nước nằm ở một file khác, hai nơi dễ lệch nhau đúng lúc bạn cần con số chính xác nhất là khi khách trả phòng. Bảng cũng không tự gia hạn, không tự trừ cọc, không có chỗ gửi lời nhắc cho khách. Mọi bước đó vẫn là thao tác tay của bạn. Với 10 đến 15 phòng, đây vẫn là mức chấp nhận được. Với nhiều tòa nhà, nhiều người cùng cập nhật, thì sai sót bắt đầu tăng: ai đó xóa nhầm một dòng, ai đó gõ ngày kiểu văn bản, công thức lặng lẽ ngừng báo đúng.
Nếu bạn thấy mình đang ghép ba bốn file lại với nhau, hợp đồng một nơi, điện nước một nơi, thu tiền một nơi, thì đó là lúc cân nhắc một công cụ gom chung. Phần Mềm Quản Lý Phòng Trọ trên Google Sheets của SheetStore làm đúng những việc đã nói ở trên trong cùng một file: sơ đồ phòng tô màu theo trạng thái, cảnh báo nợ và hợp đồng sắp hết hạn ngay trên ô phòng, nhắc trước 30 ngày khi hợp đồng sắp hết hạn, và gia hạn hoặc thanh lý tự động trừ nợ vào cọc. Phần mềm chạy trên Google Sheets và Apps Script trong tài khoản Google của bạn, dữ liệu nằm trong Google Drive của bạn, nên bạn cần có tài khoản Google. Đây là file Google Sheets, không phải ứng dụng điện thoại hay trang web riêng. Giá 459.000đ trả một lần, dùng trọn đời, không phí hằng tháng, và có 7 ngày dùng thử để bạn tự kiểm tra xem nó có hợp với cách bạn quản lý hay không.

Nếu dãy trọ của bạn còn ít phòng và bạn thấy bảng tự dựng ở trên là đủ, cứ dùng nó. Phần lớn bài này đứng được một mình mà không cần mua gì.
Câu hỏi thường gặp
Công thức nào báo hợp đồng thuê phòng trọ sắp hết hạn?
Ở ô G2, dùng =IF(D2="","",IF(D2<TODAY(),"Đã hết hạn",IF(D2-TODAY()<=30,"Sắp hết hạn","Còn hạn"))) rồi kéo xuống các dòng dưới. Ô ngày kết thúc trống thì không hiện gì. Ngày kết thúc nhỏ hơn hôm nay là "Đã hết hạn". Còn không quá 30 ngày là "Sắp hết hạn", ngoài ra là "Còn hạn".
Vì sao công thức báo hạn không chạy đúng dù đã nhập ngày kết thúc?
Nhiều khả năng cột ngày đang bị Sheets hiểu là văn bản chứ không phải ngày thật. Bấm vào ô, nếu ngày canh lề trái thì đó là dấu hiệu văn bản. Chọn cả cột ngày bắt đầu và ngày kết thúc, vào Định dạng, Số, Ngày để ép về dạng ngày.
Làm sao tô màu cả hàng khi hợp đồng quá hạn hoặc sắp hết hạn?
Chọn vùng A2:H200, vào Định dạng có điều kiện, chọn Công thức tùy chỉnh. Luật đỏ: =AND($D2<>"",$D2<TODAY()). Luật vàng: =AND($D2<>"",$D2>=TODAY(),$D2-TODAY()<=30). Dấu đô la khóa cột D nên cả hàng đổi màu. Điều kiện $D2<>"" giúp dòng trống không bị tô.
Khách trả phòng thì tính hoàn cọc thế nào?
Lấy tiền cọc trừ nợ tồn, phần dư là số hoàn lại. Với E2 là cọc và F2 là nợ, số hoàn lại là =MAX(E2-F2,0), số khách còn phải đóng thêm là =MAX(F2-E2,0). Ví dụ cọc 3.000.000đ, nợ 1.550.000đ thì hoàn 1.450.000đ. Nếu nợ 3.400.000đ thì khách đóng thêm 400.000đ.
Bài viết liên quan:
Bạn muốn áp dụng ngay mà không phải tự xây từ đầu?
Khám phá các mẫu Google Sheets và phần mềm quản lý dựng sẵn cho doanh nghiệp Việt tại SheetStore Marketplace.
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
Công cụ liên quan
Giải pháp cho bài viết này
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.
