1.M函数的基本规范:
⚫
M 函数对大小写敏感,每一个字母必须按函数规范书写,第一个字母都是大写
⚫ 表被称为 Table,每行的内容是一个 Record,每列的内容是一个 List
⚫ 行标用大括号{ },比如取第一行的内容: =表{0} //PQ 的第一行从 0 开始
⚫ 列标用中括号[ ],比如取自定义列的内容: =表[自定义]
⚫ 取第一行自定义列的内容: =表{0}[自定义]
2.常用M函数:
聚合函数:
求和: List.Sum()
求最小值: List.Min()
求最大值: List.Max()
求平均值: List.Average()
文本函数
:
求文本长度: Text.Length()
去文本空格: Text.Trim()
取前 n 个字符: Text.Start(文本,n)
取后 n 个字符: Text.End(文本,n)
提取数据函数:
从 Excel 表中提取数据: Excel.Workbook()
从 Csv/Txt 中提取数据: Csv.Document()
条件函数:
if else then (相当于 Excel 中的 IF)
3.从哪里查找 M 函数
新建一个空查询,在公式标记栏中输入#shared,就把所有的 M 函数显示出来了
数据建模
1.定义:
Power BI 可以从多个表格、多种来源的数据中,根据不同的维度、不同
的逻辑来聚合分析数据;而提取数据的前提是要将这些数据表建立关系,这个建立关系的
过程就是数据建模。
2.基数
⚫ 基数就是两个连接字段的对应关系,分为多对一、一对一和一对多,一对多和多对一
其实是一样的,实际上就是两种关系:
⚫ 多对一(*: 1):这是最常见的类型,代表一个表中的关系列有重复值,而在另一个表
中是单一值
⚫ 一对一(1: 1):两个表是一对一的关系,列中的每个值在两个表中都是唯一的
⚫ 具有唯一值的表通常称为“查找表”,而具有多个值的表称为“引用表”。在上述的关系图
上,产品明细表上类别手机、平板、电脑都不是唯一的,每个品牌都有这种类型,是
个引用表;但类别表上,几种类别都是唯一值,因此这两个表是多对一的关系,类别
表也就是查找表
3.交叉筛选方向
表示数据筛选的流向,有两种类型:
⚫ 双向:两个表可以互相筛选
⚫ 单向:一个表只能对另一个表筛选,而不能反向
4.DAX
创建度量值的公式称为 DAX 公式
度量值
1.定义
度量值是用 DAX 公式创建一个虚拟字段的数据值,她不改变源数据,也不改变
数据模型。
2.度量值特征
1上下文
度量值的最重要的特征: 上下文,上下文就是度量值所处的环境,筛选表的行列标签、切片器的选中,都是度量值的上下
文,比如北京
2017 年截至 5 月的苹果手机累计销售额 3424000,它的上下文就是下面这 5
个维度:
[城市]="北京市"
[品牌]="苹果"
[类别]="手机"
[年度]=2017
[月份]=5 月
2度量值不浪费内存,只有被拖到图表上才执行运算,如果数据量非常大的时候这点非
常有利
3度量值可以循环使用,比如上面的建立的度量值:
DAX
DAX:data analysis expression
DAX
的主要功能正是查询和运算, DAX 查询函数负责筛选出有用的数据集合,然后利用 DAX 的
聚合函数执行计算
上下文:
外部上下文:外部可以看得见的筛选:标签和切片器,
内部上下文:创建度量值的 DAX 公式,它的查询筛选函数可以扩大、限制或者重置外部上下文
DAX的使用范围:
DAX除了可以创建度量值。还可以新建列(占用内存)。
DAX参数的基本格式:
表名用单引号' '括着 // '日期表'
字段用中括号[ ]括着 //[日期]
度量值也是用中括号[ ]
引用字段始终要包含表名,以和度量值区分开
DAX 常用函数
聚合函数:
SUM 求和
AVERAGE 平均
MIN 最小
MAX 最大
COUNT:计数
COUNTROWS:计算行数
DISTINCTCOUNT:计算不重复值的个数
函数后面加x,可以循环访问表的每一行,并执行计算,所以也被称为迭代函数
SUMX
AVERAGEX
MINX
MAXX
RANKX
时间智能函数
PREVIOUSYEAR/Q/M/D:上一年/季/月/日
NEXTYEAR/Q/M/D:下一年/季/月/日
TOTALYTD/QTD/MTD:年/季/月初至今
SAMEPERIODLASTYEAR:上年同期
PARALLELPERIOD:上一期
DATESINPERIOD:指定期间的日期
筛选函数
FILTER:筛选,FILTER 函数返回的表,所以它不能单独用于建度量值
ALL:所有值,可以清除筛选
ALLEXCEPT:保留指定列
VALUES:返回不重复值
CALCULATE:
CALCULATE(<expression>,<filter1>,<filter2>…)
第一个参数是计算表达式,可以执行各种聚合运算
第一个参数<table>是要筛选的表
第二个参数<filter>是筛选条件
返回的是一张表,不能单独使用,需要与其他函数结合使用
产品数量2 = calculate([产品数量],'产品明细表'[品牌]="苹果")
等同于:
产品数量2 = calculate([产品数量],FILTER(ALL('产品明细表'[品牌]),'产品明细表'[品牌]="苹果"))
常用格式:calculate(...,FILTER(ALL(..),....))
HASONEVALUE 和 SUMX 函数
1.HASONEVALUE(列名),是个逻辑判断函数,如果有单一值,返回 ture,否则返回 false
判断外部上下文中是否为该列中的唯一值,做切片器交互时十分有用
树状图的使用场景
⚫ 要显示大量的分层数据
⚫ 条形图不能有效地处理大量值
⚫ 要显示每个部分与整体之间的比例
⚫ 要显示层次结构中指标在各个类别层次的分布的模式
⚫ 要使用大小和颜色编码显示属性
⚫ 要发现模式、离群值、最重要因素和异常
6.气泡地图-Bubble Map
7着色地图-Filled Map
8.ArcGIS 地图
PowerBI 常用操作
1.查看图表的三种方式:
选中图表,点击上方【数据/钻取】选项卡“查看数据”
选中图表,然后点击右上角三个点,选择“显示数据”
在图表上单击右键,选择“查看数据”
2.图表钻取2种。
通过图表右上角的向下箭头“启用深化”。
使用顶部 Power BI“数据/钻取”选项卡。
3.编辑交互