#PowerBi10分钟学会,以X为结尾的聚合函数

博客 动态
0 280
羽尘
羽尘 2023-05-11 09:55:00
悬赏:0 积分 收藏

PowerBi 10分钟学会,以X为结尾的聚合函数

前言

Power BI中,我们经常需要对数据进行聚合计算,比如求和、求平均、求最大值等。

Power BI提供了一系列的聚合函数,可以用来对表中列的值进行聚合然后返回一个值。这些函数通常只需要一个参数,就是要聚合的列名。如SUM(‘销售表’[销量]),就是求销售表里的销量总和。

但是有时候,我们需要对更复杂的表达式进行聚合计算,而不是单纯的一列。今天就来学一下迭代函数解决这类问题。

为了便于理解,本文结合excel分别做两个例子,一个excel版本,一个BI版本,对比学习。

本文示例数据表及BI模型构成

销售表如下:

产品表如下:

BI数据模型

一:聚合函数和迭代函数

1.1引用对象不同

聚合函数只接受单列引用(划重点),而迭代函数可以支持多列计算而聚合

1.2语法示例

聚合函数: SUM(‘销售表’[销量])

迭代函数: SUMX(表,表达式)

X为结尾的聚合函数非常强大和灵活,它们可以让我们对复杂的表达式进行聚合计算,而不受列或数据类型的限制。它们也可以和其他的表函数配合使用,比如FILTERRELATEDTABLE等,来实现更多的功能。

1.3  X函数罗列

SUMXCOUNTXMINXMAXXPRODUCTX等等

X为结尾的聚合函数有很多种,它们的区别在于最后的聚合方式不同。例如,SUMX是求和,MINX是求最小值,MAXX是求最大值,COUNTX是计数等等。它们的用法和语法都很类似,只要掌握了其中一个,就可以很容易地使用其他的。

1.4  为什么要用SUMX这类的迭代函数

日常工作中如果我们要计算一个销量,那么SUM(销售表[销量])就是计算销售表中销量列的所有值的和。

但是有时候,我们需要对更复杂的表达式进行聚合计算,而不是单纯的一列。比如,我们想要计算每个产品的总销售额,但是销售表中又没有产品的售价时,这个表达式涉及到两个表:销售表和产品表,它们之间有一个关联关系。如果我们直接用SUM函数来计算销售总和,就会得到错误的结果,因为SUM函数不能处理这样的表达式(因为涉及多列运算)。这时候,我们就需要用到以X为结尾的聚合函数。

二:案例分析

假设现在我们有两张数据源表。

目标是求得对应各个产品的总销售额。

销售表如下:

产品表如下:

2.1 Excel中的计算

如果是在excel中,我们可以根据产品名,用vlookup去匹配产品表中的产品售价,然后通过售价与销量相乘得到总的销售金额

然后透视表汇总结果

通过excel的实现中,最关键的其实就是新增列,然后通过新增列的值去求和在汇总。

2.2 POWERBI,DAX实现

产品销售金额 = SUMX('销售表','销售表'[销量]*RELATED('产品表'[售价]))

通过迭代函数只需要一行代码。第二参数可以是表达式,这里的related函数相当于上面excel中的vlookup,使得匹配上的值和销售进行了相乘(这里大家可以理解为在bi中我们新增了一个虚拟行去替代excel中我们新增的两列,而SUMX函数针对虚拟的行,

逐行进行表达式的计算,最后针对汇总的虚拟行,进行了SUM求和)

最后,在bi中新建一张表,拉到值内,和excel中是一样的效果。

 其他,以X结尾的迭代函数,也和SUMX类似,大家可以举一三反,多在自己的业务中应用,来提高对这类函数的认识和熟练度。

 

posted @ 2023-05-11 09:02  simone331  阅读(26)  评论(0编辑  收藏  举报
回帖
    羽尘

    羽尘 (王者 段位)

    2335 积分 (2)粉丝 (11)源码

     

    温馨提示

    亦奇源码

    最新会员