本期的问题,来源于群内小伙伴的提问:
“白茶,Power BI中可以像其他数据分析软件一样,让折线图突出显示上下阈限么?”
这个问题,白茶仔细寻思了一下,你别说,还真有!
接下来开始本期的问题,如何在折线图中设定上下阈限的颜色?
首先呢,是模拟数据,如下图:
开始思考问题,怎么判定这个数据的上下阈限?总得有一个可以比较的值吧!
想到这里,白茶突然想起来,好像RANKX函数可以做到!
开始编写如下代码:
排名 =
IF (
HASONEFILTER ( '例子'[日期] ),
RANKX (
ALLSELECTED ( '例子' ),
CALCULATE ( SUM ( '例子'[销售] ) )
+ DIVIDE ( 10000, CALCULATE ( MIN ( '例子'[日期] ) ) ),
,
DESC,
DENSE
)
)
结果如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZPkVfxCy-1593562382248)(https://upload-images.jianshu.io/upload_images/19522947-5a455bacfdaeecfe?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
解释一下代码含义:
IF+HASONEFILTER是为了去掉总计栏合计的;
ALLSELECTED是为了保证无论如何筛选,都能按照我们设定的条件显示固定的上下阈限;
DIVIDE是为了解决部分数据排序相同的问题(实际需求中用的到)。
这样的话基准值就出现了。接下来开始思考如何在折线图中实现。
白茶翻遍了折线图设置的所有内容,都没有发现可以进行颜色条件格式设定的地方,但是经过测试发现,可以曲线救国!
跟着白茶的思路进行,继续编写两段代码。
上限阈值代码:
高段 =
VAR MIXP =
MINX ( ALLSELECTED ( '例子' ), '例子'[排名] ) + 2
RETURN
IF ( [排名] <= MIXP, SUM ( '例子'[销售] ), BLANK () )
下限阈值代码:
低段 =
VAR MAXP =
MAXX ( ALLSELECTED ( '例子' ), '例子'[排名] ) - 2
RETURN
IF ( [排名] >= MAXP, SUM ( '例子'[销售] ), BLANK () )
将这两段代码加上原本的[销售]列,一起放到折线图的[值]中,如下:
会发现结果显示的乱糟糟的,别急,慢慢来。到设置中去调整X轴坐标,将其修改为“类别”,这一步很重要!
是不是看起来好多了?接下来,到数据颜色中,将三个数据的颜色设置为一致。
打开形状设置,点开“自定义选项”,选择一个你喜欢的形状,之后就可以进行颜色设置了。
之后如法炮制,设定上限阈值颜色:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4irWIY9-1593562382258)(https://upload-images.jianshu.io/upload_images/19522947-b1cf809ad8b1ef58?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
添加一个时间切片器,会发现这个设置是动态的。
当然,也可以选择像白茶一样进行全面的颜色布局优化,最终的效果如下:
这里是白茶,一个PowerBI的初学者。