希望疫情早点结束,希望大家都好好的。
休假这几天,突然有一天,用户日增量到了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,不过数据逻辑走向,和如何汇总,分组还是可以参考的。
谢谢你能看到这里。不错哦~~记得关注分享哦!