最近接到一个新需求,原本以为是挺简单的写个判断就可以了,但是需求灵活配置,细细一品,不对啊
原需求条件如下:
首先我们分析整理需求点:
1.“灵活可配置”这里面就需要我们有一张参数维度表,范围在1....100。
(开发之前设想只用一张参数表,添加四列一模一样的值,但是实际操作的时候,我发现如果四个配置项同时输入值时,返回的是空,并且这块逻辑使用ALL函数完全不管用,所以这块逻辑后面使用了非常笨的方法用了四个参数表,如果后面有小伙伴使用更方便的方法实现,欢迎分享出来,让我们互相学习进步)
2.采用输入框的形式,默认值使用原始定的逻辑。
---------------------------------------------------------------------------------------------------------------------------------
上重点DAX:
RED1 = MIN(D_PARAMETER1[PARAMETER])/100 //(取筛选器选中的值,其它颜色同样写法)
COLOR = IF(SELECTEDVALUE(T_FACT[Audit_Result])<>"",//这块判断哪些数据需要改变颜色
SWITCH(TRUE(),[Others Result]>[RED1]||[Others Result]=[RED1],"#FF0000" ,
[Others Result]>[YELLOW2]||[Others Result]=[YELLOW2],"#FFBE00",
[Others Result]>[BULE3]||[Others Result]=[BULE3],"#5B9BD5",
[Others Result]>[GREEN4]||[Others Result]=[GREEN4],"#92D050" )
)//给我们的表格改变颜色,这块的DAX跟我之前写的switch改rgb是一样的逻辑,我就不多说了。如果有的小伙伴是需要改变逻辑值也是同样的计算逻辑。
上实现效果:
总结:其实这个图做出来还有一个小BUG,比如筛选器我设置的大于等于,这就会显示出来两个框,我把另一个框隐藏了,但是如果用户不小心点到了筛选器,那就弹出来极尴尬。这里尽量让用户用ENTER跳出吧。这个后面我要多多优化一下。