BI技巧丨增长率问题

2022-05-01 13:01:41 浏览数 (1)

BOSS:白茶,能不能做个柱形图带折线的?

白茶:可以啊,老板!

BOSS:(看来这个比较简单)能不能做出环比增长和下降的折线标识?

白茶:可以啊,老板!

BOSS:(......)那,增长和下降的标识能不能定在顶栏不动?不然和柱子混合我看着有点晕。

白茶:这个有点难啊,老板。

BOSS:((p≧w≦q))就要这个!

在项目实施的过程中,柱形折线图可以说是我们使用频率较高的可视化图形之一,默认的呈现效果如下图:

很多用户和白茶反映过,能不能让折线的标签固定在上方?也不要折线,有每个月的节点就可以,这样看起来能更直观一些。

用户的这个需求是很合理的,毕竟BI可视化的根本,是能将重要信息简洁明了的呈现给用户。

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

一张销售事实表,案例数据比较简单,导入到PowerBI中,添加日期表。

代码语言:txt复制
Dim_Data =
GENERATE (
    CALENDAR ( MIN ( 'Fact_Sales'[DATE] ), MAX ( 'Fact_Sales'[DATE] ) ),
    VAR DA = [Date]
    VAR YEAR =
        YEAR ( DA )
    VAR QUARTER =
        "Q" & FORMAT ( DA, "Q" )
    VAR MONTE =
        FORMAT ( DA, "MM" )
    VAR DAY =
        DAY ( DA )
    VAR WEEKID =
        WEEKDAY ( DA, 2 )
    RETURN
        ROW (
            "年度", YEAR,
            "季度", QUARTER,
            "月份", MONTE,
            "日", DAY,
            "年度季度", YEAR & QUARTER,
            "年度月份",
                YEAR & "." & MONTE
        )
)

建立模型关系如下:

添加如下基础度量值。

销售数量:

代码语言:txt复制
A.销售数量 =
SUM ( Fact_Sales[Quantity] )

上月销售数量:

代码语言:txt复制
B.上月销售数量 = 
CALCULATE ( [A.销售数量], DATEADD ( 'Dim_Data'[Date], -1, MONTH ) )

环比:

代码语言:txt复制
C.环比 = 
DIVIDE ( [A.销售数量] - [B.上月销售数量], [A.销售数量] )

如果直接将这三个度量值放入到柱形折线图中,效果如下:

很明显没有满足我们的需求。

用户需要的是既体现增长下降情况,并将折线转化为散点,固定在柱子上方。

那么该如何实现呢?

思考一下

1

2

3

......

其实,我们可以将环比度量值进行拆分。

正环比:

代码语言:txt复制
D.正环比 = 
IF ( [C.环比] >= 0, [C.环比], BLANK () )

负环比:

代码语言:txt复制
E.负环比 =
IF ( [C.环比] < 0, [C.环比], BLANK () )

将其放入到柱形折线图中效果如下:

因为拆分出两个度量值,所以我们可以对正环比和负环比进行单独配色区分,以及样式调整。

注:柱形折线图默认只支持对柱子进行fx配色。

我们从上图中可以看出,增长和下降的问题已经解决了,但是固定顶层这个问题依然存在。

别急,我们添加两个度量值:

上限高度:

代码语言:txt复制
F.次级坐标轴上限 =
500000000000

下限高度:

代码语言:txt复制
G.次级坐标轴下限 =
-10000000000000

将上述两个度量值,依次添加到Y轴→次级坐标轴→开始值、结束值

结果如下:

基本的效果雏形已经有了,我们美化一下,最终效果如下:

0 人点赞