小伙伴们好啊,今天为大家分享两个通过DAX动态显示标题的案例。
案例一:
一起看下效果图:
标题可以根据切片器中的选择动态显示,当选择的月份超过4个时,显示为“**等月份的销售额”,度量值如下:
TitleDynamic_1 =
VAR DistinctMonths =
DISTINCTCOUNT ('Date'[MonthNumber] ) --切片器中选择的月份的不重复计数
VAR MaxMonthsToShow =4--定义显示的月份数量
RETURN
IF (
DistinctMonths > MaxMonthsToShow,
CONCATENATEX (
TOPN (
MaxMonthsToShow,
VALUES ('Date'[MonthNumber] ),
'Date'[MonthNumber], ASC
),
'Date'[MonthNumber],
", ",
[MonthNumber] --指定排序的表达式,第五参数省略默认升序
) &"等月份销售额", --当切片器中选择的月份数量超过需显示的月份时,连接前4个月份,并连接字符串"等月份销售额"
CONCATENATEX (
VALUES ('Date'[MonthNumber] ),
'Date'[MonthNumber],
", "--第四第五参数省略
) &"月份销售额"--当切片中选择的月份数量小于需四按时的月份时,连接各月份
)
理解该度量值的关键在于熟练使用CONCATENATEX函数,语法如下:
CONCATENATEX(,[,
][, [,[ ][, [,[ ][,...]]]]])
该函数本质上是一个迭代器,前两个参数是必选参数,后三个为可选参数。一参指定一张表,二参指定为一参中的表的每一行计算的表达式,三参指定连接的符号。第四第五参数省略时,用第三参数逐行连接第二参数计算结果。
第四参数指定对二参计算结果排序的表达式,第五参数指定第四参数的排序方式(DESC/ASC):第五参数省略时,默认根据第四参数表达式的结果对第二参数升序排序。
配合注释,相信大家回过头去看这个度量值,会很好理解。值得注意的是,TOPN的第四参数指定为升序,获取切片器中选中状态的前4个月份。如果直接连接的话,会按照降序连接各个月份。这个时候CONCATENATEX的第四参数就派上了用场。小伙伴们可以尝试把第四参数改为度量值Sales Amount,按照选中的月份销售额高低动态显示标题,加深对最后两个参数的理解。
案例二:
老规矩,还是先看效果图:
当切片器中选择的月份是连续的时候,则用“-”连接,省略中间的月份。如不连续,则用“,”连接后面的月份。实现该效果的度量值如下:
TitleDynamic_2 =
VARSelectedMonthNumbers =
VALUES ('Date'[Month Number] ) --切片器中选择的月份
VARMonthAndNames =
SUMMARIZE ('Date','Date'[Month Number],'Date'[Month] ) --指定CONCATENATEX的第一参数,返回需迭代的表
VARResult =
CONCATENATEX (
MonthAndNames,
VARCurrentMonthNumber ='Date'[Month Number]
VARCurrentMonthName ='Date'[Month]
VARIsNextSelected = CurrentMonthNumber +1IN SelectedMonthNumbers --下一个月份是否处于选中状态
VARIsPrevSelected = CurrentMonthNumber -1IN SelectedMonthNumbers --上一个月份是否处于选中状态
RETURN
IF(
NOT ( IsPrevSelected && IsNextSelected ), --当前月份的上下两个月份都被选中,返回第三参数空,否则执行第二参数
CurrentMonthName &IF( IsNextSelected ,"-",", ") --下一个月份被选中用当前月份连接"-",未选中连接","
), --根据第一参数计算连接的表达式
"",
'Date'[Month Number] --二参计算结果按月份升序排序
)
RETURN
LEFT ( Result, LEN ( Result ) -2)
有点烧脑。方便小伙伴们理解,假设我们在切片器中选择的月份是2,3,7,8,9,11月份。
日期表被筛选后,SUMMARIZE返回筛选后日期的Month和MonthNumber,公式计算的逻辑如下:
因为我们是使用","连接的,并且在最后的November的地方会多出一个",",所以通过LEFT函数修正一下,去掉多余的内容,便实现了最终的的效果。
今天的分享就到这里,我们下期再见。
* PowerPivot工坊原创文章,转载请注明出处!
延伸阅读:
使用DAX控制切片器显示
DAX驱动可视化--使用DAX自定义KPI图
Power BI可视化 | 自定义可视化页面主题
一文了解Power BI中DAX公式编辑器的常用快捷键
详细教程 | Power BI网关配置以及门户的计划刷新
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。
长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~