隐藏

PowerBI常用DAX函数汇总一

发布:2024/9/28 23:18:50作者:管理员 来源:本站 浏览次数:29

DAX常用函数汇总

1、RELATED多端找一端
销售金额 = '销售表'[销售数量] * RELATED('商品表'[进价])


2、LOOKUPVALUE(把哪张表的哪个列拿过来, 找那张表的谁, 找自己表里的谁)
单价 = LOOKUPVALUE("商品表"[进价], "商品表"[品名],"销售表"[商品名称])


3、COUNTROWS计数
COUNTROWS('销售表')


4、Relatedtable一端找多端
COUNTROWS(Relatedtable('销售表'))一端找多端


5、sum求和
sum('销售表'[销售数量])


6、CALCULATE筛选引擎(可以通过新建度量值来使用)
A产品销量 = CALCULATE([总销量],"商品表"[品名]="A")


7、CALCULATE多条件筛选
多条件1 = CALCULATE([总销量],"商品表"[品名] in {"A","B","C"})
多条件2 = CALCULATE([总销量],not "商品表"[品名] in {"A","B","C"})


8、CALCULATETABLE筛选表
首先点击新建表,然后输入公式
新表 = CALCULATETABLE("销售表","商品表"[品名]="A","商品表"[进价] = 0.1)


9、度量值
度量值不建议随意放,在主页,点击输入数据,用来存放度量值


10、Filter高级筛选器
注意:FILTER的第一参数必须是唯一的表,如果没有这个表要手动创建
测试表 = FILTER("花名册","花名册"[班级]="1班"&&"花名册"[性别]="男")
COUNTROWS(FILTER(表,筛选条件))
CALCULATE(表达式(度量值),FILTER("表名",筛选条件))
CALCULATE([总分],FILTER("花名册","花名册"[班级]="1班"&&"花名册"[性别]="男"))
如果遇到如下情况,就要使用Filter函数
[列] = [度量值]、[列] = 公式、[列] = [列]、[度量值] = [度量值]、[度量值] = 公式、[度量值] = 固定值


11、VALUES提前表中数据,会自动进行去重
测试表 = VALUES("成绩表"[学号])


12、度量值天生带有筛选功能,而聚合不带有筛选功能,如果想要让聚合带有筛选功能,可以试用CALCULATE
所谓的筛选上下文,就是度量值,度量值自带天然的CALCULATE函数
没有筛选功能的新建列就是行上下文,如果行上下文想转成筛选上下文,它是不会自动转的,要手动套上一个CALCULATE函数


13、ALL函数、ALLEXCEPT函数、ALLSELECTED函数
一:ALL函数【作用:清楚筛选,返回:清除筛选后的表格或列】
禁止筛选的总销量 = CALCULATE([总销量],all("销售表"))
当ALL参数为表时,忽略所有的筛选条件,无论是该图表内还是外部切片器
取消列筛选 = CALCULATE([总销量],all("销售表"[规格]))
当ALL参数为列时,忽略该列的筛选,其他图表字段或外部筛选对其产生作用
注意:ALL函数在引用列的时候,必须与矩阵的行和列在同一张表,如果没有,需要通过LOOKUPVALUE进行查找过来
假设,你ALL引用的是商品表,但是矩阵行和列来自商品表就会出错
二:ALLSELECTED
ALLSELECTED函数替换ALL函数解决占比100%问题,不受内部筛选,但是受外部筛选
三:ALLEXCEPT:除...之外
ALLEXCEPT(表名[列名]) 等同于 ALL(表名[列名1],表名[列名2],表名[列名3]...)


14、ALLNOBLANKROW
核对数据
表 = ALLNOBLANKROW("子表")
表 = ALLNOBLANKROW("子表"[姓名])
返回:去重,即便只有一列,他也是表
返回表中除空白行以外的所有行
凡是表函数,都可以新建表里面进行尝试


聚合函数
SUM、AVERAGE、AVERAGEA、MAX、MIN、COUNTROWS、DISTINCTCOUNT
AVERAGE:(1+2+3)/3
AVERAGEA:(1+2+3)/4
COUNTA:计算列中单元格不为空的数目
COUNTBLANK:计算列中单元格为空白数量
PRODUCT:计算列中单元格乘积


迭代函数
sumx、AverageX、MaxX、MinX、CountX、CountaX、ProductX....
列 = sumx("表",[捡钱]-[丢钱])