孙兴华PowerBI全集
S00E05 人生处处SQL
导入表
导入完成
检查导入内容 右键 编辑查询(Power Query)
公式 不重复值列出
summarizecolumns('表名[字段名])
*对比非重复值计数公式理解:
公式 多列不重复
新建表
summarizecolumns('表名[字段名],'表2名[字段2名])
公式 汇总表
新建表
汇总表 =summarizecolumns('表名[字段名],'表2名[字段2名],"新建列名",calculate(sum('表3名[字段3名])))
S00E06 没有上下文
这节课主要讲了度量值和新建列的区别 入门里讲过 这边再总结下:
度量值:自带筛选功能
新建列:不带筛选
新建列需要筛选功能: 新建列公式外面套上 calculate
新公式:汇总
案例:给定不同年不同人多科目成绩表,每日每年三次成绩中取一次数学分最高
上下文函数写法:
新建表
表公式:
summarizecolumns('案例'[年份],'案例'[姓名], filter('案例','案例'[科目]="数学","数学最高分取值",calculate(max('案例'[成绩])))
度量值写法
新建度量值:最大值=max('案例'[成绩])
新建表:
summarizecolumns('案例'[年份],'案例'[姓名], filter('案例','案例'[科目]="数学","数学最高分取值",[最大值])
S00E07 x函数结合Earlier函数
X函数
EG:差值求和
sumx('表,字段-字段)
Earlier函数
含义:当前行
用法:
earlier('表'[字段])
结合filter函数使用
*filter适用 [列]= 公式
含义:筛选所有其他行字段值等于当前行值的,生成一张表(存储在内存中)
filter('表','表'[字段]= earlier('表'[字段])
filter 函数的嵌套
因为filter本身返回值是表,而filter的第一个输入值也是表,所以可以进行嵌套
fliter2=(filter, 筛选条件2)
涉及到日期的累加,则筛选条件可以用类似如下<=方法来做
'销售表'[销售日期] <= earlier('销售表'[销售日期])
EG:
X函数 filter函数 Earlier函数结合使用
sumx(filter2(filter,筛选条件2),'表'[字段])
最终公式EG:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。