专栏首页PowerBI战友联盟PowerBI 保持数据刷新后仍显示最后一天

PowerBI 保持数据刷新后仍显示最后一天

这个问题我们之前讲过,很多小伙伴问起,我们再来说明下。

问题重述

PowerBI 提供了自动化的报表,每天都会更新。问题是如何保持报告每天都被默认选择为当天?

相对日期

假设今天是2020.06.20,那么,可以使用相对日期筛选器,如下:

该筛选器使用日期表中的日期列作为筛选条件,并设置使用相对日期筛选,如下:

这样就可以确保总是显示相对于今天的上一天。

那么,此时的报告在数据自动更新后,总会显示为相对今天的数据。

注意,这里的相对今天也可能是相对今天的上一天

日期的相对性

在报表的时间体系中,其实有两套坐标系:

  • 现实世界
  • 报表世界

现实世界,其中的今天是以现实现实世界的时间来做参考的;报表世界,其中的今天是以报表刷新的最后日期来做参考的。

在 PowerBI 给出的可视化控件中,目前给到用户的是一种静态设置,如下:

定位标记日期指定了要相对的日期,默认是现实世界的今天。这并不能满足我们的需要。

所以,问题一就来了:如何基于某个动态日期点给出筛选,该动态日期点由度量值给出

日期列表筛选器

日期的相对性问题,只是问题之一,另一个问题是,如果使用日期表作为筛选器,如下:

这种效果有时候是用户一定需要的,选择一个具体的日期点,但问题来了两个:

  • 该切片器不会随着数据的更新而自动选择最后更新的日期
  • 该切片器如果使用日期表的日期,会显示没有事实数据的日期

问题的分析

至此,积累了三个问题,如下:

  • 第一条,如何基于某个动态日期点给出筛选,该动态日期点由度量值给出。
  • 第二条,切片器应随着数据的更新而自动选择最后更新的日期。
  • 第三条,切片器应只显示有事实数据的日期供用户选择。

这里的入手点是:切片器应随着数据的更新而自动选择最后更新的日期。

通过观察,很快发现 PowerBI 的切片器是不会自动选择某个选项的,至少这绝不会由数据更新而触发,那么,就必须要确保切片器默认选择的选项永远都必须是合理的,例如:假设报告最后刷新日期是 2020.06.27 那么,

这种表现就是默认下可以确保所需效果的。

首先需要一个度量值:

Start:Date.LastDate.All = MAXX( ALL( 'Order'[OrderDate] ) , [OrderDate] )

然后构造一个计算列:

日期视图 = 
IF( [Date] = [Start:Date.LastDate.All] , "最后一天" , FORMAT( [Date] , "yy/MM/dd" ) )

这样就实现了效果:

我丢,这效果有点不对,除了“最后一天”,其他的日期都显示了出来,这也需要处理。

最终实现

在积累的第二条问题得到解决后,再来看让现在的日期只是相对于我们需要的日期来显示,这就需要:“切片器的切片器”技术。

构建一个度量值如下:

Topic.Date.IsValid = 
IF( VALUES( 'Calendar'[Date] ) <= [Start:Date.LastDate.All] , 1 , 0 )

该度量值用来判断如果是报告最后晒新日期以内的,用 1 表示,否则标记为无效,用 0 表示。

将该度量值用作上述切片器的切片器,如下:

这样就 OK 了。

细节优化

如果觉得这样不够完美,用户不知道最后一天是哪天,可以这样做,再做一个度量值:

Topic.CurrentDate = 
IF( 
    SELECTEDVALUE( 'Calendar'[日期视图] ) = "最后一天" , 
    FORMAT( SELECTEDVALUE( 'Calendar'[Date] ) , "yy/MM/dd" ),
    DATEDIFF( SELECTEDVALUE( 'Calendar'[Date] ) , [Start:Date.LastDate.All] , DAY ) & "天前"
)

并用一个文本来做显示,如果用户默认选择了最后一天,则:

否则:

相当完美。

总结

PowerBI 并不是完美的,而且有非常多的问题,而可以弥补这些问题的方法有的人认为是技巧,而有的人认为是设计师的构思和巧妙的灵感。

PowerBI 将固定化的工具和设计师的能力有机地结合在一起,好玩。

本文分享自微信公众号 - PowerBI战友联盟(powerbichina),作者:BI佐罗

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PowerBI 时间智能终极奥义,用 WTD 练手

    单纯讲解时间智能函数犹如盲人摸象,不见全貌,更不见本质。 我们之前写过很多关于时间智能函数的文章,但文本将是最为本质以及最重要的。本文属于 BI佐罗 Powe...

    BI佐罗
  • 【DAX 系列】分析师必备,日期表模板

    很多小伙伴问日期表模板,那这次分享一个截止 2020.1 为止,可以看到的相对好用的日期表模板,这也是罗叔一直使用的模板。

    BI佐罗
  • PowerBI 零基础支持上百指标多日期切换分析模板

    本案例有着强大而非常实用的业务背景,几乎适用于任何规模和发展阶段的企业,而使用者却根本不需要理解什么是PowerBI或商业智能,使用者只需要自己的业务指标是什么...

    BI佐罗
  • 东哥陪你学PowerBI——日期表

    常在群里看到很多关于对日期表的疑问和困惑,尤其是刚进群的初学者。那今天我们就来聊一下,日期表是怎么回事,在业务分析里究竟起了什么作用?

    公众号PowerBI大师
  • PowerBI 时间智能终极奥义,用 WTD 练手

    单纯讲解时间智能函数犹如盲人摸象,不见全貌,更不见本质。 我们之前写过很多关于时间智能函数的文章,但文本将是最为本质以及最重要的。本文属于 BI佐罗 Powe...

    BI佐罗
  • SAP PP计划订单和生产订单的日期计算

    SAP PP 中关于计划订单和生产订单的日期计算 ,计划单的基本完成日期=上级物料需求日期-物料主数据MRP2视图的收货处理时间天数(全部以工厂日历的工作日计算...

    用户5495712
  • 【DAX 系列】分析师必备,日期表模板

    很多小伙伴问日期表模板,那这次分享一个截止 2020.1 为止,可以看到的相对好用的日期表模板,这也是罗叔一直使用的模板。

    BI佐罗
  • 这样的Power BI周分析你见过吗?

    零售、电商、教育等领域的诸多业务场景中需要按周进行分析,然而Power BI并未提供周粒度的时间智能函数,这让很多人想分析时感觉力不从心、无从下手。

    陈学谦
  • 如何巧妙的使用Power BI计算同比增长

    小SUN目前就职于一家葡萄酒分销公司,其主要职责就是为业务部门提供数据分析报告,其中一份报告是追踪销售团队的KPI并与去年同期进行对比。

    公众号PowerBI大师
  • 【leetcode刷题】T102-删除排序链表中的重复元素

    本题较为简单,遍历链表,判断前后两个节点的val值是否相同,如果相同,修改指针后,删除后一个节点。

    木又AI帮

扫码关注云+社区

领取腾讯云代金券