BI技巧丨财务累计

2022-10-22 20:45:51 浏览数 (3)

日常使用PowerBI制作看板过程中,往往需要我们在看板的第一浏览区将用户最关注的核心指标呈现出来。白茶在之前的文章中曾提到过,用户关注的核心指标,基本上都是时间指标。

而在时间指标中,又存在一类特殊的指标,财务日期指标。

相信小伙伴们对财务日期都不会感觉到陌生,顾名思义,财务日期就是将我们平常记账的自然日期,转化为相应的财务日期,来匹配各个公司财务记账规则。

那么,在财务日期下,我们如何进行时间指标的计算呢?

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

案例数据共计两张表,一张事实表,一张日期表,其中日期表包含了财务日期、财务年份、财务季度、财务月份等。

将其导入到PowerBI中,模型关系如下:

添加如下基础指标。

销售数量:

代码语言:txt复制
001.Quantity = 
SUM ( Fact_Sales[Quantity] )
//基础指标,仅用作聚合销售数量使用

财务年份:

代码语言:txt复制
002.FinanceYear = 
SELECTEDVALUE ( Dim_Date[FinanceYear] )
//取自然日期对应财务年份

财务季度:

代码语言:txt复制
003.FinanceQuarter = 
SELECTEDVALUE ( Dim_Date[FinanceQuarter] )
//取自然日期对应财务季度

财务月份:

代码语言:txt复制
004.FinanceMonth = 
SELECTEDVALUE ( Dim_Date[FinanceMonth] )
//取自然日期对应财务月份

财务日期:

代码语言:txt复制
005.FinanceDate = 
SELECTEDVALUE ( Dim_Date[FinanceDate] )
//取自然日期对应财务日期

到这里,基础指标构建完毕。

可能看到这里,小伙伴们会有疑问,三个财务时间维度有啥用?

其实,这三个时间维度,是为了方便后面计算使用。

计算财务日期的累计值,我们有两种办法:使用时间智能函数或自己构建上下文。

时间智能函数:

年累计:

代码语言:txt复制
006.TotalYTD = 
TOTALYTD ( [001.Quantity], 'Dim_Date'[FinanceDate], ALL ( Dim_Date[Date] ) )
//第三参屏蔽自然日期筛选效果

季累计:

代码语言:txt复制
007.TotalQTD = 
TOTALQTD ( [001.Quantity], 'Dim_Date'[FinanceDate], ALL ( Dim_Date[Date] ) )
//第三参屏蔽自然日期筛选效果

月累计:

代码语言:txt复制
008.TotalMTD = 
TOTALMTD ( [001.Quantity], 'Dim_Date'[FinanceDate], ALL ( Dim_Date[Date] ) )
//第三参屏蔽自然日期筛选效果

将上述三个度量值,放到表格中,我们查看一下。

可以看到,基本上满足了我们的需求。在自然日期作为展示的上下文中,三个指标是按照底层表中财务日期进行计算的。

而在这三个度量值中,可以看到,白茶并没有做太多的调整,只是在第三参数移除了自然日期的筛选效果。

构建上下文:

年累计:

代码语言:txt复制
009.FinanceTotalYTD = 
VAR FinanceYear = [002.FinanceYear]
VAR FinanceDate = [005.FinanceDate]
RETURN
    CALCULATE (
        [001.Quantity],
        FILTER (
            ALL ( Dim_Date ),
            [FinanceYear] = FinanceYear
                && [FinanceDate] <= FinanceDate
        )
    )

季累计:

代码语言:txt复制
010.FinanceTotalQTD = 
VAR FinanceYear = [002.FinanceYear]
VAR FinanceQuarter = [003.FinanceQuarter]
VAR FinanceDate = [005.FinanceDate]
RETURN
    CALCULATE (
        [001.Quantity],
        FILTER (
            ALL ( Dim_Date ),
            [FinanceYear] = FinanceYear
                && [FinanceQuarter] = FinanceQuarter
                && [FinanceDate] <= FinanceDate
        )
    )

月累计:

代码语言:txt复制
011.FinanceTotalMTD = 
VAR FinanceYear = [002.FinanceYear]
VAR FinanceMonth = [004.FinanceMonth]
VAR FinanceDate = [005.FinanceDate]
RETURN
    CALCULATE (
        [001.Quantity],
        FILTER (
            ALL ( Dim_Date ),
            [FinanceYear] = FinanceYear
                && [FinanceMonth] = FinanceMonth
                && [FinanceDate] <= FinanceDate
        )
    )

将上述三个度量值,我们继续拖到表中,进行对比查看一下。

从结果上看,二者基本上是一致的。小伙伴们可根据自己的习惯,选择适合自己的方式。

补充说明:

1.时间智能的方式,适合新手使用,构建上下文的方式适合老手;

2.白茶建议使用后者,时间智能方式的使用问题,已经提过很多次了,这里就不赘述了;

3.其它指标,类似于财务日期同环比,可以参照以往文章,只不过维度列从自然日期转为财务日期。

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

0 人点赞