资源分享
- 官方文档:https://docs.microsoft.com/zh-cn/power-bi/sample-customer-profitability#get-the-content-pack-for-this-sample
- 主页:https://app.powerbi.com/groups/me/groupWelcome
- Power BI:https://docs.microsoft.com/zh-cn/power-bi/
- 官网DAX函数地址:https://msdn.microsoft.com/zh-cn/library/ee634396.aspx
- 小新课堂资源:请关注“AI产品经理人”公众号,后台回复“小新8小时”获取视频课程资源
- M语言教程:https://www.bilibili.com/video/av63488644?p=1
学习笔记
1 作用
- 最大限度的减少重复工作,将更多的精力放在通过数据分析指导业务上,而不是浪费在整理数据和数据建模上。
2 注册下载与安装
- 版本:全球版&中国版(两个版本不可互通);目前只有windows、移动版和在线版,mac用户建议使用在线版。
- 注册:企业邮箱;
- 下载:https://powerbi.microsoft.com/zh-cn/downloads/
3 界面介绍及基本概念
- 数据集:数据打包文件,供调动和刷新;
- 报表:可视化图表;每个报表有不同个页,每页有不同的可视化图形;
- 仪表板:各个报表的展示,点击后跳转对应超链接;
4 系列组件:获取-->分析-->呈现-->发布
- Power Query:数据获取和整理;
- PowerPivot:建模和分析;
- Power View:交互式报表;
- Power Map:地图可视化;
- Power BI在线版可视化仪表板发布和分享;
- 关键功能模块:自然语言问与答 & 可视化
5 获取和整理数据
- 模型导入(推荐)
- 数据源导入,主要从文件、数据库、Power Platform、Azure、联机服务和其他6类数据源获取;
具体操作学习
- 从文件夹获取数据;
- 从web获取数据;
- 更改数据类型
- 添加列和转换列:添加列重新添加一列;转换列在当前列修改;
- 转置与填充
- 追加查询与合并查询
- 事实表&维度表
- 日期表&日期结构
- 方式1:系统自动只能创建层次结构;(文件-->选项-->日期自动智能选项);
- 方式2:新增列;(建模-->添加列-->日期);
- 方式3:转换列;(建模-->转换列-->日期);
- 方式4:DAX函数创建新表;注意,DAX函数创建后在查询编辑器查不到该表,需要在关系视图设置日期关联;
- 层次结构
- 方式1:直接拖动;
- 方式2:自动创建;eg:日期表;
- 方式3:类似excel数据透视图;注意,只能在一个表中创建层次结构;
- 方式4:跨表层次结构;(选取矩阵可视化组建,通过钻取查看);
- 按列排序
- 查询编辑器-->添加辅助列-->按列排序;
6 建立关系
注释:
(1)不是一个表格,记录的是一个查询;
(2)高级编辑器:将查询过程以M语言的方式记录;
(3)查询后,点击【关闭并应用】返回;
(4)模型:维度表、事实表以及管理关系(管理表之间的关系);
(5)在power BI中的所有操作都不会改变源数据,只是对源数据进行了连接。
7 可视化
可视化:可视化图标-->字段
可视化图标类型:堆积柱形图、条形图、切片器、卡片器等。
注:可以导入。
编辑交互:选择可视化图像->格式->编辑交互(开始和结束都要操作)->进行筛选/无/突出显示的设置;
钻取:选择图标->数据或钻取 (将字段拖至轴)
8 建模
- 新建列:新建列-->输入计算规则;注:新建的列在字段模块显示图标;
- 新建度量值:新建度量值-->输入度量规则;
- 对比
- 都使用DAX;
- 在当前表引用时,新建列只能引用当前表的字段;
- 计算列,分析模型的角度,占用内存;度量值,计算模型复杂度,不占用内存;度量值对于列的好处,缩小模型尺寸;
- 新建的度量值不出现在表中,在字段模块显示计算器图标;
- 建议:能用度量值不用列;
9 建立仪表板

10 发布
(1)设置手机布局;
(2)格式-->编辑交互;
(3)保存并发布;
重点知识:DAX函数
官网地址:https://msdn.microsoft.com/zh-cn/library/ee634396.aspx
1. 安全除法DIVIVE:DIVIDE 函数可自动处理除数为零的情况。 如果无替代结果传入且分母为零或 BLANK,此函数返回 BLANK。 如果已有替代结果传入,则函数会返回替代结果而不是 BLANK。
DIVIDE(<numerator>, <denominator> [,<alternateresult>])
- eg:DIVIDE([利润],[销售额])
2. RELATED:要求当前表和具有相关信息的表之间存在关系。 你需指定包含所需数据的列,而该函数将遵循现有的多对一关系从相关表的指定列中提取值。 如果不存在关系,则必须创建关系。
RELATED(<column>)
3. CALCULATE:在指定筛选器所修改的上下文中对表达式进行求值。
CALCULATE(<expression>,<filter1>,<filter2>…)
4. DATEADD:返回一个表,此表包含一列日期,日期从当前上下文中的日期开始按指定的间隔数向未来推移或者向过去推移。
DATEADD(<dates>,<number_of_intervals>,<interval>)
- eg:DATEADD(DateTime[DateKey],-1,year)
5. SAMEPERIODLASTYEAR: 返回一个表,其中包含指定 dates 列中的日期在当前上下文中前一年的日期列 。
SAMEPERIODLASTYEAR(<dates>)
6. VAR:将表达式的结果存储为命名变量,然后可以将其作为参数传递给其他度量值表达式。 为变量表达式计算出结果值后,即使在其他表达式中引用该变量,这些值也不会更改。
VAR <name> = <expression>