Làm Sổ Sách Kế Toán Trên Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Mục lục bài viết

1. Giới thiệu tổng quan về sổ sách kế toán và vai trò của Excel

Trong môi trường kinh doanh hiện đại, việc quản lý tài chính và kế toán chính xác, kịp thời là yếu tố then chốt quyết định sự thành công của doanh nghiệp. Sổ sách kế toán là “bản đồ” tài chính, phản ánh mọi giao dịch, tài sản, nợ phải trả và vốn chủ sở hữu của công ty. Truyền thống, các doanh nghiệp thường sử dụng phần mềm kế toán chuyên dụng (như MISA, Fast, SAP…) để thực hiện công việc này. Tuy nhiên, không phải doanh nghiệp nào cũng có điều kiện đầu tư vào phần mềm đắt tiền hay cần một hệ thống phức tạp. Đối với các doanh nghiệp vừa và nhỏ, các startup, hoặc những cá nhân kinh doanh tự do, Excel – một công cụ bảng tính mạnh mẽ, linh hoạt, đã và đang trở thành lựa chọn hàng đầu để làm sổ sách kế toán.

1.1. Vì sao chọn Excel?

  1. Chi phí thấp: Hầu hết các doanh nghiệp đã sở hữu bản quyền Microsoft Office, do đó không cần đầu tư thêm phần mềm kế toán.
  2. Tính linh hoạt: Người dùng có thể tùy chỉnh giao diện, công thức, biểu đồ theo nhu cầu thực tế.
  3. Dễ học và sử dụng: Nhiều người đã quen với Excel trong công việc hàng ngày, nên việc chuyển sang làm sổ sách kế toán không đòi hỏi thời gian đào tạo dài.
  4. Khả năng tích hợp: Dữ liệu Excel có thể dễ dàng nhập xuất sang các hệ thống khác (CSV, XML, PDF) khi doanh nghiệp mở rộng và triển khai phần mềm kế toán.

1.2. Những thách thức khi dùng Excel làm sổ sách

  • Rủi ro lỗi nhập liệu: Khi dữ liệu được nhập thủ công, khả năng sai sót luôn tồn tại.
  • Quản lý phiên bản: Nhiều người cùng làm việc trên một file có thể gây ra xung đột phiên bản.
  • Thiếu tính năng tự động: So với phần mềm kế toán, Excel không có các tính năng tự động cập nhật sổ phụ, báo cáo thuế…

Do đó, để tối ưu hoá việc làm sổ sách kế toán trên Excel, chúng ta cần xây dựng một hệ thống chuẩn, có quy trình kiểm soát chặt chẽ và áp dụng các kỹ thuật nâng cao như validation, pivot table, macro… Bài viết dưới đây sẽ hướng dẫn chi tiết từng bước, từ chuẩn bị dữ liệu, thiết kế sổ sách, công thức tính toán, đến cách tạo báo cáo tài chính và tự động hoá quy trình.

2. Chuẩn bị môi trường làm việc

2.1. Cài đặt và cấu hình Excel

  • Phiên bản đề xuất: Excel 2026 trở lên (Office 365/2026) để tận dụng các tính năng mới như Power Query, XLOOKUP, Dynamic Arrays.
  • Bảo mật file: Đặt mật khẩu mở file (File → Thông tin → Bảo mật tài liệu) và bật Protect Sheet cho các sheet chứa công thức quan trọng.
  • Kích thước file: Đặt File → Options → Advanced → Set the number of worksheets in new workbooks để giới hạn số sheet không cần thiết, giảm dung lượng file.

2.2. Tạo thư mục và quy ước đặt tên

/Kế_ Toán/ ├─ 2026/ │ ├─ 2024_01_Jan.xlsx │ ├─ 2024_02_Feb.xlsx │ └─ ... ├─ Templates/ │ ├─ Sổ_Quỹ.xlsx │ ├─ Sổ_Nhật_Ký.xlsx │ └─ Báo_cáo_Tài_chính.xlsx └─ Backup/
  • Tên file: YYYY_MM_TênSheet.xlsx – giúp sắp xếp tự động theo thời gian.
  • Thư mục Backup: Sao lưu ít nhất một lần mỗi tuần (có thể dùng OneDrive hoặc Google Drive).

2.3. Xác định danh mục tài khoản kế toán (Chart of Accounts – COA)

COA là nền tảng cho mọi sổ sách. Đối với doanh nghiệp vừa và nhỏ, một danh mục chuẩn gồm:

Mã TKTên tài khoảnLoại
111Tiền mặtTài sản ngắn hạn
112Tiền gửi ngân hàngTài sản ngắn hạn
131Phải thu khách hàngTài sản ngắn hạn
141Hàng tồn khoTài sản ngắn hạn
211Phải trả người bánNợ ngắn hạn
311Vốn chủ sở hữuVốn chủ sở hữu
511Doanh thu bán hàngDoanh thu
621Giá vốn bán hàngGiá vốn
641Chi phí bán hàngChi phí
642Chi phí quản lý doanh nghiệpChi phí
711Thuế GTGT đầu raThuế
712Thuế GTGT đầu vàoThuế
  • Lưu trữ COA: Tạo một sheet riêng “COA” trong file mẫu, sử dụng Data Validation → List để người dùng chọn tài khoản khi nhập chứng từ.

3. Thiết kế sổ nhật ký (Journal) – Nơi ghi nhận mọi giao dịch

Sổ nhật ký là file gốc, nơi nhập toàn bộ bút toán. Mỗi dòng tương ứng với một bút toán (transaction) có hai hoặc nhiều tài khoản (Debit & Credit).

3.1. Cấu trúc sheet “Journal”

STTNgàySố chứng từDiễn giảiTài khoản NợSố tiền NợTài khoản CóSố tiền CóNgười nhậpGhi chú
101/01/2026001Thu tiền khách hàng11110,000,00051110,000,000Nguyễn A
202/01/2026002Mua nguyên vật liệu1415,000,0001125,000,000Nguyễn B
  • STT: Tự động tăng bằng công thức =ROW()-1.
  • Ngày: Định dạng ngày (dd/mm/yyyy).
  • Số chứng từ: Định dạng văn bản để tránh mất số 0 đầu.
  • Tài khoản Nợ/Có: Sử dụng Data Validation → List lấy từ sheet “COA”.

3.2. Áp dụng Validation để giảm lỗi nhập liệu

  1. Kiểm tra tổng Nợ = Tổng Có: Thêm ô tổng ở cuối bảng, công thức:

=IF(SUM(F2:F1000)=SUM(H2:H1000),"Cân đối","Không cân đối")

  1. Ràng buộc số tiền > 0: Data Validation → Custom → =AND(ISNUMBER(F2),F2>0) (tương tự cho cột H).

  2. Kiểm tra tài khoản trùng lặp trong một bút toán: Sử dụng công thức mảng để cảnh báo nếu tài khoản Nợ = tài khoản Có trong cùng một dòng:

=IF(G2=E2,"Tài khoản Nợ và Có không được trùng","")

3.3. Tự động tạo số chứng từ

Sử dụng công thức =TEXT(TODAY(),"yyyymmdd") & "-" & TEXT(COUNTIF($C$2:C2,""),"000") để tạo số chứng từ tự động theo ngày và số thứ tự trong ngày.

4. Xây dựng sổ cái (General Ledger) – Tổng hợp từng tài khoản

Sổ cái là bản tổng hợp chi tiết các bút toán của mỗi tài khoản. Chúng ta sẽ tạo một sheet cho mỗi tài khoản hoặc một sheet tổng hợp dùng Pivot Table. Dưới đây là cách làm sheet tổng hợp + Pivot – thuận tiện cho việc mở rộng.

4.1. Tạo bảng dữ liệu cho Pivot

Trong sheet “Journal”, chọn toàn bộ bảng, vào Insert → Table (đánh dấu “My table has headers”). Đặt tên bảng là tblJournal.

4.2. Thiết lập Pivot Table

  1. Insert → Pivot Table → New Worksheet → Đặt tên “GL”.
  2. Rows: Kéo “Tài khoản Nợ” và “Tài khoản Có” vào (có thể gộp lại bằng “Tài khoản”).
  3. Columns: “Ngày”.
  4. Values: “Số tiền Nợ” và “Số tiền Có”. Đặt hiển thị “Sum”.
  5. Filters: “Năm”, “Tháng” (từ cột ngày).

Kết quả: Mỗi tài khoản sẽ có cột Nợ và Có, hiển thị dư nợ cuối kỳ.

4.3. Tính dư nợ (Balance) cho từng tài khoản

Thêm cột tính Dư Nợ và Dư Có trong Pivot bằng cách tạo Calculated Field:

  • Field Name: Dư Nợ → Formula: =Sum of Số tiền Nợ - Sum of Số tiền Có
  • Nếu kết quả dương, hiển thị ở cột Dư Nợ; nếu âm, chuyển sang cột Dư Có (có thể dùng Conditional Formatting để tô màu).

4.4. Định dạng và bảo vệ Pivot

  • Đặt Number Format: #,##0 (đồng).
  • Bảo vệ sheet (Review → Protect Sheet) để ngăn người dùng thay đổi cấu trúc Pivot.

5. Lập các báo cáo tài chính cơ bản

5.1. Bảng cân đối kế toán (Balance Sheet)

5.1.1. Cấu trúc sheet “BalanceSheet”

Loại tài khoảnMã TKTên tài khoảnDư NợDư CóSố dư
Tài sản ngắn hạn111Tiền mặt20,000,00020,000,000
………………
Tổng tài sản50,000,00050,000,000
Vốn chủ sở hữu311Vốn chủ sở hữu30,000,00030,000,000
Nợ phải trả211Phải trả người bán10,000,00010,000,000
Tổng nguồn vốn40,000,000

5.1.2. Lấy dữ liệu từ Pivot

Sử dụng hàm GETPIVOTDATA để lấy dư nợ của từng tài khoản:

=GETPIVOTDATA("Sum of Số tiền Nợ",$A$3,"Tài khoản","111") - GETPIVOTDATA("Sum of Số tiền Có",$A$3,"Tài khoản","111")

Sao chép công thức cho các tài khoản khác, chỉ thay đổi “111”. Để giảm công sức, tạo Tên Định Dạng cho mỗi tài khoản (VD: Bal_111) và dùng công thức:

Làm Sổ Sách Kế Toán Trên Excel
Làm Sổ Sách Kế Toán Trên Excel
=Bal_111

5.2. Báo cáo kết quả kinh doanh (Profit & Loss)

5.2.1. Cấu trúc sheet “P&L”

LoạiMã TKTên tài khoảnDoanh thuGiá vốnLợi nhuận gộpChi phí bán hàngChi phí quản lýLợi nhuận trước thuế
Doanh thu511Doanh thu bán hàng=GETPIVOTDATA(…)
Giá vốn621Giá vốn bán hàng=GETPIVOTDATA(…)
Lợi nhuận gộp=B2-C2
Chi phí bán hàng641Chi phí bán hàng=GETPIVOTDATA(…)
Chi phí quản lý642Chi phí QLDN=GETPIVOTDATA(…)
Lợi nhuận trước thuế=D2-E2-F2-G2

5.2.2. Tự động cập nhật tháng

Thêm Dropdown chọn tháng (Data Validation → List: “01,02,…,12”). Dùng hàm GETPIVOTDATA kèm Filter tháng:

=GETPIVOTDATA("Sum of Số tiền Nợ",$A$3,"Tài khoản","511","Tháng", $B$1) - GETPIVOTDATA("Sum of Số tiền Có",$A$3,"Tài khoản","511","Tháng", $B$1)

5.3. Báo cáo lưu chuyển tiền tệ (Cash Flow)

  • Hoạt động kinh doanh: Lấy tổng tiền thu từ khách (TK 111) – tiền chi trả cho nhà cung cấp (TK 211).
  • Hoạt động đầu tư: Mua tài sản cố định (TK 211 → 111).
  • Hoạt động tài chính: Vay ngân hàng, trả nợ.

Sử dụng SUMIFS trên bảng “Journal”:

=SUMIFS(tblJournal‘Số tiền Nợ’, tblJournal‘Tài khoản Nợ’, "111", tblJournal‘Ngày’, ">=01/01/2026", tblJournal‘Ngày’, "<=31/01/2026")
-
SUMIFS(tblJournal‘Số tiền Có’, tblJournal‘Tài khoản Có’, "111", tblJournal‘Ngày’, ">=01/01/2026", tblJournal‘Ngày’, "<=31/01/2026")

6. Tự động hoá quy trình với Macro (VBA)

6.1. Tạo macro “Thêm Bút Toán Mới”

Sub AddJournalEntry() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Journal") Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1 With ws .Cells(lastRow, 1).Value = lastRow - 1 'STT .Cells(lastRow, 2).Value = InputBox("Nhập ngày (dd/mm/yyyy):") .Cells(lastRow, 3).Value = "AUTO-" & Format(Date, "yyyymmdd") & "-" & Format(lastRow - 1, "000") .Cells(lastRow, 4).Value = InputBox("Diễn giải:") .Cells(lastRow, 5).Value = InputBox("Tài khoản Nợ (mã):") .Cells(lastRow, 6).Value = InputBox("Số tiền Nợ:") .Cells(lastRow, 7).Value = InputBox("Tài khoản Có (mã):") .Cells(lastRow, 8).Value = InputBox("Số tiền Có:") .Cells(lastRow, 9).Value = Environ("USERNAME") End With MsgBox "Bút toán đã được ghi vào dòng " & lastRow, vbInformation
End Sub
  • Gán macro này vào nút “Thêm Bút Toán” trên sheet “Journal”.
  • Khi người dùng click, một hộp thoại sẽ yêu cầu nhập thông tin; macro tự động điền STT, số chứng từ và lưu người nhập.

6.2. Kiểm tra cân đối tự động khi lưu file

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Journal") Dim totalDebit As Double, totalCredit As Double totalDebit = Application.WorksheetFunction.Sum(ws.Range("F2:F" & ws.Cells(ws.Rows.Count, "F").End(xlUp).Row)) totalCredit = Application.WorksheetFunction.Sum(ws.Range("H2:H" & ws.Cells(ws.Rows.Count, "H").End(xlUp).Row)) If totalDebit <> totalCredit Then MsgBox "Cảnh báo: Tổng Nợ (" & Format(totalDebit, "#,##0") & ") <> Tổng Có (" & Format(totalCredit, "#,##0") & "). Vui lòng kiểm tra lại.", vbCritical Cancel = True End If
End Sub
  • Đặt đoạn mã này trong ThisWorkbook để mỗi khi lưu, Excel sẽ kiểm tra cân đối và ngăn lưu nếu không cân bằng.

6.3. Tự động sao lưu vào thư mục Backup

Sub BackupWorkbook() Dim backupPath As String backupPath = ThisWorkbook.Path & "\Backup\" & "Backup_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsx" ThisWorkbook.SaveCopyAs backupPath MsgBox "Đã sao lưu file vào: " & backupPath, vbInformation
End Sub
  • Gán macro này vào Workbook_Open để mỗi khi mở file, một bản sao lưu mới được tạo.

7. Kiểm soát nội bộ và phân quyền

7.1. Phân quyền nhập liệu

  • Sheet “Journal”: Chỉ cho phép người dùng nhập dữ liệu (Unlock các cột nhập, lock các cột công thức).
  • Sheet “COA”, “Templates”: Đặt Read‑Only cho người dùng không có quyền chỉnh sửa danh mục tài khoản.

Cách thực hiện: Home → Format → Protect Sheet, chọn các tùy chọn cho phép Select unlocked cells.

7.2. Đánh dấu các giao dịch đã duyệt

Thêm cột “Trạng thái” (Dropdown: Chưa duyệt, Đã duyệt, Bị từ chối). Khi trạng thái chuyển thành “Đã duyệt”, khóa dòng (bằng VBA) để ngăn thay đổi:

Sub LockApprovedRows() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Journal") Dim i As Long, lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row For i = 2 To lastRow If ws.Cells(i, 10).Value = "Đã duyệt" Then ws.Rows(i).Locked = True Else ws.Rows(i).Locked = False End If Next i ws.Protect Password:="YourPass"
End Sub
  • Gọi macro này mỗi khi thay đổi trạng thái (có thể dùng Worksheet_Change event).

8. Kiểm tra và chuẩn bị cho kỳ báo cáo thuế

8.1. Tổng hợp thuế GTGT đầu ra và đầu vào

  • Thuế GTGT đầu ra: Tài khoản 711 (thuế phải nộp).
  • Thuế GTGT đầu vào: Tài khoản 712 (thuế được khấu trừ).

Sử dụng SUMIFS để tính tổng trong kỳ:

=SUMIFS(tblJournal‘Số tiền Nợ’, tblJournal‘Tài khoản Nợ’, "711", tblJournal‘Ngày’, ">=01/01/2026", tblJournal‘Ngày’, "<=31/01/2026")
-
SUMIFS(tblJournal‘Số tiền Có’, tblJournal‘Tài khoản Có’, "712", tblJournal‘Ngày’, ">=01/01/2026", tblJournal‘Ngày’, "<=31/01/2026")

Kết quả là Số thuế phải nộp (có thể âm nếu thừa thuế).

8.2. Xuất dữ liệu sang file CSV cho cơ quan thuế

  • Tạo một sheet “ExportTax”.
  • Sao chép các cột: Ngày, Số chứng từ, Tài khoản, Số tiền.
  • Sử dụng File → Save As → CSV (Comma delimited).

Có thể tự động hoá bằng macro:

Sub ExportTaxCSV() Dim ws As Worksheet, exportWs As Worksheet Set ws = ThisWorkbook.Sheets("Journal") Set exportWs = ThisWorkbook.Sheets.Add(After:=ws) exportWs.Name = "ExportTax" ws.Range("A1:H1").Copy exportWs.Range("A1") ws.Range("A2:H" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row).Copy exportWs.Range("A2") exportWs.SaveAs Filename:=ThisWorkbook.Path & "\TaxExport_" & Format(Now, "yyyymmdd_hhmm") & ".csv", FileFormat:=xlCSV Application.DisplayAlerts = False exportWs.Delete Application.DisplayAlerts = True MsgBox "File CSV đã được tạo!", vbInformation
End Sub

9. Mở rộng và tích hợp với Power Query / Power Pivot

9.1. Dùng Power Query để làm sạch dữ liệu

Nếu dữ liệu nhập từ nhiều nguồn (email, file CSV, hệ thống bán hàng), Power Query cho phép Import → Transform:

  1. Get Data → From File → From Workbook (chọn file nguồn).
  2. Remove Duplicates, Change Type, Split Column (nếu cần tách “Số chứng từ”).
  3. Load to Data Model để sử dụng trong Power Pivot.

9.2. Power Pivot để tạo mô hình dữ liệu đa chiều

  • Create Relationships: JournalTài khoản Nợ ↔ COAMã TK, JournalTài khoản Có ↔ COAMã TK.
  • Dùng DAX tính toán nhanh:
TotalDebit = CALCULATE(SUM(Journal‘Số tiền Nợ’), Journal‘Tài khoản Nợ’ = SELECTEDVALUE(COAMã TK))
TotalCredit = CALCULATE(SUM(Journal‘Số tiền Có’), Journal‘Tài khoản Có’ = SELECTEDVALUE(COAMã TK))
Balance = TotalDebit - TotalCredit
  • Tạo PivotTable từ Data Model để báo cáo nhanh, có thể lọc theo Năm, Tháng, Phòng ban.

10. Bảo trì và nâng cấp hệ thống sổ sách trên Excel

10.1. Kiểm tra định kỳ

Thời gianCông việc
Hàng ngàyKiểm tra cân đối Nợ/Có, cập nhật bút toán mới.
Hàng tuầnSao lưu file vào thư mục Backup, chạy macro “BackupWorkbook”.
Hàng thángKiểm tra báo cáo tài chính, đối chiếu với ngân hàng.
Hàng quýĐánh giá lại COA, thêm/bớt tài khoản nếu cần.
Hàng nămĐóng sổ, tạo file năm mới, chuyển dư nợ sang năm kế.

10.2. Nâng cấp khi doanh nghiệp phát triển

  • Chuyển sang phần mềm ERP: Khi số lượng giao dịch vượt quá 10.000 dòng/tháng, hoặc cần tích hợp quản lý kho, bán hàng, nhân sự, hãy cân nhắc chuyển sang phần mềm chuyên nghiệp.
  • Sử dụng OneDrive/SharePoint: Để đồng bộ nhiều người cùng chỉnh sửa, dùng Excel Online với Co‑authoring.
  • Tự động hoá báo cáo bằng Power Automate: Gửi email báo cáo P&L hàng tháng tự động.

11. Kết luận

Làm sổ sách kế toán trên Excel không chỉ là một giải pháp tạm thời cho doanh nghiệp vừa và nhỏ, mà còn là nền tảng vững chắc để hiểu sâu quy trình kế toán, chuẩn bị cho bước chuyển đổi sang hệ thống ERP trong tương lai. Bài viết đã cung cấp:

  1. Cách chuẩn bị môi trường, thiết lập COA, và quy ước đặt tên file.
  2. Thiết kế chi tiết sổ nhật ký với validation, tự động tạo số chứng từ.
  3. Xây dựng sổ cái bằng Pivot/Table để tổng hợp nhanh.
  4. Lập các báo cáo tài chính (Balance Sheet, P&L, Cash Flow) tự động lấy dữ liệu từ Pivot.
  5. Tự động hoá quy trình bằng VBA macro (thêm bút toán, kiểm tra cân đối, sao lưu).
  6. Kiểm soát nội bộ, phân quyền và khóa dòng đã duyệt.
  7. Chuẩn bị cho kỳ báo cáo thuế và xuất CSV.
  8. Mở rộng với Power Query/Power Pivot để xử lý dữ liệu phức tạp.
  9. Kế hoạch bảo trì và dấu hiệu cần nâng cấp hệ thống.

Áp dụng những bước trên một cách có hệ thống, doanh nghiệp sẽ có một hệ thống sổ sách kế toán đúng chuẩn, linh hoạt, an toàn trên nền tảng Excel, đồng thời giảm thiểu rủi ro sai sót và tăng hiệu suất công việc. Khi doanh nghiệp phát triển, những kiến thức này sẽ là nền tảng vững chắc để tích hợp hoặc chuyển đổi sang các giải pháp phần mềm chuyên sâu hơn, mà không gặp phải “học lại từ đầu”.

Hãy bắt đầu triển khai ngay hôm nay, và tận dụng sức mạnh của Excel để đưa tài chính doanh nghiệp của bạn lên một tầm cao mới!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận