2026-07-27 · Kế toán & Dữ liệu
Cuối quý, bộ báo cáo tài chính đã xong: bảng cân đối kế toán khớp, báo cáo kết quả kinh doanh cân, lưu chuyển tiền tệ ra đúng số dư tiền. Bạn thở phào gửi lên. Rồi sếp nhắn lại đúng ba câu: "Vì sao lãi mà không có tiền?", "Chi phí tăng ở đâu?", "So với cùng kỳ năm ngoái thì thế nào?"
Thế là bắt đầu vòng lặp quen thuộc: mở lại file Excel, dò tay từng dòng sổ chi tiết, lọc tài khoản 642 xem tăng ở khoản mục nào, mở thêm file quý trước đặt cạnh để so. Trả lời xong ba câu có khi mất nửa ngày. Kỳ sau sếp lại hỏi đúng kiểu câu hỏi ấy — và bạn lại làm lại từ đầu.
Vấn đề không nằm ở năng lực kế toán, mà ở chỗ bộ BCTC được thiết kế để trình bày chứ không phải để trả lời câu hỏi. Bài này, đội ngũ EzTech chia sẻ cách phân tích BCTC bằng Power BI theo đúng quy trình thực chiến: từ dữ liệu thô xuất ra từ phần mềm kế toán đến bộ dashboard mà lãnh đạo tự bấm tự xem, còn kế toán mỗi kỳ chỉ cần bấm Refresh.
Phân tích báo cáo tài chính không phải là in ra bảng biểu
Rất nhiều nơi gọi việc xuất bảng cân đối kế toán ra PDF gửi sếp là phân tích tài chính. Đó mới chỉ là trình bày số liệu. Phân tích báo cáo tài chính là ba việc khác hẳn:
- So sánh theo kỳ. Một con số đứng một mình không có ý nghĩa. Chi phí bán hàng 1,2 tỷ là nhiều hay ít? Chỉ trả lời được khi đặt cạnh cùng kỳ năm trước, cạnh kế hoạch, hoặc cạnh xu hướng 12 tháng gần nhất.
- Tách cấu phần. Lợi nhuận giảm là kết quả, không phải nguyên nhân. Phải bóc được: giảm vì doanh thu tụt, giá vốn đội lên, hay chi phí quản lý phình ra — và trong chi phí quản lý thì khoản mục nào, đơn vị nào.
- Đọc chỉ số. Biên lợi nhuận gộp, vòng quay hàng tồn kho, khả năng thanh toán hiện hành quy số tuyệt đối về thước đo so sánh được giữa các kỳ và giữa các đơn vị.
Ba việc này làm trên Excel thì được, nhưng làm lặp lại mỗi kỳ mới là chỗ đuối: tháng nào cũng copy dữ liệu mới, kéo lại công thức, sửa vùng tham chiếu. Nghiên cứu của EuSpRIG (European Spreadsheet Risks Interest Group) cho thấy khoảng 50–86% file bảng tính có chứa lỗi — trong bộ số tài chính, một công thức lệch vùng đủ làm sai cả bảng phân tích.
Vì sao nên phân tích BCTC bằng Power BI
Điểm mạnh của Power BI ở bài toán này không phải "biểu đồ đẹp", mà nằm ở ba chỗ rất cụ thể với người làm kế toán:
- Làm sạch một lần, dùng mãi. Mọi thao tác xử lý dữ liệu được ghi lại thành các bước trong Power Query. Kỳ sau thay file nguồn, bấm Refresh là mọi bước tự chạy lại y hệt. Chưa quen công cụ này thì đọc trước bài Power Query cho kế toán.
- So sánh kỳ chỉ là một công thức. Có bảng lịch chuẩn, việc so cùng kỳ năm trước hay lũy kế từ đầu năm chỉ cần viết một measure và dùng lại cho mọi chỉ tiêu — thay vì thêm cột, thêm sheet cho từng phép so sánh.
- Sếp tự trả lời câu hỏi của sếp. Lãnh đạo bấm vào con số chi phí là ra chi tiết theo khoản mục, theo đơn vị, xuống tới danh sách chứng từ. Vòng lặp "hỏi — chờ — nhận file — hỏi tiếp" biến mất.
Quy trình 6 bước phân tích BCTC bằng Power BI
Đây là trình tự đội ngũ EzTech áp dụng khi dựng hệ báo cáo tài chính cho doanh nghiệp. Làm đúng thứ tự thì phần vẽ dashboard ở cuối rất nhẹ; làm ngược lại thường phải đập đi làm lại.
Bước 1 — Chuẩn hóa dữ liệu đầu vào bằng Power Query
Nguồn thường là file xuất từ MISA, Fast, Bravo hoặc phần mềm nội bộ. Cái cần lấy không phải bộ BCTC đã lên form, mà là dữ liệu tầng dưới: bảng cân đối số phát sinh theo tài khoản và sổ nhật ký chung (hoặc sổ chi tiết tài khoản). Từ hai bảng này dựng lại được mọi chỉ tiêu BCTC; ngược lại, từ form đã lên thì không đào ngược xuống chi tiết được.
- Bỏ dòng rác và dòng tổng cộng. File xuất ra thường có vài dòng tên công ty, kỳ báo cáo phía trên và dòng "Tổng cộng" ở dưới. Dùng Remove Top Rows và Filter để loại — sót dòng tổng là số liệu bị nhân đôi.
- Unpivot bảng ngang 12 tháng. Nhiều file xuất mỗi tháng một cột (T1, T2… T12), người đọc thì tiện nhưng máy không dùng được. Chọn cột mã tài khoản, vào Transform > Unpivot Other Columns để về dạng dọc: một dòng = một tài khoản × một tháng × một giá trị.
- Chuẩn mã tài khoản. Ép về kiểu Text (để kiểu số thì 01121 mất số 0 đầu), dùng Trim và Clean cắt khoảng trắng thừa. Tài khoản chi tiết nhiều cấp thì tách thêm cột cấp 1, cấp 2 bằng Extract First Characters.
- Thống nhất kiểu số và ngày ngay trong Power Query, đừng để Power BI tự đoán — nhất là file có ngày dạng dd/mm/yyyy.
Bước 2 — Dựng bảng ánh xạ chỉ tiêu và bảng Lịch
Bảng ánh xạ (mapping) mã tài khoản sang chỉ tiêu BCTC là một file Excel do chính kế toán làm chủ: mã tài khoản, tên tài khoản, chỉ tiêu trên bảng cân đối hoặc kết quả kinh doanh, nhóm chỉ tiêu, thứ tự hiển thị. Ví dụ 5111 và 5112 cùng ánh xạ về "Doanh thu bán hàng và cung cấp dịch vụ"; 6421, 6422… về "Chi phí quản lý doanh nghiệp". Khi doanh nghiệp mở tài khoản chi tiết mới, bạn chỉ thêm một dòng vào file mapping rồi Refresh, không phải sửa công thức trong báo cáo. Nhớ thêm bước kiểm tra: tài khoản có phát sinh mà chưa có trong mapping thì phải hiện ra rõ, đừng để rơi âm thầm.
Bảng Lịch (Date table) là bảng riêng chứa liên tục mọi ngày trong khoảng phân tích, kèm cột Năm, Quý, Tháng, Năm-Tháng và số thứ tự tháng để sắp xếp. Không có bảng này thì các hàm so sánh thời gian trong DAX không chạy đúng. Tạo xong nhớ vào Table tools > Mark as date table.
Bước 3 — Mô hình dữ liệu dạng sao
Đừng gộp tất cả vào một bảng phẳng khổng lồ. Mô hình chuẩn cho bài toán BCTC gồm:
- Fact số phát sinh (từ nhật ký chung hoặc bảng cân đối số phát sinh): ngày, mã tài khoản, mã đơn vị, phát sinh Nợ, phát sinh Có.
- Fact số dư đầu kỳ — tách riêng, vì số dư đầu kỳ khác bản chất với số phát sinh và là chỗ rất dễ tính sai.
- Dim Tài khoản: danh mục tài khoản đã gắn ánh xạ chỉ tiêu ở bước 2.
- Dim Thời gian: bảng Lịch. Dim Đơn vị: chi nhánh, công ty con, trung tâm chi phí.
Quan hệ đi một chiều từ Dim sang Fact, kiểu một–nhiều. Mô hình sao giúp measure viết ngắn, chạy nhanh, và quan trọng nhất là người tiếp quản báo cáo sau bạn đọc vẫn hiểu.
Bước 4 — Viết bộ measure nền tảng bằng DAX
Không cần hàng trăm measure, chỉ cần một bộ nền tảng làm đúng rồi dựng chồng lên:
- Tổng phát sinh: SUM hoặc SUMX trên bảng Fact, tách riêng phát sinh Nợ và phát sinh Có.
- Số dư cuối kỳ: số dư đầu kỳ cộng phát sinh trong kỳ, dùng CALCULATE kết hợp điều kiện thời gian lũy kế.
- Cùng kỳ năm trước: CALCULATE bọc measure gốc với SAMEPERIODLASTYEAR trên cột ngày của bảng Lịch.
- Lũy kế từ đầu năm: DATESYTD — rất hữu ích cho các chỉ tiêu kết quả kinh doanh.
- Biến động tuyệt đối và biến động phần trăm: lấy hiệu giữa hai kỳ rồi chia bằng DIVIDE thay vì dấu chia, để tự xử lý mẫu số bằng 0 thay vì hiện lỗi ngay trên dashboard trước mặt lãnh đạo.
Quy tắc thực chiến: mọi chỉ tiêu tài chính đều nên bắt nguồn từ measure, không phải cột tính sẵn. Sửa một measure là cả hệ báo cáo cập nhật theo.
Bước 5 — Chọn nhóm chỉ số và hiểu ý nghĩa từng chỉ số
- Cơ cấu tài sản — nguồn vốn. Tỷ trọng tài sản ngắn hạn/dài hạn, nợ phải trả/vốn chủ sở hữu: doanh nghiệp đang dựa vào vốn vay hay vốn tự có, tài sản nằm ở dạng nào.
- Doanh thu — chi phí — lợi nhuận theo tháng. Xu hướng 12–24 tháng kèm so sánh cùng kỳ. Đây là trang lãnh đạo mở nhiều nhất.
- Biên lợi nhuận gộp và biên lợi nhuận ròng. Biên gộp phản ánh hiệu quả bán hàng và kiểm soát giá vốn; biên ròng phản ánh hiệu quả sau toàn bộ chi phí vận hành, lãi vay, thuế. Doanh thu tăng mà biên gộp tụt là cảnh báo sớm.
- Vòng quay khoản phải thu. Trung bình bao lâu thu được tiền về sau khi bán. Số ngày thu tiền kéo dài là nguyên nhân kinh điển của tình trạng "lãi trên sổ nhưng không có tiền".
- Vòng quay hàng tồn kho. Hàng luân chuyển nhanh hay đang ứ. Vòng quay chậm dần thường đi kèm rủi ro hàng chậm luân chuyển, phải trích lập dự phòng.
- Khả năng thanh toán hiện hành. Tài sản ngắn hạn chia nợ ngắn hạn — có đủ nguồn ngắn hạn trả các khoản đến hạn hay không.
- Dòng tiền thuần từ hoạt động kinh doanh. Chỉ số trung thực nhất: lợi nhuận chịu ảnh hưởng của thời điểm ghi nhận và trích trước, còn tiền thật vào ra thì khó tô vẽ.
Bước 6 — Bố cục dashboard 3 lớp
- Trang tổng quan (KPI). Hàng thẻ chỉ số trên cùng: doanh thu, lợi nhuận, dòng tiền thuần, biên lợi nhuận — mỗi thẻ kèm biến động so cùng kỳ; dưới là 2–3 biểu đồ xu hướng. Mục tiêu: nhìn 30 giây biết kỳ này ổn hay có vấn đề.
- Trang chi tiết theo khoản mục. Bóc doanh thu theo mảng, chi phí theo khoản mục và đơn vị, tài sản — nguồn vốn theo cấu phần. Trả lời câu "tăng giảm ở đâu".
- Trang truy vết chứng từ. Bảng chi tiết nhật ký: ngày, số chứng từ, tài khoản, diễn giải, số tiền. Đây là trang giữ uy tín cho kế toán — lãnh đạo nghi ngờ con số nào, bạn drill xuống tận chứng từ ngay trong cuộc họp, không cần hẹn "để em kiểm tra lại".
Câu hỏi của sếp và chỉ số trả lời
| Câu hỏi của sếp | Chỉ số / biểu đồ trả lời |
|---|---|
| Vì sao lãi mà không có tiền? | Dòng tiền thuần từ hoạt động kinh doanh đặt cạnh lợi nhuận sau thuế; kèm số ngày thu tiền bình quân và số dư hàng tồn kho theo tháng. |
| Chi phí tăng ở đâu? | Biểu đồ cột chi phí theo khoản mục, so cùng kỳ; drill-down xuống đơn vị rồi xuống chứng từ. |
| Kỳ này so với năm ngoái thế nào? | Measure cùng kỳ năm trước (SAMEPERIODLASTYEAR) và lũy kế từ đầu năm (DATESYTD) hiển thị cạnh số kỳ hiện tại. |
| Bán được nhiều hơn mà sao lãi ít đi? | Biên lợi nhuận gộp theo tháng, tách theo nhóm hàng; đối chiếu tốc độ tăng doanh thu với tốc độ tăng giá vốn. |
| Tiền đang bị chôn ở đâu? | Vòng quay khoản phải thu và vòng quay hàng tồn kho; bảng tuổi nợ phải thu theo khách hàng. |
| Tháng tới có đủ tiền trả nợ đến hạn không? | Khả năng thanh toán hiện hành; biểu đồ dòng tiền vào — ra theo tuần/tháng và lịch các khoản đến hạn. |
Bốn lỗi thường gặp khi làm BCTC trên Power BI
- Lấy số dư đầu kỳ sai. Lỗi phổ biến nhất: cộng dồn toàn bộ phát sinh từ đầu dữ liệu để ra số dư, trong khi dữ liệu chỉ được xuất từ một thời điểm nào đó — thiếu mất số dư mang sang. Cách đúng là tách hẳn bảng số dư đầu kỳ, không trộn vào bảng phát sinh, và luôn đối chiếu số dư cuối kỳ trên dashboard với bảng cân đối số phát sinh của phần mềm kế toán trước khi phát hành.
- Không có bảng Lịch. Dùng luôn cột ngày trong bảng Fact để lọc thời gian. Hậu quả: tháng không có phát sinh biến mất khỏi biểu đồ, hàm so sánh kỳ trả về sai hoặc trống, và không lọc đồng thời được nhiều bảng Fact.
- So sánh kỳ khi dữ liệu chưa khóa sổ. Đem tháng hiện tại còn ghi nhận dở so với tháng trước đã khóa sổ thì kết luận nào cũng lệch. Nên có cột trạng thái kỳ (đã khóa / chưa khóa) trong mô hình và hiển thị rõ thời điểm cập nhật dữ liệu lần cuối ngay trên dashboard.
- Trộn số liệu trước và sau bút toán điều chỉnh. Bút toán điều chỉnh cuối kỳ, kết chuyển, phân bổ nếu không đánh dấu riêng sẽ khiến chi phí bị đếm hai lần hoặc lợi nhuận nhảy vọt bất thường ở tháng 12. Giải pháp: gắn cờ loại bút toán ngay từ khâu Power Query và cho người xem chọn góc nhìn trước hay sau điều chỉnh.
Nguyên tắc chung: mọi dashboard tài chính phải đối chiếu khớp với sổ kế toán trước khi phát hành. Một con số lệch là mất niềm tin của lãnh đạo vào cả hệ báo cáo, và rất khó lấy lại.
Xem trước một báo cáo tài chính thật trên Power BI
Đọc quy trình vẫn trừu tượng hơn tự tay bấm thử. Đội ngũ EzTech có sẵn các báo cáo mẫu nhúng demo sống trên website, thao tác lọc và drill-down được ngay trên trình duyệt:
- Dashboard Phân tích tài chính — bức tranh doanh thu, chi phí, lợi nhuận và các cân đối lớn theo kỳ.
- Dashboard Phân tích chỉ số tài chính — các nhóm chỉ số thanh khoản, sinh lời, hiệu quả hoạt động, đòn bẩy.
- Dashboard Quản trị dòng tiền — dòng tiền vào ra theo thời gian, phục vụ đúng câu hỏi "lãi mà không có tiền".
Muốn nắm khái niệm và bố cục trước khi bắt tay làm, bài Dashboard tài chính là gì giải thích kỹ phần nền.
Câu hỏi thường gặp
Không có ERP, chỉ xuất được Excel từ MISA thì làm được không?
Làm được. Phần lớn dự án báo cáo tài chính trên Power BI khởi đầu từ đúng file Excel xuất ra từ phần mềm kế toán. Điều kiện cần chỉ là xuất được bảng cân đối số phát sinh và sổ nhật ký chung theo kỳ, với cấu trúc cột ổn định giữa các kỳ. Cấu trúc ổn định quan trọng hơn dữ liệu đẹp — Power Query xử lý được dữ liệu xấu, nhưng cấu trúc đổi liên tục thì bước làm sạch phải sửa lại mỗi kỳ.
Kế toán cần biết DAX đến mức nào để tự làm?
Để dựng một hệ báo cáo tài chính hoàn chỉnh, bạn cần nắm chắc khoảng mười hàm: SUM, SUMX, CALCULATE, FILTER, DIVIDE, SAMEPERIODLASTYEAR, DATESYTD, ALL, RELATED và VALUES. Phần khó không phải cú pháp mà là hiểu ngữ cảnh lọc (filter context) — vì sao cùng một measure lại ra số khác nhau ở hai vị trí trên báo cáo. Đây cũng là phần được dạy kỹ trong khóa DATA FINANCE dành cho người làm kế toán — tài chính.
Dashboard có thay được bộ BCTC nộp thuế không?
Không, và cũng không nên đặt mục tiêu đó. BCTC nộp cơ quan thuế phải theo đúng mẫu biểu quy định, xuất từ phần mềm kế toán. Dashboard trên Power BI phục vụ mục đích khác: phân tích quản trị nội bộ, trả lời câu hỏi của ban lãnh đạo nhanh và sâu hơn những gì mẫu biểu pháp định thể hiện được. Hai thứ bổ sung cho nhau, và số liệu của cả hai đều phải khớp về cùng một nguồn sổ kế toán.
Bắt đầu từ đâu
Nếu bạn đang làm kế toán tổng hợp hoặc kế toán trưởng và muốn thoát vòng lặp "dò tay từng dòng mỗi khi sếp hỏi", lộ trình thực tế nhất là: chọn đúng một câu hỏi lãnh đạo hỏi nhiều nhất, dựng một trang dashboard trả lời trọn vẹn câu đó, rồi mở rộng dần. Đừng cố làm cả hệ báo cáo ngay lần đầu.
Muốn tự làm chủ toàn bộ quy trình từ Power Query đến DAX, các bạn có thể tham khảo khóa DATA FINANCE — thiết kế riêng cho người làm kế toán — tài chính, do Th.S Trần Hà Tuấn Anh, cựu Head of Data tại NGS IT và CMC Global, trực tiếp giảng dạy. Còn nếu doanh nghiệp cần một hệ báo cáo tài chính hoàn chỉnh, kết nối nhiều nguồn và phân quyền theo đơn vị, đội ngũ EzTech triển khai giải pháp dữ liệu trên chính hiện trạng dữ liệu bạn đang có. Để lại thông tin tại đây để trao đổi cụ thể về bài toán của bạn.