美文网首页BI学习笔记
BI技巧丨计算组柱形图

BI技巧丨计算组柱形图

作者: Fabric丨白茶 | 来源:发表于2023-05-19 20:49 被阅读0次

    PowerBI中,我们经常使用柱形图来进行趋势对比分析,通过柱形图我们可以直观展示每个月之间的差异。

    但是在实际需求中,PowerBI原生的柱形图仅能展示一个数据标签,如果我们想要展示同环比的变化情况,往往需要将同环比的度量值放置到工具提示中。

    这对用户来说,体验其实是很不友好的,用户期望的往往是一眼可以获取到所有想知道的关键信息。

    面对用户的这一需求,我们可以通过计算组来实现。

    案例数据:

    将其导入到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
            )
    )
    

    模型关系如下:

    添加如下基础度量值:

    销售数量:

    Quantity =
    SUM ( Sales[Quantity] )
    

    同比:

    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
    

    环比:

    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
    

    将上述度量值在柱形图中展示如下:

    到这里,我们的准备工作完成,其实这也是不通过计算组功能所能实现的效果。

    在外部工作区,打开Tabular。

    选择创建计算组。

    添加两个计算项:
    同比计算项:

    SELECTEDMEASURE()
    

    设置数据展示格式:

    IF (
        ISBLANK ( [Count同比%] ),
        SUBSTITUTE ( SELECTEDMEASURE (), "0", "\0" ),
        SUBSTITUTE (
            SELECTEDMEASURE () & "("
                & FORMAT ( [Count同比%], "0%" ) & ")",
            "0",
            "\0"
        )
    )
    

    环比计算项:

    SELECTEDMEASURE()
    

    设置数据展示格式:

    IF (
        ISBLANK ( [Count环比%] ),
        SUBSTITUTE ( SELECTEDMEASURE (), "0", "\0" ),
        SUBSTITUTE (
            SELECTEDMEASURE () & "("
                & FORMAT ( [Count环比%], "0%" ) & ")",
            "0",
            "\0"
        )
    )
    

    将其保存,应用到PowerBI中,最终展示的效果如下:

    解释:

    1.IF判断的目的,是为了解决某些时间段不存在同环比的情况;

    2.SUBSTITUTE是为了解决因为0导致的数据格式问题;

    3.当然,这个需求也可以深挖一下,进行同环比配色,这里就不进行展示了。

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


    相关文章

      网友评论

        本文标题:BI技巧丨计算组柱形图

        本文链接:https://www.haomeiwen.com/subject/xahkddtx.html