我把 Power BI 模型变成了一个可分享的网页看板——AI 识别建模、翻译 DAX、全链路验证实录

为什么做这件事 做财务分析这些年,Power BI 是我最趁手的工具。但它有一个绕不开的问题:成品不好分享。 发给同事?对方要装 Power BI Desktop,还要会用 换一家公司、换一套数据?报表里的数据源、清洗逻辑、度量值要重新配一遍 想改个指标?得打开文件、改 DAX、刷新、重新发布 我的想法很简单:能不能把我做的数据建模"固化"成一个网页看板系统——别人只要丢一个 Excel 文件进来,看板就自动出数,还能交互、能分享,甚至不用装任何软件? 这个想法验证了一个周末,成了。这篇文章记录完整过程。 整体思路 Power BI 的本质是"数据建模 + 度量值 + 可视化"三件套。我的思路是拆开它们: Power BI 当设计台:建模、验证、预览效果,这是它最擅长的事 模型定义文件当产品核心:把表结构、关系、度量值全部固化成一份代码定义(model.json) Web 引擎当成品:ECharts 看板 + 数据引擎,接受任何人的 Excel,自动算出所有指标 翻译过去之后,Power BI 文件不再是必需品——模型资产变成了代码资产,可版本控制、可分享、可迭代。 四步做法 第一步:识别模型(AI 读取 Power BI) 用微软官方的 Power BI 建模 MCP 工具,直接连接正在运行的 Power BI Desktop,把整个语义模型导出为 TMDL 格式(Power BI 模型的标准文本格式)。 导出的内容让我有点意外——这个模型比我想象的完整: 8 张表:1 张事实表(报表数据:公司/报表类型/报表项目/报表日期/金额)+ 7 张维度表(利润表结构、资产负债表结构、现金流量表结构、杜邦分析结构、日期表、公司名称等) 5 条关系:事实表分别关联各结构表和日期表 74 个度量值:从基础的营业收入、净利润,到杜邦分析的净资产收益率、权益乘数,再到存货周转天数、运营周期 AI 能完整识别数据建模,这条路是通的。 第二步:翻译度量值(DAX → Python) 这是整个流程里最有意思的一步。74 个 DAX 度量值,看起来复杂,但翻译成代码后模式其实很清晰: ...

2026-08-22 · 2 min · 221 words · 董威

从零搭建财务数据驾驶舱:AkShare 抓数据 × PowerBI 做看板

项目背景 做财务分析,最头疼的就是数据源头。 以前我是手动导 SAP 报表、复制粘贴到 Excel 里做透视表,每次更新数据要花半天时间,还容易出错。后来用 PowerBI 做看板,但数据源还是手动维护的 CSV 文件——每季度更新一次,依然麻烦。 这个项目的目标:用 Python 自动抓取 A 股财务数据 → 自动清洗 → PowerBI 读取 → 生成可视化报告。 数据源完全自动化,我只用打开 PowerBI 点一下刷新。 技术栈 环节 工具 数据采集 Python AkShare(东方财富网开放接口) 数据清洗 Python Pandas 数据建模 PowerBI + PowerQuery + DAX 可视化 PowerBI 仪表盘 第一步:用 AkShare 自动抓数据 AkShare 是一个 Python 开源库,封装了东方财富、新浪财经等平台的公开数据接口。不需要爬虫、不需要 API Key,pip 安装就能用。 安装 1 pip install akshare 抓取财务三大报表 以华帝股份(002035)为例,抓取利润表、资产负债表、现金流量表: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import akshare as ak import pandas as pd # 利润表 income = ak.stock_financial_report_sina(stock="sz002035", symbol="利润表") income.to_csv("利润表.csv", encoding="utf-8-sig") # 资产负债表 balance = ak.stock_financial_report_sina(stock="sz002035", symbol="资产负债表") balance.to_csv("资产负债表.csv", encoding="utf-8-sig") # 现金流量表 cashflow = ak.stock_financial_report_sina(stock="sz002035", symbol="现金流量表") cashflow.to_csv("现金流量表.csv", encoding="utf-8-sig") 一条命令就能拿到完整的财务数据。利润表 147 列、资产负债表 241 列、现金流量表 211 列——比你在东方财富网上手动翻页快得多。 ...

2026-07-26 · 2 min · 267 words · 董威

PowerBI 财务数据建模实战:M 函数、DAX 度量值与关系建模

为什么写这篇 在公司给财务部同事分享 PowerBI 时,我发现一个问题:很多人会用 PowerBI 画图,但不会建模。 拖一个柱状图、拉一个折线——这些操作几小时就学会了。但真正让报表"活起来"的是背后的数据模型:M 函数怎么写、表之间怎么关联、度量值怎么算。这些东西不懂,每次换数据源都要重做一遍。 这篇文章把我在华帝做财务看板时的建模经验整理出来,希望能帮到同样在学 PowerBI 的财务同行。 一、数据建模的核心概念 先理解三个东西,这是整个 PowerBI 建模的基础: 概念 是什么 类比 PowerQuery(M 语言) 数据清洗和转换,在数据进 PowerBI 之前处理 洗菜切菜 关系建模 多张表之间怎么关联(一对多、多对一) 搭积木 DAX 度量值 写计算公式,计算毛利率、增长率等指标 菜谱公式 一个完整的 PowerBI 项目,数据流向是这样的: 原始数据(Excel/CSV/数据库/API) ↓ PowerQuery 清洗(M 函数) ↓ 数据模型(建表关系) ↓ DAX 度量值(写业务指标) ↓ 可视化报告(图表/看板) 二、PowerQuery M 函数实战 M 语言是 PowerQuery 的内置脚本语言。每次你在 PowerQuery 编辑器里点按钮,背后都在生成 M 代码。 常用 M 函数 1. 合并查询(JOIN) 两张表通过关键字段关联,类似 SQL 的 JOIN: 1 2 3 4 5 6 7 8 9 let Source = Table.NestedJoin( 利润表, {"报告期"}, 资产负债表, {"报告期"}, "资产负债表", JoinKind.LeftOuter ), #"Expanded" = Table.ExpandTableColumn(Source, "资产负债表", {"资产总计", "负债合计"}) in #"Expanded" 2. 逆透视(把宽表变长表) 财务系统中导出的数据经常是"宽表"——每个月一列。用逆透视转成标准数据表: ...

2026-07-26 · 2 min · 353 words · 董威