Khấu Hao Tài Sản Cố Định: Công Thức Hay Apps Script? (2026)
Mục lục:
- 1. Vì sao công thức khấu hao "chạy ngon" lúc đầu rồi vỡ trận sau vài tháng
- 2. Khi nào Apps Script thực sự đáng viết, không phải "cho oai"
- 3. Bảng so sánh thực tế: công thức thuần vs Apps Script cho khấu hao
- 4. Cách xây dựng bảng khấu hao bằng công thức đúng chuẩn (cho doanh nghiệp dưới 25 tài sản)
- 5. Viết Apps Script cho khấu hao tự động: cấu trúc tối thiểu cần có
- 6. Bẫy thường gặp khi trộn công thức và script trong cùng một file
- 7. Câu hỏi thường gặp
Kế toán một xưởng cơ khí nhỏ ở Bình Dương từng kể lại chuyện đau đầu vào cuối mỗi quý: 47 tài sản cố định — từ máy tiện CNC, xe nâng, đến dàn máy tính văn phòng — mỗi cái một ngày mua khác nhau, mỗi loại một khung khấu hao khác nhau theo Thông tư 45. Công thức Excel cũ chạy tốt với 10 tài sản đầu, nhưng đến tài sản thứ 30 thì file bắt đầu lag, và có tháng cột "giá trị còn lại" trả về số âm vì ai đó lỡ sửa nhầm ngày bắt đầu khấu hao. Không ai phát hiện ra cho đến khi kiểm toán hỏi.
Đây chính là câu hỏi mà rất nhiều chủ doanh nghiệp SME đặt ra khi mở rộng quy mô tài sản: tiếp tục dùng công thức Google Sheets thuần, hay chuyển sang Apps Script để tự động hóa? Câu trả lời không nằm ở "cái nào hiện đại hơn" mà ở việc tài sản của bạn đang ở giai đoạn nào.
Vì sao công thức khấu hao "chạy ngon" lúc đầu rồi vỡ trận sau vài tháng
Công thức khấu hao đường thẳng cơ bản trong Sheets trông rất vô hại:
=IF(SoThangDaKhauHao>=ThoiGianSuDung, 0, NguyenGia/ThoiGianSuDung)
Vấn đề không nằm ở công thức — nó tính đúng. Vấn đề nằm ở chỗ công thức này phải lặp lại cho từng tài sản, và mỗi tài sản lại có ngày bắt đầu khấu hao khác nhau (theo quy định phải tính từ ngày tài sản đưa vào sử dụng, không phải đầu tháng hay đầu năm). Một xưởng in ở Đồng Nai từng có 22 tài sản được ghi nhận trong 8 tháng liên tục — nghĩa là 22 công thức DATEDIF khác nhau, mỗi cái phải tự tay kiểm tra lại khi tháng đổi.
Đến khi số tài sản vượt qua khoảng 20-25 dòng, ba vấn đề bắt đầu lộ ra rõ:
- Copy công thức xuống hàng mới rất dễ lệch tham chiếu ô, đặc biệt khi chèn dòng ở giữa bảng để thêm tài sản mua giữa kỳ
- Không ai tự động cộng dồn khấu hao lũy kế qua các tháng — file phải có thêm một cột "khấu hao lũy kế tháng trước" cập nhật thủ công, và đây là nơi sai số hay xảy ra nhất
- Khi tài sản thanh lý giữa kỳ, công thức không tự dừng tính khấu hao mà vẫn chạy tiếp trừ khi có người nhớ xóa hoặc sửa
Với dưới 15-20 tài sản và kế toán chỉ cần bảng khấu hao tháng để đối chiếu, công thức thuần vẫn là lựa chọn hợp lý — không cần thêm lớp phức tạp nào. Nhưng khi con số vượt ngưỡng đó, chi phí duy trì công thức bắt đầu lớn hơn chi phí viết một script tự động.
Khi nào Apps Script thực sự đáng viết, không phải "cho oai"
Nhiều người nghĩ Apps Script là bước nâng cấp tự nhiên khi file lớn lên, nhưng thực ra ranh giới rõ hơn thế. Apps Script đáng viết khi xuất hiện ít nhất một trong ba tình huống sau.
Tình huống 1: Cần tự động tạo bảng khấu hao lũy kế hàng tháng
Một công ty vận tải ở TP.HCM quản lý 35 đầu xe tải, mỗi xe khấu hao theo phương pháp đường thẳng trong 8 năm. Thay vì để kế toán mở file mỗi đầu tháng và kéo công thức, script Apps Script được lập trình chạy trigger vào ngày 1 hàng tháng, tự tạo một dòng ghi nhận khấu hao mới cho từng xe, cộng dồn vào lũy kế, và tự động dừng khi giá trị còn lại chạm mức khấu hao tối thiểu 10% theo quy định thuế. Đây là việc công thức thuần gần như không làm được gọn — muốn công thức tự "biết dừng" và tự sinh dòng mới theo thời gian, phải viết logic dạng thủ tục (procedural), không phải công thức khai báo (declarative).
Tình huống 2: Tài sản có phương pháp khấu hao khác nhau trong cùng một bảng
Với doanh nghiệp chỉ dùng khấu hao đường thẳng cho mọi tài sản, công thức Sheets đủ dùng. Nhưng nhiều xưởng sản xuất áp dụng khấu hao theo số dư giảm dần có điều chỉnh cho máy móc thiết bị (theo Thông tư 45/2013/TT-BTC), trong khi nhà xưởng và văn phòng vẫn khấu hao đường thẳng. Trộn hai phương pháp trong một bảng công thức khiến file có tới 3-4 lớp IF lồng nhau theo loại tài sản, cực kỳ dễ vỡ khi thêm loại tài sản mới. Apps Script cho phép viết hàm riêng cho từng phương pháp, gọi ra theo loại tài sản, rồi tổng hợp — code sạch và dễ audit hơn nhiều so với một công thức IF dài 200 ký tự.
Tình huống 3: Cần xuất báo cáo khấu hao tự động gửi định kỳ
Một chuỗi cửa hàng bán lẻ có kế toán tổng ở văn phòng chính cần nhận báo cáo khấu hao của từng chi nhánh vào ngày 5 hàng tháng để tổng hợp báo cáo thuế. Nếu làm thủ công, đây là việc lặp lại tốn 1-2 giờ mỗi tháng cho mỗi chi nhánh. Script kết hợp trigger thời gian và MailApp.sendEmail() giải quyết gọn việc này — tự xuất PDF bảng khấu hao và gửi email, không cần ai nhớ làm.
Đây cũng là lúc kỹ thuật Apps Script kết hợp với công thức mảng bắt đầu phát huy tác dụng — nếu bạn chưa quen các hàm như ARRAYFORMULA hay QUERY để tổng hợp dữ liệu trước khi script xử lý, có thể tham khảo thêm ở bài Google Sheets Nâng Cao 2027: Công Thức ARRAYFORMULA, QUERY, Apps Script Và Kỹ Thuật Chuyên Nghiệp.
Bảng so sánh thực tế: công thức thuần vs Apps Script cho khấu hao
| Tiêu chí | Công thức thuần | Apps Script |
|---|---|---|
| Số lượng tài sản phù hợp | Dưới 20-25 tài sản | Trên 25 tài sản, hoặc tăng nhanh theo thời gian |
| Đa dạng phương pháp khấu hao | 1 phương pháp, dễ quản lý | 2+ phương pháp trộn lẫn |
| Tự động dừng khi hết khấu hao | Phải tự kiểm tra thủ công mỗi tháng | Script tự kiểm tra và dừng |
| Xử lý tài sản thanh lý giữa kỳ | Phải sửa công thức hoặc xóa dòng tay | Script tự nhận diện trạng thái và ngừng tính |
| Rủi ro lỗi khi mở rộng | Cao — copy công thức dễ lệch tham chiếu | Thấp hơn — logic tập trung một chỗ, dễ kiểm tra |
| Chi phí thiết lập ban đầu | Thấp, làm ngay được | Cần thời gian viết và test script (1-3 ngày tùy độ phức tạp) |
| Người không biết code có tự sửa được không | Có, chỉnh công thức trực tiếp | Khó hơn, cần hiểu cơ bản JavaScript |
Nhìn vào bảng này, câu trả lời thực dụng nhất thường là: bắt đầu bằng công thức, và chỉ chuyển sang script khi một trong các dấu hiệu ở cột "Apps Script" xuất hiện rõ ràng — đừng viết script trước khi có nhu cầu thật.
Cách xây dựng bảng khấu hao bằng công thức đúng chuẩn (cho doanh nghiệp dưới 25 tài sản)
Nếu bạn đang ở giai đoạn công thức vẫn đủ dùng, cấu trúc bảng nên tách rõ hai phần: bảng danh mục tài sản (cố định, không đổi) và bảng khấu hao theo tháng (động, sinh ra mỗi kỳ).
Bảng danh mục tài sản cần các cột: Mã tài sản, Tên tài sản, Nguyên giá, Ngày đưa vào sử dụng, Thời gian khấu hao (số tháng theo khung Thông tư 45), Giá trị thu hồi ước tính (thường là 0 với đa số SME). Từ đó, khấu hao hàng tháng tính bằng:
=(NguyenGia-GiaTriThuHoi)/ThoiGianKhauHao
Phần khó hơn là tính số tháng đã khấu hao tính đến kỳ báo cáo, dùng DATEDIF:
=DATEDIF(NgayDuaVaoSuDung, NgayBaoCao, "m")
Sau đó dùng hàm MIN để giới hạn khấu hao lũy kế không vượt quá nguyên giá trừ giá trị thu hồi — đây là chỗ nhiều bảng Excel cũ bị bỏ sót, dẫn đến giá trị còn lại âm mà không ai nhận ra. Công thức đầy đủ cho khấu hao lũy kế:
=MIN(KhauHaoThang*SoThangDaKhauHao, NguyenGia-GiaTriThuHoi)
Với bảng có nhiều loại tài sản khấu hao khác nhau, việc dùng QUERY để lọc và tổng hợp theo nhóm tài sản (máy móc, phương tiện, thiết bị văn phòng) trước khi trình bày lên báo cáo giúp bảng gọn hơn nhiều so với việc để công thức IF chồng chéo trên từng dòng riêng lẻ. Kỹ thuật này được trình bày kỹ hơn trong bài Google Sheets Nâng Cao 2027: XLOOKUP, ARRAYFORMULA, QUERY, Apps Script và 10 Thủ Thuật Bí Ẩn.
Viết Apps Script cho khấu hao tự động: cấu trúc tối thiểu cần có
Khi đã quyết định chuyển sang script, đừng viết một hàm khổng lồ xử lý mọi thứ. Cấu trúc thực tế hiệu quả cho một xưởng sản xuất 40 tài sản mà một agency triển khai gồm ba hàm tách biệt: hàm tính khấu hao cho một tài sản (nhận input là nguyên giá, ngày mua, thời gian sử dụng, trả về khấu hao tháng), hàm quét toàn bộ danh mục và gọi hàm trên cho từng dòng, và hàm trigger chạy tự động vào ngày cố định mỗi tháng.
Điểm mấu chốt khi viết script khấu hao — thứ nhiều người bỏ qua — là phải kiểm tra trạng thái tài sản trước khi tính. Nếu tài sản đã thanh lý (có cột trạng thái đánh dấu), hoặc đã khấu hao hết, script phải bỏ qua dòng đó chứ không tính tiếp. Thiếu bước kiểm tra này là nguyên nhân phổ biến nhất khiến báo cáo khấu hao tự động bị sai số so với sổ sách kế toán thủ công — và đây chính là lỗi mà kế toán ở xưởng cơ khí Bình Dương nhắc đến ở đầu bài gặp phải khi họ thử tự viết script lần đầu mà không có bước lọc trạng thái này.
Vì lý do này, nhiều doanh nghiệp không tự viết script từ đầu mà dùng sẵn mẫu Google Sheets đã tích hợp cả bảng công thức lẫn script khấu hao được kiểm tra qua nhiều trường hợp thực tế — như các mẫu quản lý tài sản cố định trên SheetStore, nơi phần script đã xử lý sẵn các trường hợp thanh lý giữa kỳ, tài sản khấu hao hết, và tổng hợp báo cáo theo nhóm tài sản mà không cần lập trình lại từ số 0.
Bẫy thường gặp khi trộn công thức và script trong cùng một file
Một sai lầm phổ biến là để cả công thức Sheets và Apps Script cùng ghi vào một cột dữ liệu — ví dụ công thức tính khấu hao tháng vẫn nằm trong ô, nhưng script lại ghi đè giá trị tính sẵn vào đúng cột đó mỗi khi trigger chạy. Kết quả là công thức bị mất ngay lần chạy script đầu tiên, và nếu ai đó xóa script sau này, cột dữ liệu trở thành giá trị tĩnh không còn tự cập nhật — rất khó phát hiện cho đến khi có sai lệch số liệu ở kỳ báo cáo sau.
Nguyên tắc an toàn là tách rõ: cột nào do công thức quản lý thì không để script ghi vào, cột nào do script sinh ra (ví dụ dòng lịch sử khấu hao theo tháng) thì để riêng một sheet khác, không trộn chung với sheet chứa công thức tính toán realtime. Cách phân tách vùng dữ liệu tĩnh và động này cũng là nguyên tắc chung khi kết hợp Apps Script với các công cụ tự động hóa khác — nếu bạn đang cân nhắc dùng thêm Power Automate song song với Apps Script cho các luồng xử lý phức tạp hơn, bài Power Automate Hay Apps Script Cho Google Sheets? So Sánh 2026 phân tích rõ khi nào nên tách logic ra khỏi Sheets hoàn toàn thay vì cố nhồi mọi thứ vào một file.
Vấn đề chọn công thức hay script không chỉ xuất hiện ở bài toán khấu hao — cùng logic ngưỡng phức tạp này cũng lặp lại ở các bài toán tính toán lặp lại theo kỳ khác, như tính hoa hồng nhiều bậc theo doanh số, được phân tích chi tiết trong bài Tính Hoa Hồng Nhiều Bậc: Công Thức Hay Apps Script? (2026).
Câu hỏi thường gặp
Khi nào dùng công thức thuần đủ để tính khấu hao, chưa cần Apps Script?
Khi danh mục tài sản dưới khoảng 50-100 dòng, chỉ dùng 1-2 phương pháp khấu hao (đường thẳng hoặc số dư giảm dần) và không cần tự động xuất báo cáo theo kỳ. Hàm SLN, DDB, SYD kết hợp DATEDIF là đủ, không cần code thêm.
Dấu hiệu nào cho thấy nên chuyển sang Apps Script để tính khấu hao?
Khi có nhiều tài sản mua/thanh lý trong kỳ cần tự động cập nhật số dư, cần gộp khấu hao nhiều phương pháp trong cùng bảng, hoặc phải xuất bảng phân bổ chi phí theo phòng ban mỗi tháng mà làm tay mất nhiều giờ.
Công thức khấu hao trong Google Sheets có bị sai khi tài sản mua giữa kỳ không?
Có, hàm SLN/DDB mặc định tính theo năm tròn, cần tự thêm hệ số tỷ lệ số tháng sử dụng thực tế bằng DATEDIF hoặc YEARFRAC. Đây là lỗi phổ biến nhất khi kế toán tính tay bằng công thức.
Apps Script tính khấu hao có phức tạp để tự viết không?
Không quá phức tạp nếu chỉ tự động hóa vòng lặp qua từng tài sản và ghi kết quả ra sheet theo tháng, nhưng cần biết cơ bản JavaScript. Nếu không có thời gian tự viết, có thể dùng mẫu bảng tính khấu hao dựng sẵn có script tích hợp.
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.
📚 Bài Viết Liên Quan
- Google Sheets Nâng Cao Bài 7: Charts & Dashboard - Tạo Biểu Đồ và Dashboard Chuyên Nghiệp
- Mẫu Báo Cáo Bán Hàng Google Sheets 2026: 5 Template Chuẩn Cho SME
- Apps Script Từ A Đến Z - Bài 2: SpreadsheetApp - Đọc, Ghi và Xử Lý Dữ Liệu
- Xu Hướng Automation Cho Doanh Nghiệp Nhỏ 2027: Không Cần Lập Trình Viên
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
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.

