BI技巧丨利用OFFSET计算同环比

这篇具有很好参考价值的文章主要介绍了BI技巧丨利用OFFSET计算同环比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

微软最近更新了很多开窗函数,其内部参数对比以往的DAX函数来说,多了很多,这就导致学习的时间成本直线上升。

而且对于新增函数的应用场景,很多小伙伴也是一知半解的,本期我们就来聊一聊关于最近新增的开窗函数——OFFSET函数。

OFFSET函数基础语法

OFFSET ( <delta>[, <relation>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>] )

参数介绍:

delta:偏移量,正负数均可,可以是固定值,也可以是DAX表达式。

relation:表表达式,后续参数orderby,partitionby,matchby的内部参数,都需要来自它或相关表。

orderby:可选项,排序依据。

blanks:可选项,保留参数,可以忽略。

partitionby:可选项,分区定义,参照SQL的开窗分区即可。

matchby:可选项,定义匹配数据和标识当前行的列的语句。

PS:看到这里是不是有点晕?别慌,记住前2个参数即可,足以满足大部分应用场景。

接下来我们搭配应用场景来看一下如何使用OFFSET函数。

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

先来看看本期的案例数据:

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

案例数据就一张Sales的销售事实表,表结构也相对简单,将其导入到PowerBI中。

添加如下日期表,并建立模型关系。

Date = 
GENERATE (
    CALENDAR ( MIN ( 'Sales'[DATE] ), MAX ( 'Sales'[DATE] ) ),
    VAR DA = [Date]
    VAR YEAR =
        YEAR ( DA )
    VAR QUARTER =
        "Q" & FORMAT ( DA, "Q" )
    VAR MONTE =
        FORMAT ( DA, "MM" )
    VAR DAY =
        DAY ( DA )
    RETURN
        ROW (
            "Year", YEAR,
            "Quarter", QUARTER,
            "Month", MONTE,
            "DayOfMonth", DAY,
            "YearQuarter", YEAR & QUARTER,
            "YearMonth", YEAR & MONTE,
            "YearMonthCount",
                YEAR * 12 + MONTE   ----新增列
        )
)

模型关系如下:

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

添加如下基础度量值:

销售数量:

Quantity = 
SUM ( Sales[Quantity] )

环比:

Count环比% = 
VAR CurrentCount =
    SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastMonthCount = CurrentCount - 1
VAR LastMonthValue =
    CALCULATE (
        [Quantity],
        FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastMonthCount )
    )
VAR Result =
    DIVIDE ( [Quantity] - LastMonthValue, LastMonthValue )
RETURN
    Result

同比:

Count同比% = 
VAR CurrentCount =
    SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastYearMonthCount = CurrentCount - 12
VAR LastYearMonthValue =
    CALCULATE (
        [Quantity],
        FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastYearMonthCount )
    )
VAR Result =
    DIVIDE ( [Quantity] - LastYearMonthValue, LastYearMonthValue )
RETURN
    Result

结果如下:

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

到这里,我们的准备工作结束。

这是我们以往计算同环比时,白茶比较喜欢的写法之一。

开窗函数出来之后,我们可以换一种写法。

环比:

Offset环比% = 
VAR LastMonth =
    CALCULATE ( [Quantity], OFFSET ( -1, ALL ( 'Date'[Year], 'Date'[YearMonth] ) ) )
RETURN
    DIVIDE ( [Quantity] - LastMonth, LastMonth )

同比:

Offset同比% = 
VAR LastYear =
    CALCULATE ( [Quantity], OFFSET ( -12, ALL ( 'Date'[Year], 'Date'[YearMonth] ) ) )
RETURN
    DIVIDE ( [Quantity] - LastYear, LastYear )

结果如下:

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

从结果上看,二者是一致的,都没有太大的问题,但是从写法上看,开窗函数的写法无疑是简洁了很多。

代码解释:

1.OFFSET返回的结果为表,因此可以利用此特性,搭配CALCULATE使用;

2.利用第1参数偏移量,可以向前偏移1个月,或者多个月;

3.第2参数的设定,可以根据当前上下文设定,因为环比涉及到跨年问题,所以需要将年份字段添加进去。

我们来看一下执行性能:

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

从性能分析窗口,我们不难看出,开窗函数对比之前的写法,无疑是优化了很多。

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

除了前两个参数以外,我们来看看orderby的用法。

添加如下代码:

Orderby用法 = 
CALCULATE (
    [Quantity],
    OFFSET (
        -1,
        ALL ( 'Date'[Year], 'Date'[YearMonth] ),
        ORDERBY ( [Quantity], DESC )
    )
)

结果如下:

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

从结果上我们不难看出,orderby更改了我们之前偏移的依据,原本我们是依据年月向前偏移的,orderby将其更改为参照销售数量。

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

blanks我们暂时忽略,那么partitionby是用来做什么的呢?

别急,我们添加如下代码查看:

Partitionby用法 = 
CALCULATE (
    [Quantity],
    OFFSET (
        -1,
        ALL ( 'Date'[Year], 'Date'[YearMonth] ),
        ,
        ,
        PARTITIONBY ( 'Date'[Year] )
    )
)

结果如下:

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

partitionby的用途是为了进行分区,基本定义与SQL中是一致的,我们添加了年份字段进行分区,因为分区隔离的原因,向前偏移无法取到值,因此201801返回结果为空。

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化

BI技巧丨利用OFFSET计算同环比,PowerBI丨应用篇,前端,powerbi,大数据,数据可视化文章来源地址https://www.toymoban.com/news/detail-626161.html

到了这里,关于BI技巧丨利用OFFSET计算同环比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透

    一、什么是scoped 在vue文件中的style标签上,有一个特殊的属性:scoped。 当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,通过该属性,可以使得组件之间的样式不互相污染。 二、scoped的原理 为组件实例生成一个唯一标识,给组件中的每个标签对应的d

    2024年04月10日
    浏览(50)
  • Spark性能优化:提高计算速度与资源利用率的实用技巧

    Apache Spark是一个开源的大规模数据处理框架,它可以处理批量数据和流式数据,并提供了一个易用的编程模型。Spark的核心组件是Spark引擎,它负责执行用户的计算任务。在大规模数据处理中,Spark性能优化是非常重要的,因为它可以提高计算速度和资源利用率。 在本文中,我

    2024年02月20日
    浏览(57)
  • kafka查询offset&生产者offset计算&消费offset计算

    1、简介 ​ kafka的介绍:略…(有兴趣的同学可自行Google,这与本文无关 ^ _ ^) 2、需求背景 ​ 对kafka做监控,需要获取到kafka接收到消息的offset和被消费者消费掉消息的offset,编写接口将数值交给prometheus,直接观察判断kafka的消费性能如何。(如何自定义prometheus的监控指标后续

    2023年04月25日
    浏览(80)
  • 174_技巧_Power BI 动态格式(万|亿)

    Power BI 2023年4月份更新,新增加了一个预览功能:动态格式(Dynamic format strings for measures),度量值的结果可以动态的显示为不同的格式。 今天我们主要来看一个技巧,如何在 Power BI 动态的根据数值的大小显示单位为 万 或者 亿 。 Power BI 公共 web 效果:https://demo.jiaopengzi.com/pb

    2024年02月08日
    浏览(34)
  • 173_技巧_Power BI 矩阵层级排名几种度量值写法

    今天我来看一下 Power BI 层级排名的几种呈现方式。 老规矩,我们首先看一下效果。 Power BI 公共 web 效果:https://demo.jiaopengzi.com/pbi/173-full.html 我们分别以 RANKX 和 COUNTROWS 两个函数为核心思路,写了一般业务情况下的 3 种排名方式,共计 6 个度量值。 rank_0 : 上图红色背景区域,

    2024年02月16日
    浏览(27)
  • Power BI利用Python和Sql Server制作实时看板

    通常我们在制作Power BI报表时使用的都是导入模式,导入确实相比DirectQuery模式性能和限制会更少些,但是某些场景下我们对数据刷新的上频率要求较高,比如即将到来的618大促,销售看板肯定不能再按天更新了,最好是做到秒级更新,当然微软也有相应的解决方案,使用流式

    2024年02月11日
    浏览(40)
  • STM32开发中printf利用重定向方法输出到串口(CubeMX 基于HAL库方法,带实际项目应用技巧 巧用goto语句)

    在stdio.h中的printf 原本输出到控制台, 在单片机应用中一般将其改到串口, 并利用串口输出信息来调试程序,非常方便。(本文以USART1为例) 此外CubeMX及CubeIDE 由于自动生成基础代码,因此每当更改硬件配置的时候, 都会被重置生成的基础代码。 这里使用goto语句来避免部分

    2024年02月04日
    浏览(79)
  • 计算机三级网络技术综合题、应用题常见题型答题技巧

    二、综合题 问题1 问题2 问题3 三、应用题 1.计算并填写下表 将IP地址和子网掩码全部转换成二进制:  111.181.21.9:01101111.10110101.00010101.00001001 255.192.0.0 :11111111.11000000.00000000.00000000 由子网掩码可得, 前10位是网络位,后22位是主机位 。 【1】   地址类别:【2023年3月场考题

    2024年02月07日
    浏览(49)
  • 利用Power Automate,轻松下载Power BI报告中的数据

        Power Automate是微软的流程自动化(RPA)工具,可以友好、无代码的实现各种低效工作流程的自动化处理。它也已经集成到了Power BI中,在 Power BI 报表中创建 Power Automate 视觉对象后,终端用户只需单击报表中的按钮即可运行自动化流。 通过二者的协同,可以提供更强大、更灵

    2024年02月04日
    浏览(40)
  • UIOTOS前端零代码 第7节:(实践)利用嵌套+收发器组件,零代码实现简单计算器功能

    通过嵌套容器嵌套底层页面,再利用收发器组件和工具函数之间的转换,真正做到零代码实现简单计算器功能。 底层页面             步骤1: 打开编辑器,在右边页面中,选择合适的页面路径 新建页面 。 步骤2: 把当前页面命名“按钮”,并缩放至合适的大小,在右边属

    2024年04月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包