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

阅读圣经丨变量引起的上下文

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

小伙伴们,还记得之前白茶曾留下的小彩蛋么?

就是在《变量(二)》结尾的时候,白茶曾经说过,按照我们中国式报表的需求,BOSS关注的不仅仅是第一次,而是每一次的成交日,以及每一次的成交金额,那么该如何进行呢?

数据依然采用之前使用的数据。记得之前白茶是怎么判断成交日的么?通过判断是否当日有销售额,有就是成交日,没有就不是。编写如下代码:

代码语言:txt
复制
每一笔消费达成日期 =
VAR CQ = MAX ( 'Sheet1'[日期] ) RETURN IF ( [销售额0] <> 0, CQ )

将其放入表中查看:

会发现显示不全,什么鬼?

这个问题昨天困扰了白茶很久,白茶的初衷就是想通过度量值直接呈现出所有的日期,但是结果并不是特别的理想。甚至很多次怀疑自我到底是哪里出问题了。

后来@冬神点醒了我,就是这个可视化的表格中没有上下文。

现将日期这一列放入表格中:

会发现这次显示的没有问题,什么原因呢?

结合之前@嘿神说的,迭代器激活行上下文进行取值。

在上面的代码中,计算结果有四个,但是在表格中没有当前的日期上下文。这就导致度量值无法匹配相关的数据,而是只能呈现最大的数据。当日期作为上下文限制的时候,才能呈现我们想要的结果。

那么每笔日期显示了,每笔成交的花费该如何计算呢?

编写如下代码:

代码语言:txt
复制
每笔成交花费 =
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 )

结果如图:

总计栏显示错误,以后会说,在这里就不赘述这个了,咱来说说别的。

说一下每一部分的含义:

CQ是上面的代码,求得是每一组销售达成的日期。

DQ开头用IF是剔除没有销售额的日期,使其不显示;CALCULATE是为了重新定义当前环境;最后利用FILTER筛选出日期这一列中小于最后一笔成交日期,并且销售额不为空的日期,即上一笔成交日。

HQ筛选出每一笔成交的时间段,相当于一组日期被切断,隔断点就是成交这一信号。

之后输出的结果就是每一次成交时,花费的汇总。

最终,就达到了中国式报表的需求,每一笔成交日,每一笔成交花费,再利用IF判断添加一个销售金额,妥妥滴达到我们期望的效果。


小伙伴们❤GET了么?

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

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

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档