Power BI 中的财务报告:损益表、资产负债表、现金流量
使用 Power BI 仪表板替换静态 Excel 财务包的首席财务官表示,月末结算报告时间减少了 60-80%。原因是:他们不再手动组装损益表、格式化资产负债表和通过电子邮件发送 PDF,而是一次发布,每个利益相关者(董事会成员、部门负责人、投资者)都会看到过滤到其相关视图的实时数据。
在 Power BI 中构建财务报表在架构上与构建销售或运营仪表板不同。财务报表需要精确的账户映射、精确到分的期间比较以及审计跟踪透明度。本指南展示了完整的实现:数据模型、账户分类、损益表结构、资产负债表可视化、现金流瀑布以及使其发挥作用的 DAX 时间智能公式。
要点
- 财务报告需要总账交易级数据模型(不是预先汇总的报告摘录)
- 账户分类表将账户图表映射到损益表/资产负债表/现金流量类别
- 具有计算列的矩阵视觉效果是语句格式的最佳 Power BI 视觉效果
- 时间智能:DATESYTD、SAMEPERIODLASTYEAR 和 PARALLELPERIOD 处理所有周期比较
- 现金流量表采用间接法:净利润→营运资本调整→营业CF
- 差异分析措施(实际与预算)对于管理报告至关重要
- 辅助维度上的行级安全性控制每个读者看到的实体
- 分页报告(Power BI Report Builder)将像素完美的报表导出为 PDF 以用于板包
财务报告的数据模型
核心表
GL_Transactions(事实表 - 每个日记帐分录行一行):
| 专栏 | 类型 | 描述 |
|---|---|---|
| 代码0 | 文字 | 日记帐分录或交易编号 |
| 代码0 | 国际 | 交易内的行号 |
| 代码0 | 文字 | FK 转会计科目表 |
| 代码0 | 日期 | 交易日期 |
| 代码0 | 日期 | 发布到 GL 的日期 |
| 代码0 | 文字 | 财政期间(例如“2026-03”) |
| 代码0 | 十进制 | 借方金额(正) |
| 代码0 | 十进制 | 信用金额(正) |
| 代码0 | 十进制 | 借记-贷记 |
| 代码0 | 文字 | FK 至子公司 |
| 代码0 | 文字 | FK 至部门 |
| 代码0 | 文字 | FK 到项目(可选) |
| 代码0 | 文字 | 交易备忘录 |
账户图表(维度):
| 专栏 | 描述 |
|---|---|
| 代码0 | 内部账户代码 |
| 代码0 | 显示帐号 |
| 代码0 | 账户名 |
| 代码0 | 资产、负债、权益、收入、支出 |
| 代码0 | 流动资产、固定资产、销货成本、营业费用等 |
| 代码0 | 损益表、资产负债表或现金流量 |
| 代码0 | 收入、销货成本、毛利润、运营费用、EBITDA、净利润 |
| 代码0 | 流动资产、固定资产、流动负债、长期负债、权益 |
| 代码0 | 运营、投资、融资 |
| 代码0 | 对于定制报表订购 |
| 代码0 | 对于层次结构汇总 |
| 代码0 | 淘汰条目标记 |
预算(可选事实表):
| 专栏 | 描述 |
|---|---|
| 代码0 | FK 转会计科目表 |
| 代码0 | 财政期间 |
| 代码0 | 预算金额 |
| 代码0 | 预算、预测、修订 |
| 代码0 | FK 至子公司 |
损益表结构
损益账户分类
损益部分结构应将您的会计科目表映射到标准损益类别:
Revenue
- Product Revenue
- Service Revenue
- Other Revenue
Cost of Goods Sold
- Product COGS
- Direct Labor
- Manufacturing Overhead
= Gross Profit
Operating Expenses
- Sales & Marketing
- General & Administrative
- Research & Development
- Depreciation & Amortization
= EBITDA / Operating Income
Other Income / Expense
- Interest Income
- Interest Expense
- Foreign Exchange
= Net Income Before Tax
- Income Tax Expense
= Net Income
DAX 损益指标
// Core GL amount measure (handles sign convention)
GL Amount =
SUMX(
GL_Transactions,
SWITCH(
RELATED(Chart_of_Accounts[AccountType]),
"Revenue", GL_Transactions[CreditAmount] - GL_Transactions[DebitAmount],
"Expense", GL_Transactions[DebitAmount] - GL_Transactions[CreditAmount],
"Asset", GL_Transactions[DebitAmount] - GL_Transactions[CreditAmount],
"Liability", GL_Transactions[CreditAmount] - GL_Transactions[DebitAmount],
"Equity", GL_Transactions[CreditAmount] - GL_Transactions[DebitAmount],
GL_Transactions[NetAmount]
)
)
// Revenue
Total Revenue =
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "Revenue")
// COGS
Total COGS =
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "COGS")
// Gross Profit
Gross Profit = [Total Revenue] - [Total COGS]
// Gross Margin %
Gross Margin % = DIVIDE([Gross Profit], [Total Revenue], 0)
// Operating Expenses
Total OpEx =
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "Operating Expense")
// EBITDA
EBITDA = [Gross Profit] - [Total OpEx]
// D&A (addback for EBITDA from EBIT)
DA Addback =
CALCULATE(
[GL Amount],
Chart_of_Accounts[AccountName] IN {"Depreciation", "Amortization"}
)
// Net Income
Net Income =
[EBITDA] +
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "Other Income/Expense") -
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "Tax Expense")
损益时间智能
// Prior Year same period
PY Revenue = CALCULATE([Total Revenue], SAMEPERIODLASTYEAR(Date[Date]))
// YTD Revenue
YTD Revenue = CALCULATE([Total Revenue], DATESYTD(Date[Date]))
// Prior YTD Revenue
PY YTD Revenue = CALCULATE([YTD Revenue], SAMEPERIODLASTYEAR(Date[Date]))
// Budget Variance
Revenue Budget Variance =
[Total Revenue] -
CALCULATE(SUM(Budget[BudgetAmount]), Budget[ScenarioID] = "Budget")
// Budget Variance %
Revenue Budget Var % =
DIVIDE([Revenue Budget Variance],
CALCULATE(SUM(Budget[BudgetAmount]), Budget[ScenarioID] = "Budget"), 0)
// Rolling 12-Month Revenue
R12M Revenue =
CALCULATE(
[Total Revenue],
DATESINPERIOD(Date[Date], LASTDATE(Date[Date]), -12, MONTH)
)
损益矩阵视觉设计
损益表的推荐视觉效果是矩阵:
- 行:损益行项目(来自
Chart_of_Accounts[PLSection]带小计) - 列:期间(月、季度、年初至今)
- 值:实际金额、预算金额、差异 $、差异 %
配置矩阵:
- 启用部分级别的小计(收入总额、销货成本总额等)
- 使用条件格式:红色 = 不利方差,绿色 = 有利方差
- 通过
Chart_of_Accounts[SortOrder]应用自定义排序顺序 - 数字格式:
£#,##0K表示千位,0.0%表示百分比
资产负债表可视化
资产负债表结构
Assets
Current Assets
- Cash and Equivalents
- Accounts Receivable
- Inventory
- Prepaid Expenses
Fixed Assets
- Property, Plant & Equipment (net)
- Intangible Assets
- Goodwill
= Total Assets
Liabilities
Current Liabilities
- Accounts Payable
- Accrued Expenses
- Deferred Revenue
- Short-term Debt
Long-term Liabilities
- Long-term Debt
- Deferred Tax
= Total Liabilities
Equity
- Common Stock
- Retained Earnings
- Additional Paid-In Capital
= Total Equity
= Total Liabilities + Equity
资产负债表 DAX 指标
资产负债表计量使用余额(累计)而不是期间金额 - 从开始到选定日期的所有交易:
// Balance Sheet uses cumulative amounts (not period totals)
BS Amount =
CALCULATE(
[GL Amount],
FILTER(
ALL(Date),
Date[Date] <= MAX(Date[Date])
)
)
// Total Current Assets
Current Assets =
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Current Assets")
// Total Fixed Assets (net of depreciation)
Fixed Assets =
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Fixed Assets")
// Total Assets
Total Assets = [Current Assets] + [Fixed Assets]
// Total Current Liabilities
Current Liabilities =
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Current Liabilities")
// Total Equity
Total Equity =
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Equity")
// Balance Sheet Check (must equal 0 for a balanced BS)
BS Balance Check =
[Total Assets] - ([Current Liabilities] +
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Long-term Liabilities") +
[Total Equity])
// Key Ratios
Current Ratio = DIVIDE([Current Assets], [Current Liabilities], 0)
Quick Ratio =
DIVIDE(
[Current Assets] -
CALCULATE([BS Amount], Chart_of_Accounts[AccountSubType] = "Inventory"),
[Current Liabilities],
0
)
Debt to Equity = DIVIDE([Current Liabilities], [Total Equity], 0)
资产负债表可视化模式
使用视觉效果的组合:
- 完整资产负债表的矩阵(与损益矩阵结构相同)
- 资产 vs 负债 + 权益的堆积条形图(12 个月内的趋势)
- 流动比率、速动比率、债务/权益的 KPI 卡
- 营运资金与目标的衡量标准
现金流量表(间接法)
间接法从净利润开始,并根据非现金项目和营运资本变化进行调整。
Operating Activities:
+ Net Income
+ Depreciation & Amortization
+ / - Changes in Working Capital:
+ Decrease / - Increase in Accounts Receivable
+ Decrease / - Increase in Inventory
- Decrease / + Increase in Accounts Payable
- Decrease / + Increase in Accrued Expenses
= Net Cash from Operations
Investing Activities:
- Capital Expenditures (PP&E additions)
+ Proceeds from Asset Sales
= Net Cash from Investing
Financing Activities:
+ Debt Proceeds
- Debt Repayments
- Dividends Paid
+ Equity Raised
= Net Cash from Financing
= Net Change in Cash
+ Beginning Cash Balance
= Ending Cash Balance
现金流量 DAX 指标
// Period-over-Period change in Accounts Receivable
AR Change =
VAR CurrentAR = CALCULATE([BS Amount], Chart_of_Accounts[AccountSubType] = "Accounts Receivable")
VAR PriorAR = CALCULATE(
[BS Amount],
Chart_of_Accounts[AccountSubType] = "Accounts Receivable",
DATEADD(Date[Date], -1, MONTH)
)
RETURN PriorAR - CurrentAR // Decrease in AR = positive cash impact
// Change in Inventory
Inventory Change =
VAR CurrentInv = CALCULATE([BS Amount], Chart_of_Accounts[AccountSubType] = "Inventory")
VAR PriorInv = CALCULATE([BS Amount], Chart_of_Accounts[AccountSubType] = "Inventory",
DATEADD(Date[Date], -1, MONTH))
RETURN PriorInv - CurrentInv
// Capital Expenditures (negative — cash outflow)
CapEx =
-CALCULATE(
[GL Amount],
Chart_of_Accounts[AccountSubType] = "Fixed Asset Addition",
Chart_of_Accounts[CFSection] = "Investing"
)
// Net Cash from Operations
Operating Cash Flow =
[Net Income] +
[DA Addback] +
[AR Change] +
[Inventory Change] +
CALCULATE([GL Amount], Chart_of_Accounts[AccountSubType] = "Accounts Payable Change")
// Free Cash Flow
Free Cash Flow = [Operating Cash Flow] + [CapEx]
现金流量瀑布图
瀑布图是现金流量的理想视觉效果:
- 创建一个计算表,其中包含现金流量行项目及其金额 2.使用瀑布图视觉效果(内置于Power BI中) 3.配置“增加”和“减少”类别,显示每一项的贡献
- 将“运营净现金”、“投资净现金”、“融资净现金”标记为小计
- 将“期末现金余额”标记为总计
方差分析:实际 vs 预算 vs 预测
// Scenario selector (works with a scenario slicer)
Selected Measure =
SWITCH(
SELECTEDVALUE(Scenario[Scenario]),
"Budget", SUM(Budget[Amount]),
"Forecast", CALCULATE(SUM(Budget[Amount]), Budget[ScenarioID] = "Q2 Forecast"),
[Total Revenue] -- default to Actual
)
// Traffic light variance
Variance Status =
VAR Var% = [Revenue Budget Var %]
RETURN
SWITCH(TRUE(),
Var% >= 0.05, "Favorable",
Var% >= -0.05, "On Track",
"Unfavorable"
)
常见问题
Power BI 能否取代我们现有的 ERP 财务报告模块?
Power BI 可以用更灵活的交互式等价物取代大多数标准财务报告(损益表、资产负债表、现金流量、AR 账龄)。然而,法定财务报表(经 GAAP/IFRS 认证)、带签名控制的审计就绪报告以及交易过账功能仍保留在 ERP 中。最佳方法:使用 ERP 进行事务控制和合规性,使用 Power BI 进行管理报告和董事会级分析。
如何确保 Power BI 中的损益表与 ERP 完全匹配?
最常见的对账问题是符号约定 - ERP 定义收入帐户是否具有贷方或借方正常余额,而 Power BI 必须应用相同的逻辑。构建一个测试度量,对所有 GL 条目(借方 + 贷方)进行求和,并验证其在关闭期间等于 0。然后将您的损益总额与 ERP 的本机损益报告逐个期间进行比较,直至匹配。
是否可以将多个子公司合并到一份 Power BI 财务报告中?
是的 - 这是 Power BI 相对于许多 ERP 财务报告模块的主要优势之一。使用 SubsidiaryID 列从所有子公司导入 GL 数据,然后构建跨子公司求和的合并度量。对于公司间抵销,在会计科目表中标记公司间科目并将其从合并计量中排除。货币换算需要将汇率表连接到交易日期。
如何从 Power BI 创建板包质量的 PDF 报告?
Power BI Report Builder(分页报告)可创建像素完美的 PDF 输出 - 专业格式、分页符、页眉/页脚和精确的表格布局。它与 Power BI Desktop 分开,但使用相同的数据集。对于董事会包,在 Word 中构建管理评论,通过分页报告生成财务表格,并通过 Power Automate 按月计划合并。分页报告需要 Power BI Premium 或 PPU 许可证。
处理与日历年度不匹配的会计年度的最佳方法是什么?
在 DAX 或 Power Query 中创建自定义日期表,其中包含基于会计年度开始月份的 FiscalYear、FiscalQuarter 和 FiscalPeriod 列。在 Power BI 中将此表标记为日期表。将 DATESYTD 与会计年度结束日期参数结合使用:CALCULATE([Revenue], DATESYTD(Date[Date], "3/31")) 表示三月会计年度结束。所有时间智能功能都接受这个可选的年终参数。
后续步骤
Power BI 中的财务报告需要比操作仪表板更仔细的数据建模 - 帐户签名约定、资产负债表累积逻辑和现金流量间接方法计算都需要精确实施。如果操作正确,CFO 仪表板可以用几分钟的探索取代数周的 Excel 工作。
ECOSIRE 将 Power BI 专业知识与深厚的会计和财务知识相结合。我们的Power BI 仪表板开发服务 包括完整的财务报表设计,我们的会计服务 涵盖数据质量和科目表结构,使财务仪表板变得可靠。
联系我们的财务分析团队 讨论您的财务报告要求并设计 Power BI 架构,为您的领导团队提供所需的财务可见性。
作者
ECOSIRE Research and Development Team
在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。
相关文章
AI-Powered Accounting Automation: What Works in 2026
Discover which AI accounting automation tools deliver real ROI in 2026, from bank reconciliation to predictive cash flow, with implementation strategies.
Audit Preparation Checklist: Getting Your Books Ready
Complete audit preparation checklist covering financial statement readiness, supporting documentation, internal controls documentation, auditor PBC lists, and common audit findings.
Australian GST Guide for eCommerce Businesses
Complete Australian GST guide for eCommerce businesses covering ATO registration, the $75,000 threshold, low value imports, BAS lodgement, and GST for digital services.