惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cybersecurity and Infrastructure Security Agency CISA
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
小众软件
小众软件
博客园 - 【当耐特】
爱范儿
爱范儿
美团技术团队
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
月光博客
月光博客
宝玉的分享
宝玉的分享
V
V2EX
Blog — PlanetScale
Blog — PlanetScale
Spread Privacy
Spread Privacy
博客园 - 叶小钗
量子位
Security Archives - TechRepublic
Security Archives - TechRepublic
Google DeepMind News
Google DeepMind News
L
LINUX DO - 热门话题
Hacker News - Newest:
Hacker News - Newest: "LLM"
P
Privacy International News Feed
Y
Y Combinator Blog
P
Proofpoint News Feed
NISL@THU
NISL@THU
The Last Watchdog
The Last Watchdog
S
Secure Thoughts
G
Google Developers Blog
Hacker News: Ask HN
Hacker News: Ask HN
Help Net Security
Help Net Security
I
InfoQ
Cisco Talos Blog
Cisco Talos Blog
Google Online Security Blog
Google Online Security Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Recent Announcements
Recent Announcements
Simon Willison's Weblog
Simon Willison's Weblog
Vercel News
Vercel News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Vulnerabilities – Threatpost
B
Blog
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
N
News | PayPal Newsroom
J
Java Code Geeks
Latest news
Latest news
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 哥本哈士奇(aspnetx)

医疗器械行业 Salesforce Territory 完整落地实例 Raw Data Vault vs Business Data Vault Neo4j 多跳查询实战:从社交网络场景理解图遍历 Git 本地版本管理学习笔记 看完《低智商犯罪》,学习Cypher构建知识图谱 LangChain DeepAgents 学习笔记 LangChain Deepagent 版本0.6.1中间件一个bug Neo4j笔记(五):查询的处理流程 微软 SQL Server 版本演进史:从诞生到 SQL Server 2025 提升 Text2SQL 准确率 SQLServer Management Studio(SSMS) 22 Copilot 最佳实践学习笔记 SQLServer RAG笔记4:从服务层到前端交互 SQLServer RAG笔记5:为SQLServer 2025配置Ollama SQL Server RAG 笔记3:SQLServer2025 向量数据库 详解传统RAG、Text2SQL、Graph RAG:适用场景与问题示例汇总 SQL Server RAG 笔记2:图数据库服务层与前端可视化构建 SQL Server RAG 笔记1:图数据库构建 Neo4j 笔记(四):一篇文章如何入库的 数据仓库笔记 第六篇:PSA 层 SCD2 处理方式 数据仓库笔记 第五篇:Data Mart 层(数据集市) 数据仓库笔记 第四篇:Star Schema 层(维度建模) 数据仓库笔记 第三篇:常用缓慢变化维处理方式介绍 数据仓库笔记 第二篇:PSA 层(持久化暂存区)详解 数据仓库笔记 第一篇:数据仓库的定义、历史与意义 Neo4j 笔记(三):数据建模与程序连接实战 Neo4j 基础教程(二):Cypher CRUD 完全指南 Neo4j 基础教程(一):安装与快速入门 Power BI学习笔记第20篇:面试题汇总 · 第三篇:高级应用与最佳实践篇 Power BI学习笔记第19篇:面试题汇总 · 第二篇:数据建模与 DAX 篇 Power BI学习笔记第18篇:面试题汇总 · 第一篇:基础概念篇 Power BI学习笔记第15篇:企业级报表开发与最佳实践 Power BI学习笔记第13篇:高级可视化与自定义图表 Power BI学习笔记第14篇:Power Query 高级数据处理 Power BI学习笔记第12篇:DAX 高级计算与性能优化 Power BI学习笔记第11篇:高级数据建模与关系设计 Power BI学习笔记第10篇:实战案例 — 销售数据分析仪表板 Power BI学习笔记第08篇:报表交互与筛选器 Power BI学习笔记第09篇:Power BI Service 发布与共享 Power BI学习笔记第07篇:可视化图表设计与最佳实践 Power BI学习笔记第06篇:DAX 进阶:时间智能与复杂计算 Power BI学习笔记第05篇:DAX 基础:计算列与度量值 Power BI学习笔记第04篇:数据建模与关系管理 Power BI学习笔记第03篇:Power Query 数据清洗与转换 Power BI学习笔记第02篇:数据获取与连接数据源 Power BI学习笔记第01篇:Power BI 简介与环境搭建 Power BI Dashboard 常用布局方案推荐 Power BI 示例一览 OpenClaw 核心八大 MD 文件 Microsoft Agent Framework 智能体调用工具 Microsoft Agent Framework 创建智能体 一个简单案例理解OpenClaw的做梦过程 SQLAlchemy 学习笔记 LangChain RAG索引与查询 - 学习笔记 LangChain使用deep agent并且加载SKILL 本地系统对接大模型智能体的若干尝试 用SKILL实现请假流程信息收集 使用小龙虾来操作猿编程的遥控车 使用OpenClaw的Skills对接本地系统 OpenClaw必装Skill全指南 Dify Agentic RAG 笔记 # 简单的神经网络计算过程 - 正负判断 使用Gradio构建AI前端 - RAG的QA模块 使用Gradio构建AI前端 - RAG召回测试 Streamlit + LangChain 1.0 简单实现智能问答前后端 利用AI Agent,辅助销售团队制定培训和考试内容 实现AI和BI整合的初步思路和探索-Part3 实现AI和BI整合的初步思路和探索-Part2 实现AI和BI整合的初步思路和探索 以《出师表》作为例子,对比通用分块和父子分块的区别 LangChain RAG 学习笔记:从文档加载到问答服务 记录无法修改OneDrive文件的解决方法 Power BI制作指标达成跟踪器 Power BI学习笔记-周报销售数据分析
财务分析报告 - 常用Power BI DAX公式详解
哥本哈士奇(aspnet · 2026-04-06 · via 博客园 - 哥本哈士奇(aspnetx)

财务分析报告 - 常用Power BI DAX公式详解

摘要

此篇来自对power bi gallery中,上市公司财务分析报告的DAX解析。
我用小龙虾读取了这个报告的公式,让其进行提取,说明,以及关键知识点的说明。
主要用于后续知识的review。


一、时间智能函数

1. 同比分析 (Year-over-Year)

营收同比

营收同比 = 
VAR CurrentRevenue = SUM('利润表'[营业收入])
VAR LastYearRevenue = CALCULATE(
    SUM('利润表'[营业收入]),
    SAMEPERIODLASTYEAR('日期表'[日期])
)
RETURN
    DIVIDE(CurrentRevenue - LastYearRevenue, LastYearRevenue)

作用:计算本期营业收入与去年同期的增长百分比

知识点

  • SAMEPERIODLASTYEAR():返回去年同期的日期集合
  • CALCULATE():修改计算上下文,是 DAX 最强大的函数
  • DIVIDE():安全除法,避免除零错误

净利润同比

净利润同比 = 
VAR CurrentNetProfit = SUM('利润表'[净利润])
VAR LastYearNetProfit = CALCULATE(
    SUM('利润表'[净利润]),
    SAMEPERIODLASTYEAR('日期表'[日期])
)
RETURN
    DIVIDE(CurrentNetProfit - LastYearNetProfit, LastYearNetProfit)

扣非净利润同比

扣非净利润同比 = 
VAR CurrentExcluding = SUM('利润表'[扣非净利润])
VAR LastYearExcluding = CALCULATE(
    SUM('利润表'[扣非净利润]),
    SAMEPERIODLASTYEAR('日期表'[日期])
)
RETURN
    DIVIDE(CurrentExcluding - LastYearExcluding, LastYearExcluding)

2. 累计计算 (Running Total)

年初至今营收

年营收 = TOTALYTD(
    SUM('利润表'[营业收入]),
    '日期表'[日期]
)

知识点

  • TOTALYTD():计算年初至今的累计值
  • 参数可选:年结束月份,如 TOTALYTD(SUM(Sales[Amount]), Dates[Date], "06/30")

年初至今净利润

年净利润 = TOTALYTD(
    SUM('利润表'[净利润]),
    '日期表'[日期]
)

二、比率计算函数

1. 盈利能力指标

毛利率

毛利率 = DIVIDE(
    SUM('利润表'[营业收入]) - SUM('利润表'[营业成本]),
    SUM('利润表'[营业收入])
)

等价形式

毛利率 = 
VAR Revenue = SUM('利润表'[营业收入])
VAR COGS = SUM('利润表'[营业成本])
RETURN
    1 - DIVIDE(COGS, Revenue)

净利率

净利率 = DIVIDE(
    SUM('利润表'[净利润]),
    SUM('利润表'[营业收入])
)

净资产收益率 (ROE)

净资产收益率 = DIVIDE(
    SUM('利润表'[净利润]),
    AVERAGE('资产负债表'[所有者权益])
)

说明:反映股东投资回报率,是杜邦分析的核心指标

总资产收益率 (ROA)

总资产收益率 = DIVIDE(
    SUM('利润表'[净利润]),
    AVERAGE('资产负债表'[总资产])
)

知识点

  • AVERAGE():计算平均值,自动忽略空白
  • 需使用平均资产,因为资产负债表是时点数据

2. 偿债能力指标

资产负债率

资产负债率 = DIVIDE(
    SUM('资产负债表'[负债总额]),
    SUM('资产负债表'[资产总额])
)

流动比率

流动比率 = DIVIDE(
    SUM('资产负债表'[流动资产]),
    SUM('资产负债表'[流动负债])
)

速动比率

速动比率 = DIVIDE(
    SUM('资产负债表'[流动资产]) - SUM('资产负债表'[存货]),
    SUM('资产负债表'[流动负债])
)

现金流量比率

现金流量比率 = DIVIDE(
    SUM('现金流量表'[经营活动产生的现金流量净额]),
    SUM('资产负债表'[流动负债])
)

3. 营运能力指标

存货周转率

存货周转率 = DIVIDE(
    SUM('利润表'[营业成本]),
    AVERAGE('资产负债表'[存货])
)

知识点:周转率越高,说明存货管理效率越好

存货周转天数

存货周转天数 = 365 / [存货周转率]

或使用

存货周转天数 = DIVIDE(365, [存货周转率])

应收账款周转天数

应收账款周转天数 = DIVIDE(
    365 * AVERAGE('资产负债表'[应收账款]),
    SUM('利润表'[营业收入])
)

总资产周转率

总资产周转率 = DIVIDE(
    SUM('利润表'[营业收入]),
    AVERAGE('资产负债表'[总资产])
)

4. 现金流指标

净现比

净现比 = DIVIDE(
    SUM('现金流量表'[经营活动产生的现金流量净额]),
    SUM('利润表'[净利润])
)

知识点

  • 反映利润的现金质量
  • 正常应大于 1,表示利润有真实现金支撑
  • 长期小于 1 可能意味着盈利质量不佳

每股经营现金流

每股经营现金流 = DIVIDE(
    SUM('现金流量表'[经营活动产生的现金流量净额]),
    SUM('公司基本信息'[总股本])
)

三、DAX 核心概念

1. 上下文 (Context)

行上下文 (Row Context)

  • 迭代函数(如 SUMX, AVERAGEX)创建行上下文
  • 在每一行上计算表达式
Total Cost := SUMX(
    Sales,
    Sales[Quantity] * Sales[Unit Cost]
)

筛选上下文 (Filter Context)

  • 由视觉对象(图表、切片器)创建的过滤条件
  • CALCULATE() 可以修改筛选上下文
Sales Red := CALCULATE(
    SUM(Sales[Amount]),
    Sales[Color] = "Red"
)

上下文转换

  • 行上下文在 CALCULATE 内自动转换为筛选上下文
  • 这是 DAX 最强大的特性之一

2. 常用迭代函数

函数 说明 示例
SUMX() 对表逐行计算后求和 SUMX(Sales, Sales[Qty] * Sales[Price])
AVERAGEX() 逐行计算后取平均 AVERAGEX(Sales, Sales[Amount])
COUNTX() 计数非空白值 COUNTX(Sales, Sales[OrderID])
CONCATENATEX() 串联文本 CONCATENATEX(Values, Table[Name], ", ")
MAXX() / MINX() 最大/最小值 MAXX(Sales, Sales[Amount])

3. 筛选函数

FILTER

HighValueSales := CALCULATE(
    SUM(Sales[Amount]),
    FILTER(
        Sales,
        Sales[Amount] > 1000
    )
)

ALL

PercentOfTotal := DIVIDE(
    SUM(Sales[Amount]),
    CALCULATE(SUM(Sales[Amount]), ALL(Sales))
)

作用:移除所有筛选,获取总计

ALLEXCEPT

PercentByCategory := DIVIDE(
    SUM(Sales[Amount]),
    CALCULATE(SUM(Sales[Amount]), ALLEXCEPT(Sales, Sales[Category]))
)

VALUES / DISTINCT

CategoryCount := COUNTROWS(VALUES(Sales[Category]))

4. 时间智能函数

函数 功能
SAMEPERIODLASTYEAR() 去年同周期
PARALLELPERIOD() 偏移N个月/季度/年
DATEADD() 日期偏移
TOTALYTD() 年初至今累计
TOTALQTD() 季度至今累计
TOTALMTD() 月初至今累计
DATESYTD() 年初至今日期集
ENDOFMONTH() / ENDOFQUARTER() 月/季度末日期

5. 关系函数

ProductCategory := RELATED('Product'[Category])

前提:必须存在一对多关系

SalesCount := COUNTROWS(RELATEDTABLE(Sales))

6. 变量 (VAR)

ComplexMeasure := 
VAR TotalSales = SUM(Sales[Amount])
VAR LastYearSales = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Dates[Date]))
VAR YoY = TotalSales - LastYearSales
RETURN
    DIVIDE(YoY, LastYearSales)

优点

  • 提高可读性
  • 避免重复计算
  • 可存储多个中间结果

四、杜邦分析公式

杜邦恒等式

净资产收益率 = 净利率 × 资产周转率 × 权益乘数

权益乘数

权益乘数 = DIVIDE(
    SUM('资产负债表'[总资产]),
    SUM('资产负债表'[所有者权益])
)

分解后的 ROE

ROE分解 := 
    [净利率] * [总资产周转率] * [权益乘数]

五、同行比较公式

行业中位数

行业中位数 = MEDIANX(
    ALL('公司数据'),
    '公司数据'[市盈率]
)

知识点

  • MEDIAN():返回中位数(总体)
  • MEDIANX():返回中位数(迭代)

同行业中值

同行业中值 = CALCULATE(
    MEDIAN('公司数据'[市盈率]),
    '公司数据'[行业] = SELECTEDVALUE('公司数据'[行业])
)

六、常见错误与最佳实践

1. 常见错误

错误 原因 解决
空白结果 上下文不匹配 使用 CALCULATE 调整
值过大 未正确筛选 检查筛选上下文
时间函数不工作 缺少日期表 创建连续日期表并标记

2. 最佳实践

  1. 始终创建日期表
日期表 = CALENDAR(DATE(2020,1,1), TODAY())
  1. 标记日期表
MARKASFIRED('日期表')
  1. 使用度量值而非直接列计算

  2. 复杂公式使用变量

  3. 避免在度量值中使用硬编码


七、公式速查表

业务指标 基础公式
同比增长率 (本期-上期) / 上期
环比增长率 (本期-上期) / 上期
毛利率 (营收-成本) / 营收
净利率 净利润 / 营收
ROE 净利润 / 净资产
ROA 净利润 / 总资产
资产负债率 负债 / 资产
流动比率 流动资产 / 流动负债
周转率 成本或收入 / 平均余额
每股收益 净利润 / 股数