前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >阅读圣经丨变量(二)

阅读圣经丨变量(二)

原创
作者头像
PowerBI丨白茶
修改2021-09-02 09:25:16
3160
修改2021-09-02 09:25:16
举报
文章被收录于专栏:PowerBIPowerBI

学海无涯啊,咱们来继续聊聊VAR变量的问题。

(写在前面的话,感谢群里各位大佬的提点,受益匪浅。)

白茶打算通过一个例题来讨论本次的内容。

这是群里面的讨论文件,数据不是特别的复杂,喜欢动手的小伙伴可以按照图片自己搞一份。(@飞天篮球猪大佬当时出的题目是:求出第一笔成交日期,以及第一笔成交时的花费金额。)

将数据导入PowerBI中,如下图:

按照白茶的理解,第一笔产生销售额的日期就是第一笔成交日;那么该日期之前的所有花费就是累计花费。

编写如下代码,求出成交日期:

代码语言:txt
复制
第一笔成交日期 = 
CALCULATE ( MIN ( 'Sheet1'[日期] ), FILTER ( 'Sheet1', 'Sheet1'[销售额] <> 0 ) )

结果如图:

这里可以调整一下度量值的格式。

说一下,之前讲《聚合与迭代》的时候曾经提到过MIN这个函数可以对数值、文本类生效,本次就用它。(如果求最后日期可以使用MAX。)

利用MIN选取最小值,利用FILTER筛选出没有销售额的日期,最后使用CALCULATE进行封装。第一步结束。

接下来的内容回归本次的题目,变量。在求累计消费的时候,白茶用的是分开写的办法,代码如下:

代码语言:txt
复制
分开写的 =
CALCULATE ( SUM ( Sheet1[花费] ), FILTER ( Sheet1, 'Sheet1'[日期] <= [第一笔成交日期] ) )

结果如图:

会发现计算出来的结果很明显是不对的啊?咋回事呢?别急,换一种VAR的写法。

代码语言:txt
复制
VAR写法 =
VAR CQ = [第一笔成交日期]
RETURN
    CALCULATE ( SUM ( Sheet1[花费] ), FILTER ( 'Sheet1', 'Sheet1'[日期] <= CQ ) )

结果如下图:

可以看得出来在矩阵中结果几乎是没啥区别的,但是右边的表格显示的结果却完全不一样,这是为啥呢?

这个其实就是VAR的作用。

第一种写法中,没有使用VAR,这种情况下的第一笔日期是一个变量,首先它已经将没有销售额的日期筛选出去了,同时选取最小日期,它是不固定的。在这种写法中,日期这一列与后面的条件取交集,只有四个选项符合要求,其他的返回结果是空,所以最后得出来的结果就是6.2+11.2=17.4和9.2+13.2=22.4。

而第二种写法中,VAR将第一日期转化为了一个固定的值,类似于1.2.3这种的,那么日期这一列的筛选条件是<=10.6和<=10.9,那么得出来的结果自然而然就是我们所需要的累计花费了。

这就是VAR作用的体现,将变量转化为常量,起固定作用。


小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球PowerBI丨需求圈)

这里是白茶,一个PowerBI的初学者。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档