BI技巧丨利用Index计算半累计

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

BI技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi

在实际的业务场景中,特别是财务模块和库存管理模块,经常需要我们针对每个月的期初期末进行相关指标计算,这也是我们之前曾经提到的Calculate基础应用——半累计计算。

现在我们也可以通过微软新推出的Index开窗函数来解决这一问题。

INDEX函数基础语法

INDEX(<position>[, <relation>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>])

参数介绍:

position:从中获取数据的绝对位置(从 1 开始):1为第一行,-1为最后一行。

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

orderby:可选项,排序依据。

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

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

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

PS:

是不是非常的疑惑?感觉和OFFSET函数没啥区别啊?

没错,是这样的,除了函数功能有所区分以外,剩下的参数用途基本一致。

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

BI技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi

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

BI技巧丨利用Index计算半累计,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技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi

添加如下基础度量值:

销售数量:

001.Quantity =
SUM ( Sales[Quantity] )

半累计计算:

002.LastDayQuantity =
CALCULATE ( [001.Quantity], LASTDATE ( 'Date'[Date] ) )

半累计计算优化:

003.LastDayQuantityPlus =
CALCULATE (
    [001.Quantity],
    FILTER ( ALL ( 'Date' ), 'Date'[Date] = MAX ( 'Date'[Date] ) )
)

结果如下:

BI技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi

这是我们之前的处理方式,利用Lastdate函数或Filter+All+Max的组合,完成半累计计算,求出相关指标。

现在,我们可以通过Index函数,来实现上述需求:

004.IndexLastDayQuantity =
CALCULATE ( [001.Quantity], INDEX ( -1, VALUES ( 'Date' ) ) )

结果如下:

BI技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi

可以看出,三者计算的结果是一致的,那么性能方面呢?

BI技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi

BI技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi

性能方面的话,Lastdate的方式速度最快,Filter和Index速度不好区分。

从结果导向的方式,白茶还是推荐大家使用LastDate的方式。

除了上述的例子以外,Index还可以用来计算期初值。

005.IndexFirstDayQuantity =
CALCULATE ( [001.Quantity], INDEX ( 1, VALUES ( 'Date' ) ) )

结果如下:

BI技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi

BI技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi

BI技巧丨利用Index计算半累计,PowerBI丨应用篇,前端,服务器,powerbi文章来源地址https://www.toymoban.com/news/detail-641901.html

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

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

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

相关文章

  • PowerBI(一) : 如何将powerBI报表嵌入内部web应用程序?

    最近做了一个PowerBI报表嵌入内部web应用系统的项目,分享一下主要步骤以及踩坑记录。 微软官网完整教程这里:https://learn.microsoft.com/zh-cn/power-bi/developer/embedded/embedded-analytics-power-bi 以下是我自己总结的主要步骤(仅供大家参考): 1. 你要付费买一个powerBI的账号。 2. 用这个

    2023年04月24日
    浏览(47)
  • 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)
  • 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)
  • 涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(下)

    涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(二) 问题分析 在 ODPS计算期间 或者 odps表同步到hbase表期间,发生了查询,会导致数据错误。出现问题的地方就是这两个时间窗口:ODPS计算期间 和 odps表同步到hbase表期间。那就针对性分析,各个击破。  解决方案

    2024年03月27日
    浏览(49)
  • 【金融量化】Python实现根据收益率计算累计收益率并可视化

    理财产品(本金100元) 第1天:3% :(1+3%) ✖ 100 = 103 第2天:2% :(1+2%)✖ 以上 = 103 +2.06 第3天:5% : (1+5%)✖ 以上 = 收益 ✖ 以上 第4天:6% :(1+6%)✖ 以上 = 收益 ✖ 以上 … 累计收益=(1+当天收益率)的累计乘积-1 这里的计算公式为什么需要减去1呢? 因为我们上面的公

    2024年02月12日
    浏览(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日
    浏览(41)
  • STM32开发中printf利用重定向方法输出到串口(CubeMX 基于HAL库方法,带实际项目应用技巧 巧用goto语句)

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

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

    二、综合题 问题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)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包