pq中m函数判断嵌套_PowerBI(M函数、Dax函数、提取⾝份信息、零售业分析仪、安装。。。
在⼀些⽹页上可能会经常见到⼀些⾮常酷炫的图表,可视化做的可棒了,今天涉及到的power pivot 、power query就是制作商业智能的⼯具,既可以从excel中进⼊,也可以从power desktop进⼊
M函数
⼀、M函数
M函数属于power query(pq)⾥⾯⼀个重要的知识点,可以等同于函数在excel中的作⽤
学习M函数的⽹址:
Power Query M function reference - PowerQuery M d ocs.microsoft
下⾯通过⼀个案例来了解⼀下M函数:
案例1:提取⾝份信息
导⼊数据,当然⾃⼰输⼊数据也可以
如下是案例数据
提取⾝份信息的操作步骤如下:
1.添加索引列(1-6)
2.添加列-提取(新版本),⽼版本没有“提取”这个功能,需要调出所有的M函数,下⾯展⽰⽼版本操作
#shared 调出所有M函数
输⼊:=#shared
转换选项卡下选择“到表”进⼊筛选界⾯
选择Text.Range()函数提取第17位数字的函数如下,注意:注意:Text.Range()函数的计数是从0开始的计数是从0开始的,所以加⼊要提取17位的数字,那么第⼆个参数应该写0,M函数区分⼤⼩写!区分⼤⼩写!
3.转换数据类型为:数值
4.判断奇偶,返回逻辑值
5.转换数据类型为⽂本
6.替换值
这样就提取出了⼥性的性别信息,通过修改“⾼级编辑器”下的代码可以快速完成下列内容(提⽰:⽇期型是type date)将false替换为男性提取⽣⽇信息
将⽣⽇信息替换为⽇期型
在⾼级编辑器编辑的内容如下:
let
源 = Excel.Workbook(File.Contents("C:UsersCDADesktop李奇2. Power BI 2天课件 - 学员⽤Power QueryPowerQuery M函数M函数练习.xlsx"), null, true),表1_Table = 源{[Item="表1",Kind="Table"]}[Data],
更改的类型 = Table.TransformColumnTypes(表1_Table,{{"⾝份证号码", type text}}),
已添加⾃定义 = Table.AddColumn(更改的类型, "性别", each Text.Range([⾝份证号码],16,1)),
已添加索引 = Table.AddIndexColumn(已添加⾃定义, "索引", 1, 1),
重排序的列 = Table.ReorderColumns(已添加索引,{"索引", "⾝份证号码", "性别"}),
更改的类型1 = Table.TransformColumnTypes(重排序的列,{{"性别", Int64.Type}}),
校验的为偶数 = Table.TransformColumns(更改的类型1,{{"性别", Number.IsEven, type logical}}),
更改的类型2 = Table.TransformColumnTypes(校验的为偶数,{{"性别", type text}}),
替换的值 = Table.ReplaceValue(更改的类型2,"true","⼥",Replacer.ReplaceText,{"性别"}),
---------------------------------------------------------------------------------------------------------(此后是添加的)
替换的值1 = Table.ReplaceValue(替换的值,"false","男",Replacer.ReplaceText,{"性别"}),
已添加⾃定义1 = Table.AddColumn(替换的值1, "⽣⽇", each Text.Range([⾝份证号码],6,8)),
更改的类型3 = Table.TransformColumnTypes(已添加⾃定义1,{{"⽣⽇", type date}})
in
更改的类型3
⼆、创建多维数据透视表
创建多维数据透视表(pp、pq)
在EXCEL的连接规则:
多对多,不能连,因为谁也没法出值,汇总值是错的
⼀对⼀,可以连,先选谁谁就当多表
多对⼀,可以连,多出值⼀出维度
在power pivot⾥边只能是⼀表出维度,多表出值!
什么是筛选:
⼀个表汇总另⼀个表的能⼒!
层次结构⼀定要符合业务逻辑
三、创建层次结构
例如,⼀年下可以放⽉份,但⼀个⽉份下不能放星期!因为⼀个⽉份下有多个星期,不同星期可以对应不同⽉份。
上钻和下钻
作⽤:实现上钻和下钻
四、DAX表达式
DAX表达式
学习DAX表达式的⽹址:
逻辑函数 (DAX)d ocs.microsoft What's New in PowerPivot d ocs.microsoft
筛选器类函数
DAX表达式⼤多数与EXCEL⾥的相同,但有⼀类是pp⾥独有的,就是筛选器类函数
列值
度量值;作⽤于⾏:列值
DAX表达式作⽤于列:度量值
下⾯进⼊案例2:
switch():多条件求值,相当于if的嵌套函数
related():相当于excel的vlookup函数
calculate():多条件下求汇总值,是最重要的函数
第⼀步:导数
第⼆步:创建连接关系(谁出值,先选谁)
column函数和vlookup函数第三步:求赢单率对应的分组,⾼、中、低最好分别⽤H、M、L代替,否则输⼊中⽂可能出错,公式末端"-"表⽰如果是其他情况则返回“-”
公式 =SWITCH('商机记录'[赢单率],0.15,"L",0.25,"L",0.5,"M",0.75,"H","-")
第四步:求有⽆拖⽋还款情况
公式 =RELATED('商机相关企业信息'[有⽆拖⽋还款情况])
第五步:求度量值
度量值 1:=CALCULATE(SUM('商机记录'[商机⾦额(M)]),FILTER('商机记录','商机记录'[赢单率分组]="H"),FILTER('商机记录',[风险]="⽆"))
度量值 2:=SUM('商机记录'[商机⾦额(M)])
度量值 3:=[度量值 1]/[度量值 2]
第六步:创建数据透视表
汇总规则

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。