资讯动态

11个Power BI官方示例数据练手:从导入建模到DAX实战

发布时间:2026/9/30 5:10:24 来源:尧图企业网站定制
1. 先说清楚为什么练手要用官方示例数据如果你刚开始接触Power BI大概率会遇到一个比DAX 怎么写更让人头疼的问题——拿什么数据练手。随便找个 Excel 表格打开列名是字段1、字段2、字段3日期是文本格式金额里混着元万-和各种空格你花两个小时洗数据最后连一张像样的折线图都没做出来学习热情直接掉一半。我自己最开始就是这样折腾了三个晚上最后把文件删了。官方示例数据的价值就在这儿。它们是微软为了演示产品能力而专门整理过的数据集字段命名规范、日期是真日期、维度表与事实表的关系基本符合星型模型还自带一份已经做好的 .pbix 报表文件。你可以直接打开看别人是怎么摆视觉对象、怎么写度量值、怎么设置交互的也能把数据抽出来自己从零重建一遍。对新手来说这是从看不懂到能上手之间最短的一条路对已经会用的人来说这些示例是验证新写法、测试性能优化的标准靶子。下面这 11 个案例是我自己反复用过、也推荐给同事的一套组合。我会把每个案例练什么、难点在哪、容易在哪儿卡住讲清楚同时把获取方式、导入流程、建模要点和常见报错的排查思路一并写出来。不管你是完全没碰过 Power BI 的零基础还是已经做过几个报表但模型总觉得别扭的人都能从里面挑到适合自己的那一个。2. 11个必学官方示例数据逐个体检2.1 零售与销售类最容易出成果的入口零售分析示例Retail Analysis Sample是我给所有人推荐的第一个练手项目。它的数据形态非常典型一张按门店、按日期、按产品记录销售额的事实表配上产品、门店、日期等维度。你打开那个现成的 .pbix会看到仪表板上按区域分布的门店地图、按品类拆分的销售柱状图、以及一条贯穿全年的时间趋势线。这个案例最适合练的是维度层级钻取——从区域钻到城市再到具体门店最后看到单品。我第一次做的时候钻取总是断链后来才发现是维度表里存在空值导致层级匹配不上。销售与市场示例Sales and Marketing Sample偏向另一个角度。它把销售数据按产品、按销售渠道、按时间段切开重点展示的是同一份数据在不同粒度下的表现差异。这个案例我推荐用来练计算列与度量值的区别。举个实际场景你需要在产品表里加一列利润率区间把利润率分成高中低三档这是行级别的判断用计算列而你需要在报表上显示当前筛选范围内的平均利润率随切片器变化而变化这就是度量值。很多人一开始分不清把该用度量值的东西写成计算列结果切片器一拉数字纹丝不动人当场懵住。财务示例Financial Sample结构最简单通常是一张宽表包含国家、产品、细分市场、销售金额、利润、折扣等字段。它简单到有人觉得没什么可练的但我恰恰用它来练矩阵视觉对象和条件格式。把国家放行、产品放列、利润放值再给利润加数据条和色阶一眼就能看出哪个市场在亏钱。这个案例还有个隐藏价值因为字段少、数据量小它是测试 DAX 写法性能差异的最佳试验田同一个结果用 SUMX 和用 SUM 写在小数据上看不出区别但它能让你先养成能不用迭代函数就不用的习惯。2.2 客户、机会与利润类练度量值的试金石客户盈利能力示例Customer Profitability Sample是一个把收入高和真的赚钱这两件事拆开的经典案例。它会给你客户的收入、成本、服务费用、折扣等数据让你算出每个客户的实际贡献。这里最值得练的是占比类度量值——单个客户收入占总收入的比例、前 20% 客户贡献了多少利润。写占比的时候新手最常犯的错是直接用DIVIDE(SUM(收入), SUM(全部收入))但分母没有解除筛选结果每一行算出来都是 100%。正确做法是用CALCULATE配合ALL或者REMOVEFILTERS把筛选上下文剥掉这个思维转折点一旦跨过去DAX 就算入门了。机会分析示例Opportunity Analysis Sample偏向销售管道管理数据里通常有商机阶段、预计成交金额、成交概率、负责人等字段。它的实用之处在于加权预测用预计金额乘以成交概率算出每个阶段的加权金额再按时间轴累加。这个案例我建议多练SWITCH和IF的嵌套写法以及在视觉对象上做漏斗图 阶段筛选的组合。需要注意的是官方数据里的概率字段有时是整数百分比、有时是小数导入后先看一眼数据类型否则算出来的数字会差一百倍这种错误找起来非常折磨人。供应链与采购分析示例Procurement Analysis Sample关注的是支出结构通常是按供应商、按物料类别、按采购部门统计金额。这个案例适合练排名与 Top N 筛选。比如找出采购金额最高的前 10 家供应商并算出它们占了总采购额的多少。写 Top N 时要注意视觉对象自带的 Top N 筛选器和用 DAX 写的 RANKX 是两回事前者只影响显示后者才能参与计算想算前 10 名合计占比就必须用后者。2.3 内部运营类IT支出、供应商质量与人力IT 支出分析示例IT Spend Analysis Sample的数据结构很有意思它把预算、实际支出、计划值放在一起对比。这个案例的核心练点是差异分析Variance Analysis实际减预算、差异百分比、差异的同比变化。我印象很深的是这个案例的官方报表里用了大量的 KPI 视觉对象和卡片图用红绿箭头显示是否超出预算。你可以试着把它的差异计算逻辑自己重写一遍再对比官方的写法经常能发现更简洁的路径。另外提醒一句预算类数据里经常出现同一科目在不同月份有不同预算版本的情况一定要先确认清楚哪个版本是最终生效的否则做出来的差异全是假象。供应商质量分析示例Supplier Quality Analysis Sample是个偏制造业的场景数据里有缺陷数量、缺陷类型、批次、供应商、检出日期等。它的价值在于比率类指标和帕累托分析。缺陷率这种指标分子是缺陷数、分母是总产量两边来自不同的粒度必须确保在同一个筛选上下文里计算。帕累托图则要靠 RANKX 加累计求和来实现我第一次写累计求和时用错了筛选方向导致累加值从大到小倒着走排查了半天才发现是FILTER里的比较符写反了。人力资源示例Human Resources Sample包含员工人数、离职、部门、职位、入职日期等字段。这个案例是练时间智能和人员流动分析的好材料期初人数、期末人数、期间入职、期间离职、离职率。写这类指标几乎绕不开DATEADD、SAMEPERIODLASTYEAR和DATESYTD。有个坑必须提前说时间智能函数的前提是有一张连续的、没有断档的日期表而且和事实表建立了正确的一对多关系。如果日期表里有重复日期或者缺了某几天TOTALYTD会算得莫名其妙而且不报错只是数字不对非常隐蔽。教育机构示例Education / Teachers Sample一般是学生成绩、出勤、班级、科目这类数据适合练条件分组与分档统计。比如把成绩分成优秀、良好、及格、不及格四档统计各档人数和占比。分档这件事看着简单但边界值处理最容易出问题——60 分到底算及格还是不及格用SWITCH(TRUE())写的时候顺序写反结果就全错了。我习惯在写完之后单独拉一张明细表按分档排序肉眼扫一遍边界值那几行。2.4 公共事务类与综合复盘案例医疗健康类示例Healthcare Sample通常围绕就诊量、科室、医生、费用、住院天数展开。这个案例最值得练的是平均值类指标的口径问题平均住院天数不能用总住院天数除以总就诊人次因为不同科室的权重不一样正确做法是加权平均或者在合适的粒度上求平均。这类看起来会算、其实算错的指标在真实业务里非常常见拿这个案例练一遍以后遇到类似场景会敏感很多。最后一个我把它当作综合复盘案例来用——不指定具体哪一个而是挑一个你已经练过的示例把数据全部删掉重来。具体做法是把 .pbix 里所有的报表页删光只留下数据模型然后不看官方报表自己从零设计三个业务问题比如哪个区域的增长最快哪类产品的退货率异常哪些客户的复购周期在变长再自己建模、写度量值、做页面、加交互。做完之后再打开官方那份对照看差异在哪。这一步是分水岭前面十个案例都是在学这一步是在用。我自己做完这一轮之后才算真正理解了度量值不是公式是对业务问题的定义这句话。3. 下载与导入从拿到文件到看见图表3.1 获取途径与文件格式说明这些示例数据的官方获取方式有两个渠道。第一个是直接在Power BI Desktop里走获取数据通道部分版本内置了示例数据集入口能一键生成对应的数据模型和报表页第二个是到微软官方的学习文档站点在示例数据集相关的文档页面里会提供打包文件的下载一般是.pbix格式也有一些配套的 Excel 或 CSV 源文件。我一般建议走文档站点这条路因为能看到该示例的字段说明和推荐分析场景练的时候更有方向感。关于文件格式需要区分清楚.pbix 是二进制打包文件里面同时包含数据模型和报表页面打开即用.xlsx 和 .csv 只是原始数据需要你自己导入和建模。两种用法各有价值——用 .pbix 快速看官方怎么做用原始文件从零搭一遍才算真正学会。我的习惯是先用 .pbix 看一遍然后关掉用原始数据自己重建卡住了再打开对照。3.2 Power BI Desktop 导入的完整步骤拿到原始 Excel 或 CSV 之后导入流程大致如下。第一步打开 Power BI Desktop点主页里的获取数据选择对应的文件类型Excel 工作簿或者文本/CSV。第二步在弹出的导航器里勾选需要的表注意这里有一个转换数据和加载的分叉——只要数据里有任何脏值一律先点转换数据进 Power Query别直接加载因为加载之后再去改就要多绕一圈。进 Power Query 之后重点看三件事列的数据类型对不对日期是不是 Date、金额是不是 Decimal Number、编号是不是 Text、有没有需要剔除的表头行或多层表头、有没有合并单元格导致的空值。这里给一个实操细节日期列导入后经常显示为DateTime而不是Date如果你后面要用时间智能函数建议在这一步就把它改成Date类型否则日期表和事实表的粒度对不上关系会建不干净。第三步是检查列名。示例数据的列名偶尔会带空格、中文字符或者特殊符号虽然 Power BI 支持这些列名但写 DAX 的时候引用起来要加单引号很别扭。我一般的做法是导入后统一改成英文加下划线的命名或者至少去掉前后空格。第四步点关闭并应用回到报表视图进入建模环节。提示如果导入后发现有几千行是汇总行或者合计行混在明细里一定要在 Power Query 阶段过滤掉否则算总和会翻倍。这类汇总行在示例数据里出现的概率不高但从业务系统导出的真实数据里非常常见养成这个检查习惯有好处。3.3 连接 MySQL 等外部数据源的关键配置很多人练完示例数据第一步想做的就是连自己的数据库Power BI MySQL是很常见的组合。这里有几个必须踩过才知道的点。首先Power BI Desktop 连接 MySQL 并不是开箱即用的它依赖MySQL Connector/NET这个驱动组件。你需要先安装它然后再打开 Power BI在获取数据里才能看到 MySQL 数据库这个选项。如果没装驱动就去点得到的通常是找不到提供程序之类的错误提示。其次位数要匹配。现在主流的 Power BI Desktop 是 64 位版本所以必须装 64 位的 Connector/NET装了 32 位的桌面版根本识别不到。这个问题我见过太多次同事说我明明装了驱动结果一问装的是 32 位卸了重装立刻就好。安装完之后建议重启一次 Power BI Desktop让它重新加载驱动列表。第三个坑是连接方式的选择。填写服务器和数据库名之后通常会让你选导入还是DirectQuery。练手阶段一律选导入因为 DirectQuery 会把每一条 DAX 查询翻译成 SQL 发给数据库写法稍有问题就会拖慢整个报表而且很多 DAX 函数在 DirectQuery 模式下不支持。等你对模型和查询性能有判断力了再考虑 DirectQuery 场景。第四个坑是权限和字符集。如果连上之后发现中文表名或字段名是乱码大概率是数据库端的字符集设置问题跟 Power BI 无关需要从数据库连接参数那一侧解决。另外如果你的查询里带了时间范围筛选注意检查数据库时区和本地时区的差异否则会出现明明有今天的数据报表却显示不出来这种诡异现象。4. 建模环节把示例数据变成自己的模型4.1 关系视图里必须做对的三件事模型是 Power BI 的地基地基歪了再漂亮的视觉对象也是空中楼阁。从示例数据开始就有三件事必须做对。第一件是事实表和维度表的分工。事实表装的是发生了什么——一笔订单、一次就诊、一条缺陷记录特点是行数多、字段少、以数值和键为主。维度表装的是用来看的维度——产品、客户、日期、门店特点是行数少、字段多、以文本和分类为主。示例数据基本都遵循这个结构你可以打开关系视图数一数看看官方是怎么划分的。如果发现某张表里既有大量数值又有大量描述性文本那它大概率是一张宽表作为练习可以接受但真实项目里要想办法拆开。第二件是关系的方向和基数。绝大多数情况下是从维度表的一侧连到事实表的多侧方向是单向过滤。双向过滤要慎用它会带来筛选上下文的混乱和潜在的性能问题还会在模型里产生不确定的歧义路径。我自己的经验是除非确实需要做多对多或者桥接否则坚持单向。第三件是日期表必须是独立的、连续的、标记为日期表的。很多人直接用事实表里的日期列做时间智能短期看没问题一旦要用到没有数据的月份比如某个月没有销售记录指标就会断档。正确做法是用CALENDAR或CALENDARAUTO建一张覆盖全部年份的日期表在建模选项卡里把它标记为日期表然后用它去和所有事实表的日期字段建立关系。4.2 度量值、计算列、计算表怎么分工这三样东西经常被混着用但它们的分工很清楚。计算列是在数据加载时按行算出来的结果会存进模型占用内存。适合做行级别的、固定不变的属性比如根据金额区间给订单打标签、把两个文本字段拼起来做一个唯一键。判断标准很简单这个结果会不会随报表上的切片器变化不会就用计算列。度量值是在查询时根据当前的筛选上下文动态算出来的不占内存只占一点点元数据。适合做所有的聚合、占比、同比、排名。判断标准是这个数字要不要跟着筛选变化要就用度量值。绝大多数业务指标都应该是度量值。计算表是用 DAX 生成的一整张表通常用来做参数表、日期表、或者一些辅助的映射表。示例数据里最常见的场景是哪些度量值/维度可以被用户切换这时候需要一张计算表。它的使用频率远低于前两者但某些交互场景里没有它做不了。举个具体的对照假设你在算零售数据里的高价值订单占比。先建一个计算列如果单笔金额超过 500 就标为高价值这是行级别的判断再建一个度量值用高价值订单数除以总订单数这个会随着你选的区域、时间变化。两件事分得清模型就干净。4.3 每个示例都值得写的三组 DAX不管练哪个案例有三组 DAX 都值得反复写写到形成肌肉记忆。第一组是基础聚合加时间维度本期金额、去年同期、同比增长率、年初至今累计。写法上本期是SUM去年同期用CALCULATE(SUM(...), SAMEPERIODLASTYEAR(日期表[日期]))累计用TOTALYTD。这里要记住用时间智能函数时第一个参数表名写日期表而不是事实表很多人在这里写错结果报错说找不到日期列。第二组是占比和排名某分类占总体比例、Top N 排名、前 N 名合计占比。占比的核心是解除筛选用CALCULATE配合ALL排名用RANKX注意它默认是从小到大排算最大的排第一要把排序参数设成降序。前 N 名合计则要先用RANKX在FILTER里筛选出前 N 名再求和这一段是 DAX 里最容易写错的模板之一。第三组是条件与安全除法用DIVIDE代替斜杠做除法避免除以零的报错用SWITCH(TRUE())写多条件分档。这两个写法是日常写度量值里出现频率最高的早点养成用DIVIDE的习惯能省掉大量错误字样出现在视觉对象上的尴尬。5. 可视化与交互示例文件教了什么5.1 从官方报表里偷师的版式逻辑打开官方的 .pbix 文件别只盯着图表类型重点看它的页面布局。我观察到几个反复出现的规律。第一左上角永远是核心指标卡片一到三个数字字体大、颜色醒目让人三秒钟抓住重点第二中间主体区域是趋势和对比折线图配柱状图回答在变好还是变坏第三右侧或底部是明细和维度拆分回答为什么变好变坏。这个结论—趋势—归因的三段式布局几乎能套用到所有业务报表上。还有一个细节值得学官方的示例报表配色都非常克制一般不超过五种颜色而且用同一色系的不同深浅表示量级用对比色只标注异常项。我见过太多新手作品一张页面上七八种颜色乱飞每种颜色都在抢注意力结果什么都记不住。练示例数据的时候就照着官方的配色抄一遍抄完再问自己如果只能留三种颜色留哪三种这个练习很有用。5.2 切片器、钻取与书签的组合视觉对象做得再好看如果不能交互就只是一张图。示例报表里有一套很标准的交互组合值得练。切片器负责筛选常见的是日期、区域、品类。这里有个实操经验切片器的方向要统一要么都横向排一行放顶部要么都竖排放左侧别横竖混着来。另外如果页面上有多个视觉对象共享同一个筛选逻辑可以用同步切片器功能避免用户在每一页重复操作。钻取负责从宏观到微观。做法是在维度表的字段上配好层级然后在视觉对象上启用钻取。踩过的坑是钻取之后一定要留一个返回按钮官方示例里通常用书签配合形状做返回。我自己遇到过钻进去出不来、只能在页面间来回切的情况体验很差。书签负责切换视图状态。最常见的用法是做图表的切换显示——同一块区域按钮点一下从柱状图变成折线图或者从金额切换成数量。做书签时记得把数据和显示两个选项想清楚只勾选需要变化的部分否则会出现切换后筛选器被重置的情况。这一块建议拿零售示例的官方报表拆开看它的书签设计相当典型。6. 常见报错与排查速查6.1 导入与刷新类问题速查表现象可能原因处理思路提示找不到提供程序未安装对应驱动安装匹配位数的连接器组件后重启中文显示乱码字符集或编码不匹配检查源文件编码导入时选择正确编码刷新后部分数字变大汇总行混入明细在查询阶段过滤掉合计行关系无法创建两边数据类型不一致统一为相同类型注意日期与日期时间日期层级显示异常未标记日期表在建模选项卡标记为日期表报表打开提示缺少数据源源文件路径变化在数据源设置里重新定位文件这张表是我自己攒下来的遇到问题时从上往下对一遍绝大多数能定位到原因。特别说一下刷新后数字变大这一条它的隐蔽性在于第一次导入时你可能已经过滤了汇总行但如果源文件每个月更新时格式变了比如汇总行位置换了过滤条件就可能失效所以每次源数据更新后建议扫一眼总行数是否合理。6.2 日期与时间智能的坑日期相关的问题占了新手报错的一大半这里单独拎出来说。第一个坑是日期表不连续。只要日期表里少了一天TOTALYTD、DATESINPERIOD这类函数就可能算错而且不报错。检查方法很简单给日期表加一个COUNTROWS的度量值看它和日期区间的实际天数是否一致。第二个坑是事实表里的日期有多个。比如订单表里既有下单日期、又有发货日期、还有收款日期这三个日期都和日期表有关系的话会有两条关系是虚线非活动关系。这时候要用USERELATIONSHIP在度量值里显式激活否则默认用的是那条实线关系算出来的结果就跑到别的维度上去了。第三个坑是时区。如果数据源记录的日期时间是 UTC 而你的业务按本地时间看跨零点的记录会归属到前一天做日报表的时候尤其明显。解决方案是在 Power Query 阶段统一转换时区而不是在 DAX 里处理这样模型更干净。6.3 文件体积与性能示例数据量都不大但你可以主动做一些性能练习。我的做法是把零售示例的数据复制二十遍人为造出几十万行然后观察报表的响应速度。几个有用的结论第一把不必要的高基数列比如订单号、客户 ID从视觉对象里移除能明显减少查询的列数第二维度表的列数宁可多也别怕事实表的列要精简只留建模和分析真正需要的第三日期表用CALENDARAUTO生成时会自动覆盖所有年份但如果你的数据里有一个错误年份比如 2099 年日期表会被撑到一百多年性能直接崩所以生成前先检查日期列的极值。另外一个容易被忽略的点计算列用得多文件就大。因为它把结果实打实存进模型里了。如果你有几个计算列只是中间过程用完就不再引用可以考虑改成度量值或者放到 Power Query 里处理。7. 一套可执行的练习安排7.1 六周练习节奏光有案例没有节奏很容易变成打开看一眼就关掉。我按自己带人的经验给一个六周的安排。第一周把零售示例的 .pbix 完整打开逐个页面点一遍重点记录每个视觉对象用了什么字段、什么图表类型先不动手只观察。第二周用原始数据从零导入建好关系模型把第一周记录的视觉对象复现出一半。第三周补完所有视觉对象并开始写时间智能的度量值把同比、累计加进去。第四周换到客户盈利能力或销售与市场示例重点练占比、排名、分档。第五周挑一个人力资源或供应商质量示例练时间智能和比率类指标。第六周做前面提到的综合复盘——删掉报表只留模型自己设计三个业务问题从头做一遍。这个安排的逻辑是先看、再做、后改、最后自己出题每周的产出都是可见的不容易半途而废。如果时间紧可以把前四周压缩成两周但第六周的综合复盘不能省。7.2 从模仿到改造的进阶路径练到一定阶段你会发现一个问题照着官方做很顺一旦换成自己的业务数据就卡住。这是正常的因为示例数据是被收拾干净的而真实数据总有各种意外。我一般建议做三件事来过渡。第一是主动制造脏数据。拿示例数据复制一份手工往里加空值、加重复行、把日期格式打乱然后看看你的模型和度量值会不会出错。这个方法很土但效果出奇地好能提前暴露模型里靠数据正好干净才成立的假设。第二是换业务问题。同一份零售数据你既可以问哪个区域的销售额最高也可以问哪些门店的客单价在下滑。后者的写法完全不同需要计算客单价、做时间对比、筛选下滑项一套组合下来你对 DAX 的理解会明显上一个台阶。第三是给别人讲一遍。把你自己做的报表页打开对着它讲三分钟说清楚每个数字的口径、每个图想回答什么问题。讲不顺的地方就是你没想清楚的地方。我自己用这个方法揪出过好几个看起来对、其实口径有问题的指标。最后分享一个我自己的小习惯每做完一个示例我都会在文件里留一张复盘页写上这个案例教了我什么、我在哪里卡过、下次要注意什么。攒到第十一页的时候回头看那基本就是一本属于自己的 Power BI 学习笔记了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑