柱形图配色丨细节问题

2021-09-03 10:50:12 浏览数 (1)

“很多问题,其实都是失败于微不足道的细节。”

白茶总结了一下最近半年小伙伴们的问题:

1、大部分的报表,其实并不需要复杂的运算逻辑,第一需求往往是简单、通俗易懂; 2、其次,很多小伙伴问的问题其实都是基础性的问题。

本期呢,白茶分享一个我们日常做表使用频率较高的小技巧,为柱形图添加动态配色!虽然这个技巧并不难,但是包含有一个基础性的小坑。

先来看看本期的数据。

这是白茶随机模拟的数据,看起来也没有很复杂,只有两列:日期与数据。

将其导入到PowerBI中。

考虑到多数时候,我们所呈现的BOSS都是中国式,添加一个日期表如下。

代码:

代码语言:javascript复制
日期表 =
GENERATE (
    CALENDAR ( MIN ( '例子'[日期] ), MAX ( '例子'[日期] ) ),
    VAR DA = [Date]
    VAR YEAR =
        YEAR ( DA )
    VAR QUARTER =
        "季度" & 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,
            "星期", WEEKID
        )
)

结果如图:

建立维度关系,这里就不赘诉了。

编写基础代码:

代码语言:javascript复制
聚合 =
SUM ( '例子'[数据] )

编写配色代码:

代码语言:javascript复制
月份配色 =
VAR BCMON =
    SELECTEDVALUE ( '日期表'[年度月份] )
VAR BCMAN =
    CALCULATE ( [聚合], '日期表'[年度月份] = BCMON - 1 )
RETURN
    IF ( [聚合] >= BCMAN, "#D0576B", "#FAF9F0" )

代码含义: 1、利用SELECTEDVALUE函数传递当前上下文,选取当前筛选的年月; 2、利用CALCULATE函数计算出上期的数据; 3、利用IF函数进行判断,根据不同的结果进行配色。

可能看到这里,小伙伴说了,不对啊,白茶,没看到有什么坑啊?

这不是很标准的利用DAX进行动态配色嘛,没感觉哪里不对啊!

别急,咱们继续往下看:

添加柱形图,将日期维度和数据放入其中如下。

去设置界面,进行颜色配置:

问题产生了:

这里可以清楚的看到刚才写好的度量值,但是无法选取!

并且界面上也没有任何提示,比如度量值报错之类的。

那么问题出在哪里呢?

这个其实就是本期白茶想分享给大家的问题:

度量值本身没有错误,但是无法选取为数据配色,什么原因呢?

1 2 3 ...

公布答案:格式问题

代码中,BCMON-1的前提是[年度月份]这一列可以被减!

而从操作界面可以看到,这一列的数据格式是文本,那么文本怎么可能进行-1的操作呢?

这就是本期问题的核心:

很多时候,你的代码明明没有错,但是因为你忽略了基础性的问题,会导致出现问题都不知道出在哪里,这里提醒各位小伙伴,格式!格式!格式!

重要的事情说三遍,任何数据导入到PowerBI中第一件需要处理的事情是格式问题。

知道问题在哪了,后续就好处理了,解决办法有多种:

1、界面操作,直接更改为整数类型;

2、使用FORMAT函数;

3、使用CONVERT函数。

三种办法任选其一,白茶用的是第一种。

修改之后,去刚才的界面选取度量值:

修改一下背景,结果如下:

当然,你也可以像白茶一样进行细节上的微调,最终结果如下:

小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球[PowerBI丨需求圈])

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

0 人点赞