美文网首页
利用DAX实现动态显示图表标题

利用DAX实现动态显示图表标题

作者: PowerPivot工坊 | 来源:发表于2020-07-14 15:32 被阅读0次

小伙伴们好啊,今天为大家分享两个通过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(,[,<Delimiter>][,<OrderBy_Expression>[,[<Order>][,<OrderBy_Expression>[,[<Order>][,...]]]]])

该函数本质上是一个迭代器,前两个参数是必选参数,后三个为可选参数。一参指定一张表,二参指定为一参中的表的每一行计算的表达式,三参指定连接的符号。第四第五参数省略时,用第三参数逐行连接第二参数计算结果。

第四参数指定对二参计算结果排序的表达式,第五参数指定第四参数的排序方式(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相关文章、资讯,欢迎小伙伴儿们转发分享~

相关文章

  • 利用DAX实现动态显示图表标题

    小伙伴们好啊,今天为大家分享两个通过DAX动态显示标题的案例。 案例一: 一起看下效果图: 标题可以根据切片器中的...

  • 利用DAX实现对图表动态的配色

    假设分析的是某产品在几个城市的环比增长率,用柱形图展示如下, 为了更直观的看到增长情况,利用红黄绿颜色来标记不同的...

  • 几种可视化数据分析图表的使用

    图表简洁大方、一目了然,利用图表工具就能轻松实现,是数据分析中常采用的方式。今天利用在雀书无代码平台搭建的图表来介...

  • 应用技巧七:奇妙的动态图表制作

    动态图表是利用Excel的函数、名称、控件等功能实现的交互展示图表。方便用户根据自己所需选择所要展现的图表,能够突...

  • PowerBI DAX函数:UNICHAR

    周末分享:DAX函数卡片 DAX中的日期函数:UNICHAR, 返回数值引用的UNICODE字符,语法如下: 利用...

  • highcharts

    1.调用highcharts 2.设置图表类型 3.设置图表标题 4.设置图表副标题

  • PowerBI DAX函数:SUMMARIZE

    周末分享:DAX函数卡片 DAX中最强大、最好用的函数之一:SUMMARIZE, 语法如下: 利用这个函数可以轻松...

  • Power BI如何按多字段排序?

    ​目前PowerBI不支持按多个字段排序,虽然这个需求很普遍,这里利用DAX提供一个变通的实现方式。 模拟数据如下...

  • 2020-05-12echarts柱状图配置

    //定义图表optionvar option = {//标题,每个图表最多仅有一个标题控件,每个标题控件可设主副标...

  • 图表标题处理(ggplot2)丨数析学院

    问题: 在R中,要如何设置图表的标题? 指南: 首先我们构建一个无标题的图表: 给图表加上标题: 未完待续:课程内...

网友评论

      本文标题:利用DAX实现动态显示图表标题

      本文链接:https://www.haomeiwen.com/subject/rvcfhktx.html