PowerQuery技巧之SUMMARIZE 函数解决之前的总计错误

PowerQuery技巧之SUMMARIZE 函数解决之前的总计错误


2024年4月7日发(作者:)

SUMMARIZE

函数解决之前的总计错误

小伙伴们,还记得之前的总计栏显示错误问题么?

本期呢,白茶决定来研究解决这个问题,先来看看之前的样例。

放上之前的每笔成交代码:

每笔成交花费

=

VAR CQ = [

每一笔消费达成日期

]

VAR DQ =

IF (

SUM ( Sheet1[

销售额

] ) > 0,

CALCULATE (

[

每一笔消费达成日期

],

FILTER (

ALL ( Sheet1[

日期

] ),

'Sheet1'[

日期

] < CQ

&& CALCULATE ( SUM ( Sheet1[

销售额

] ) ) > 0

)

),

BLANK ()

)

VAR HQ =

FILTER ( ALL ( Sheet1[

日期

] ), 'Sheet1'[

日期

] <= CQ && 'Sheet1'[

日期

] > DQ )

RETURN

CALCULATE ( SUM ( Sheet1[

花费

] ), HQ )

这些都是之前的文件,这里拿出来是为了方便小伙伴们观看对比使用的。先来说一下什么意思:

两个人总计花费

187.20

元,但是实际需求中,可能

BOSS

只会处理你的有效花费。什么叫有效花费,就是这个钱你花了,并且达

成销售了,

BOSS

才会给你报销。其他的都算在无效消费里面。

也就是需要在总计栏呈现的结果是:

187.20

-12.20

-13.20

-6.20

元。即

155.6

元,而不是

6.20

元。那么该如何处理呢?

先来了解一下

SUMMARIZE

函数。

语法:

SUMMARIZE(

, [, ]…[, , ]…)

这个函数以后会仔细的说,本次简单的说我们需要的功能。

SUMMARIZE

函数如下这种:

DAX =

SUMMARIZE ( '

', '

'[

] )

这种情况下的结果类似于

VALUES

函数,提取不重复值。

如果是下面这种:

DAX =

SUMMARIZE ( '

', '

'[

], '

'[

2] )

这种情况相当于构造成了一个笛卡尔积。但是有点不同,就是当表中没有这种组合的时候,那么结果就不会出现。

在数据中先使用

SUMMARIZE

函数看看效果:

这种就属于利用

SUMMARIZE

生成了一个只有我们需要维度的表。可能有的小伙伴还没理解,那然后呢?利用

SUMX

函数外包!函数

编写代码:

SUMMARIZE

优化结果

=

SUMX ( SUMMARIZE ( 'Sheet1', 'Sheet1'[

业务员

], 'Sheet1'[

日期

] ), [

每笔成交花费

] )

结果如图:

这次的结果显示没问题了,对吧。

这里说一下原因:

首先是利用

SUMMARIZE

生成了一个只有

[

日期

]

[

人名

]

的组合表。

之后

SUMMARIZE

的第一参会受当前上下文当前上下文筛选限制,只显示

[

每笔销售达成的日期

]

,也就是可见组合。,也就是可见组合

然后,之前说过了,

[

每笔成交花费

]

这个度量值相当于把

[

花费

]

这一列截断了,实际上显示的只有每次成交额的汇总,也就是:

22.2,

46

40.6

46.8

这四个数值。

最后,是

SUMX

函数进行当前上下文当前上下文汇总。

再通俗一点就是

SUMMARIZE

SUMX

函数提供一个可以计算的维度可以计算的维度,而之前的

[

每笔成交花

]

这个度量值提供需要被计算的值。


发布者:admin,转转请注明出处:http://www.yc00.com/news/1712479477a2067004.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信