中国式报表之条件格式设置
小伙伴们大家好~
之前的文章《简单的中国式报表详解》,大家都学会了吗!
小编看完之后马上就用到工作中了,简直棒棒的!
然而…刚开心几分钟问题又来了
我想要设置条件格式怎么办???
那么先来看看下面这个中国式报表,一起来回顾并思考一下:
制作表头的数据源如下:
度量值如下:
Value = SWITCH(TRUE(),
SELECTEDVALUE('Dim_Title'[L1])=
"订货"&&SELECTEDVALUE('Dim_Title'[L2])="实际数量",FORMAT([订货预测内],"#,##"),
SELECTEDVALUE('Dim_Title'[L1])=
"订货"&&SELECTEDVALUE('Dim_Title'[L2])="预测数量",FORMAT([订货预测数],"#,##"),
SELECTEDVALUE('Dim_Title'[L1])=
"订货"&&SELECTEDVALUE('Dim_Title'[L2])="达成率",FORMAT([订货预测精度],"0%"),
SELECTEDVALUE('Dim_Title'[L1])=
"发货"&&SELECTEDVALUE('Dim_Title'[L2])="实际数量",FORMAT([发货预测内],"#,##"),
SELECTEDVALUE('Dim_Title'[L1])=
"发货"&&SELECTEDVALUE('Dim_Title'[L2])="预测数量",FORMAT([发货预测数],"#,##"),
SELECTEDVALUE('Dim_Title'[L1])=
"发货"&&SELECTEDVALUE('Dim_Title'[L2])="达成率",FORMAT([发货预测精度],"0%"),
SELECTEDVALUE('Dim_Title'[L1])=
"总计"&&SELECTEDVALUE('Dim_Title'[L2])="预测精度",FORMAT([预测精度],"0%"))",FORMAT([预测精度],"0%"))
问 题
假设预测精度60%视为合格,我们想实现的效果为达成率和预测精度列,当值大于60%时字体颜色为绿色,当值小于等于60%时为红色。这样就可以很清楚地看到每个人的预测精度是否合格。
第一次尝试
我们将Value这个度量值放到条件格式中,发现根本就选不上,这里是由于度量值最后返回的是FORMAT文本格式。并且就算能选上,我们也没办法按照某列来设置条件格式。
所以我们转变一下思路。是否可以单独写一个用于控制条件格式的度量值呢,指定当处于某一列上,并且值大于0.6返回绿色,小于0.6返回红色。
第二次尝试
度量值如下:
条件格式=
//判断是否在订货-达成率列
VAR dinghuoyuce = HASONEVALUE('Dim_Title'[L1])&&HASONEVALUE(Dim_Title[L2])&&SELECTEDVALUE(Dim_Title[L1])="订货"&&SELECTEDVALUE(Dim_Title[L2])="达成率"
//判断是否在发货-达成率列
VAR fahuoyuce = HASONEVALUE(Dim_Title[L1])&&HASONEVALUE(Dim_Title[L2])&&SELECTEDVALUE(Dim_Title[L1])="发货"&&SELECTEDVALUE(Dim_Title[L2])="达成率"
//判断是否在预测精度列
VAR yucejingdu = HASONEVALUE(Dim_Title[L1])&&HASONEVALUE(Dim_Title[L2])&&SELECTEDVALUE(Dim_Title[L2])="预测精度"
//根据所处列位置不同,返回不同度量值
VAR _VALUE = IF(dinghuoyuce,[订货预测精度],IF(fahuoyuce,[发货预测精度],IF(yucejingdu,[预测精度],BLANK())))
//精度大于60%的值返回绿色,小于等于60%的值返回红色
RETURN
IF(_VALUE<>BLANK(),
SWITCH(TRUE(),
_VALUE>0.6,"#2ECC40",
_VALUE<=0.6,"#c75033"))
打开条件格式—字体颜色,点击高级控件
接下来需要将格式模式选择为字段值
依据字段选择我们刚刚写好的控制颜色的度量值【条件格式】
最终效果如下:
与最开始做出来的表格相比,加上条件格式后就一眼就可以看出A同学不合格。B同学合格但是发货预测偏低...
一眼被老板盯上的感觉也太惨了吧! 我们再来加点料。
(在预测精度列加上箭头,当预测精度大于60%显示一个向上的箭头,小于等于60%时显示一个向下的箭头)
第三次尝试
度量值如下:
Value箭头 =
VAR jiantou =
SWITCH(TRUE(),
[预测精度]>0.6,UNICHAR(8593),
[预测精度]<=0.6,UNICHAR(8595))
RETURN
SWITCH(TRUE(),
SELECTEDVALUE('Dim_Title'[L1])=
"订货"&&SELECTEDVALUE('Dim_Title'[L2])="实际数量",FORMAT([订货预测内],"#,##"),
SELECTEDVALUE('Dim_Title'[L1])=
"订货"&&SELECTEDVALUE('Dim_Title'[L2])="预测数量",FORMAT([订货预测数],"#,##"),
SELECTEDVALUE('Dim_Title'[L1])=
"订货"&&SELECTEDVALUE('Dim_Title'[L2])="达成率",FORMAT([订货预测精度],"0%"),
SELECTEDVALUE('Dim_Title'[L1])=
"发货"&&SELECTEDVALUE('Dim_Title'[L2])="实际数量",FORMAT([发货预测内],"#,##"),
SELECTEDVALUE('Dim_Title'[L1])=
"发货"&&SELECTEDVALUE('Dim_Title'[L2])="预测数量",FORMAT([发货预测数],"#,##"),
SELECTEDVALUE('Dim_Title'[L1])=
"发货"&&SELECTEDVALUE('Dim_Title'[L2])="达成率",FORMAT([发货预测精度],"0%"),
SELECTEDVALUE('Dim_Title'[L1])=
"总计"&&SELECTEDVALUE('Dim_Title'[L2])=
"预测精度",jiantou&" "&FORMAT([预测精度],"0%"
))
注意:此度量值主要用于展示表格中的内容,颜色的变化是通过【条件格式】度量值实现的
将【Value箭头】度量值放到值中,并按照之前的方法设置条件格式
最终效果如下:
上文中的方法适用于中国式报表的条件格式设置,如果是普通的表格(列上面没有层级关系)大家直接在条件格式中选择想要设置的字段就可以啦~
今天的分享就到这里了,大家可以尝试使用条件格式来让报表的展示更直观~
-
PowerPivot工坊原创文章,转载请注明出处!
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。
长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~
Power Pivot工坊
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)