“很多问题,其实都是失败于微不足道的细节。”
白茶总结了一下最近半年小伙伴们的问题:
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的初学者。