DAX基础13-根据字段列里的内容改变相应单元格的背景色

浏览: 2116

希望疫情早点结束,希望大家都好好的。

休假这几天,突然有一天,用户日增量到了20几个,我很开心。er,和那些大公众号比,当然不算什么,不过对我来说,真的是小概率事件了。我的用户总共也没有多少人。激动的我抓紧学习了几天,发现没什么收获,没什么想写下来的。然后我就不学了。哈哈哈,不过我有时候做项目的时候也会翻自己的文章做参考。总的来说,我给自己记笔记的初衷总算还是实现了。

需求:在Azure Analysis Service做数据源的报表中,Survey Status Code中,Due 背景色要显示黄色,Overdue背景色要显示成红色,显示其他内容时背景色不变。

思考:关于数字measures的条件块变色这个,之前DAX分享10: 在图表中高亮突出显示数据或对比趋势写过。但是这里的需求是根据字段里的内容来改变内容的背景色。

AAS做数据源和其他的直接取得的数据源类似的。只是在AAS数据源的Power BI报表里,只能创建measures不能创建Calculated Column。先把问题简单化,只要在Power BI的表中,能实现出根据不用的列数据来改变背景色,就可以应用到AAS数据源的报表中。最好新建的是measures,这样就不用修改AAS的模型了。

测试:

创建一个table,内容如下:

问题模拟,就是如果Category显示的是“Mix”就显示蓝色,内容显示“Urban”就显示成橘黄色,其他内容的就显示原来的背景。

创建一个category color,具体内容如下。

category color =

SWITCH(

MAX('Product'[Category]) ,"Mix",1

,"Urban",-1,0

)

为什么用MAX呢?其实你用Min也可以的。因为对于这个table来说,MAX('Product'[Category]) 是针对每一条product的category来计算的,所以无论是min或者max,他的结果是一定的,也是相同的。他是对于自己做最大最小的比较,还是他自己。

SWITCH函数就是相当于if嵌套if那种。如果是Mix,赋值1,如果是Urban就是-1,其他的就是赋值0.对于每一行的结果都是一定的。即使我这里是measures,但是其实他本身就是他的计算结果。而且我主要是用来控制后面的条件块。

点中table,然后选中小刷子来调整格式。condition formatting,选中要改变的column的名称,“Category”。打开Background color的开关。

点中on,会自动跳到下面的内容。

得到结果如下:

还可以。

如果是多种情况怎么办呢?比如内容如果是“Youth”编程黄色。

er,“Format by”的地方换一下就好了。

category color =

SWITCH(

MAX('Product'[Category]) ,"Mix",1

,"Urban",-1,"Youth",2,0

)

结果如下:

应用到需求,最后在Survey Code维度中新建了一个measures,内容如下:

Survey Visible Due Status Color =

SWITCH(

MAX('Survey Due Status'[Survey Visible Due Status]) , "Due" ,1 ,"Overdue",-1,0

)

大多都很简单。或许还有更简单的方法,不过我现在想到的就是这个了。

嗯,不知道有没有熟悉sql query的朋友,在学PowerBI的时候会想到,如果能获取(generate)这个对应的visualization中的相关内容的SQL就好了。分析起来会简单很多。

点中视图View里面,勾选Performance Analyzer

然后出现Performance recording界面,点中Start recording。

切换你要观察的Power BI中的不同Tab页面。

这个控件的初衷是用来分析性能的。但是对于缓存部分处理的不好,所以我装了DAX Studio来分析性能,不过就我目前的项目来说,performance都还不错。控件里有个”Copy query“,但是得到的是直属的相关字段的query。

这个query也不是很我们熟悉的sql query,不过数据逻辑走向,和如何汇总,分组还是可以参考的。

谢谢你能看到这里。不错哦~~记得关注分享哦!


推荐 0
本文由 懒胖子 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册