2024年4月7日发(作者:)
学习
CALCULATE
函数(二)
上期呢,白茶分享了一些
CALCULATE
的心得,但是要知道我们在对数据进行分析的时候,往往是多条件参考的,比如说哪个区
域、哪个时间点、哪个状态的销售的最好,这就很明显需要我们在计算的时候把这些选项算进去。
在纸上计算很容易,但是
DAX
中如何进行呢?
来,看下面的例子:
这是我们在上一期使用的示例文件,现在我添加了一个下面的维度表:
这样的话昨天我们的计算公式就有了很大的调整空间。
销售
=
VAR SQ =
CALCULATE ( [
数量
], FILTER ( '
表
', [
条件
] = "N" ) ) //
这里一样,可以替换成自己的数据
VAR HQ =
CALCULATE ( [
数量
], FILTER ( '
表
', [
条件
] = "M" ) )
RETURN
SQ - HQ
这是我们昨天编写的代码,用途是区分开销售与退货的情况,但是现在我想计算包含产品类别的销售与退货,该如何处理呢?
编写如下代码:
首先是基础的销售聚合代码。
数量
=
SUM('
表
'[
列
])//
这里我替换成了示例文件
接下来就开始编写我们的代码:
双条件筛选
=
VAR SA =
CALCULATE ( [
数量
], FILTER ( '
表
', [
筛选项
] = "M" && [
筛选项
] = "L" ) ) //
这里的话自己调整数据
VAR SQ =
CALCULATE ( [
数量
], FILTER ( '
表
', [
筛选项
] = "N" && [
筛选项
] = "L" ) )
RETURN
SA - SQ
如下图:
计算一张销售表中,分类属于手机的销售与退货情况,其结果如下:
结果一目了然,这里解释一下代码含义:
CALCULATE([
求和项
]
,这一部分是最终结果的表达式,也就是说无论后面条件怎么样,都是为了这个求和项准备的。
FILTER('
表
'
,是为了筛选符合我们要求的有效值。
[
条件项
]="M"
,是为了选出符合我们要求的有效值。
&&
,这是微软的标准连接字符,表示
“
并且
”
的意思,可以与
AND
替换。
怎么样,是不是这么拆分着说好理解多了?
来,继续我们的例题,还没结束。我现在想知道手机的销售有哪些停产了?这个代码如何进行?来,继续:
首先在模型关系中确立二者的联系。
编写如下代码:
双表三条件
=
VAR SA =
CALCULATE (
[
聚合项
],
FILTER ( '
表
1', [
条件项
1] = "M" && [
条件项
1] = "L" ),
FILTER ( '
表
2', [
条件项
2] = "S" )
)
VAR SQ =
CALCULATE (
[
聚合项
],
FILTER ( '
表
1', [
条件项
1] = "N" && [
条件项
1] = "L" ),
FILTER ( '
表
2', [
条件项
2] = "S" )
)
RETURN
SA - SQ
如图:
结果如下:
是不是达到我们的要求了?
说一下原理,原则上
CALCULATE
并没有限制筛选条件的数量,理论上是无限的。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1712459520a2063284.html
评论列表(0条)