BI技巧丨Window应用之同环比

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

BI技巧丨Window应用之同环比,PowerBI丨应用篇,前端,powerbi,微软,数据分析

白茶曾介绍过OFFSET可以用来解决同环比的问题,其实微软最近推出的开窗函数WINDOW也可以用来解决同环比。

WINDOW函数基础语法

WINDOW ( from[, from_type], to[, to_type][, <relation>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>] )

参数介绍:

from:表示窗口开始的位置,正负数均可,可以是固定值,也可以是DAX表达式。

from_type:修改from行为,有两个选项ABS(绝对位置)和REL(相对位置)。

to:表示窗口结束的位置,正负数均可,可以是固定值,也可以是DAX表达式。

to_type:修改to行为,有两个选项ABS(绝对位置)和REL(相对位置)。

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

orderby:可选项,排序依据。

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

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

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

PS:

from和to的1代表向后移动一行,-1代表向前移动一行,0代表当前位置。

其他参数与OFFSET和INDEX函数一致,这里就不过多介绍了。

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

BI技巧丨Window应用之同环比,PowerBI丨应用篇,前端,powerbi,微软,数据分析

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

BI技巧丨Window应用之同环比,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技巧丨Window应用之同环比,PowerBI丨应用篇,前端,powerbi,微软,数据分析

添加如下基础度量值:

销售数量:

Quantity =
SUM ( Sales[Quantity] )

环比:

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 )

这是我们之前利用OFFSET函数的写法,结果如下:

BI技巧丨Window应用之同环比,PowerBI丨应用篇,前端,powerbi,微软,数据分析

有了WINDOW函数,我们还可以这么写:

环比:

Window环比% = 
VAR LastYear =
    CALCULATE (
        [Quantity],
        WINDOW ( -1, REL, -1, REL, ALL ( 'Date'[Year], 'Date'[YearMonth] ) )
    )
RETURN
    DIVIDE ( [Quantity] - LastYear, LastYear )

同比:

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

结果如下:

BI技巧丨Window应用之同环比,PowerBI丨应用篇,前端,powerbi,微软,数据分析

二者结果是一致的。

BI技巧丨Window应用之同环比,PowerBI丨应用篇,前端,powerbi,微软,数据分析

从执行性能上来看,OFFSET函数的效果是最优的。

无论是对比之前的时间智能函数的写法,还是对比日期表加列的写法,包括本期对比WINDOW函数的写法,OFFSET在同环比计算上的速度都是最优的。

而WINDOW函数,因为有from和to两个定位值,因此性能上面对比OFFSET是有损耗的。

BI技巧丨Window应用之同环比,PowerBI丨应用篇,前端,powerbi,微软,数据分析

BI技巧丨Window应用之同环比,PowerBI丨应用篇,前端,powerbi,微软,数据分析文章来源地址https://www.toymoban.com/news/detail-673165.html

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

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

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

相关文章

  • PowerBI 开发 第23篇:共享数据集

    Power BI共享数据集的优点是:只要数据集刷新,那么引用该数据集的报表都会自动刷新,节省了报表数据刷新的时间和算力,缺点是:使用共享数据集的报表,虽然可以新增Measure(Measure仅存在于本地报表中,不会同步到共享dataset),但是无法修改数据模型,比如,无法修改关系

    2024年02月11日
    浏览(35)
  • PowerBI Copilot已全面支持中文识别

    在前两天的文章中,我们讲过copilot in powerbi目前对中文输入语句的识别还不好: Copilot in Power BI等了好久终于等到今天 Copilot in Power BI详细使用说明 但是官方明确表示支持简体中文输入的,所以推测应该只是临时性问题。果然,今天测试,已经完全支持中文的输入,并且字段

    2024年01月21日
    浏览(39)
  • PowerBI Report Server 报表服务器 搭建

    目录 1.  Power BI (PBI) Desktop 版本和 报表服务器版本   区别介绍  2.  设备情况,前期准备 3.  SQL Server 数据库 部署 4. 报表服务器 安装 与 链接                         字面上,是搭建一个PBI 服务器, 与数据库连接,实现 线上 数据的 可视化 。                    

    2024年02月12日
    浏览(52)
  • PowerBI跨云跨域分享报表或数据集

    PowerBI支持将数据集共享给外部来宾用户,具体细节可查看官方文档 在外部组织中与来宾用户共享 Power BI 就地数据集 (预览版) - Power BI | Microsoft Learn[1] 此外,官方预览功能中用户也可以使用来自组织外部的数据集在PowerBI Desktop中创建报表, Microsoft Ignite 2022: Do more with enterpri

    2024年02月05日
    浏览(34)
  • #PowerBi 10分钟学会,以X为结尾的聚合函数

    前言 在 Power BI 中,我们经常需要对数据进行聚合计算,比如求和、求平均、求最大值等。 Power BI 提供了一系列的聚合函数,可以用来对表中列的值进行聚合然后返回一个值。这些函数通常只需要一个参数,就是要聚合的列名。如SUM(‘销售表’[销量]),就是求销售表里的销量

    2024年02月03日
    浏览(35)
  • 8.11 PowerBI系列之DAX函数专题-TopN中实现N的动态

    1 ranking by amount = rankx(allselected(order_2[产品名称]),[total amount]) 2 rowshowing_boolean = var v_ranking = [ranking by amount] var v_topN-no = [topN参数 值] var v_result =int( v_ranking = v_topN_no) return v_result 3 将度量值2放入视觉对象筛选器,条件是等于1 4 topN 参数新建: (1)自动创建 (2)DAX 函数创建 To

    2024年02月15日
    浏览(43)
  • 5.14 PowerBI系列之DAX函数专题-DAX函数使切片器可筛选多列数据

    需求:把多个列标题当作切片器筛选 思路: 1.创建一个辅助表将列转成行; 2.写度量值用于判断当期选择的列和抓取对应的数据; 3.将度量值应用到展示图表的筛选器当中 实现 将度量值‘产品大类筛选’0作为对应视觉对象的展示条件。 需要注意的是,是否大于0是是否展现

    2024年02月12日
    浏览(38)
  • 8.5 PowerBI系列之DAX函数专题-dax列转行vs矩阵列转行和逆透视

    使度量值在行上呈现,如下图 1.用power query实现:在power query-转换-逆透视列中将原始数据进行列销售数量,列销售金额进行逆透视。然后在报表页面将逆透视的列放到行上。 2.用dax实现: 1)创建一个辅助表,单一列,包含销售数量,销售金额两个值; 2) 0 3)拓展:矩阵中

    2024年01月16日
    浏览(39)
  • DYnamics 365如何隐藏实体列表页面home page页面上的PowerBI按钮和EXCEL template按钮

    如何隐藏以上两个按钮,用ribbon工具根本找不到这2个按钮。 解决方案:添加一个没用的按钮,通过调用enable方法来隐藏。 // JavaScript source code function HiddenButton() { HiddePowerBIButton(); HiddeDocumentTemplateButton(); return false } function HiddePowerBIButton() { } function HiddeDocumentTemplateButton() { } f

    2024年02月11日
    浏览(40)
  • PowerBi连接MySQL提示需安装组件才能使用,本人删去已经下载好的组件,再做一份详细教程。

    当我们用PowerBi连接Mysql时候,他突然提示我们需要安装组件。 检查自己的MySQL版本 打开cmd运行框,输入命令 mysql -uroot -p ,再输入数据库密码 输入 select version(); 我这里是8.0.16版本,记住自己的版本号 下载 mysql connector https://downloads.mysql.com/archives/c-net/ 选择自己对于的版本号下载

    2024年02月05日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包