您可能知道,Power BI中的图表(以及许多其他可视化)具有可以设置为任何静态文本的标题。您可以通过选择图表,转到“可视化对象”窗格中的“格式”选项卡,然后更改“标题”部分中的属性(如下所示)来完成此操作:

但是,如果您希望图表标题根据所选内容而改变呢?例如,您可能正在使用切片器或过滤器来允许用户选择他们想要查看数据的月份。在这种情况下,您可能想要添加一个标题,显示实际上已选择了哪一月; 如果报告使用过滤器,或者要打印报告,这将特别重要。遗憾的是,内置的Title Text属性不能用于显示动态值,但在本文章中,小悦将向您展示如何使用DAX解决此问题。

以下是包含动态图表标题的报告的简单示例:

小悦创建了一个简单的测试数据集,其中只有两个字段一个月份,一个数量,该报告包含一个柱形图,其中显示按月份显示的数量。还有一个切片器,用户可以选择一个月或多个月,在顶部有一个标题,列出在切片机中选择并显示在图表中的日期名称。

解决方案分为两部分

第一部分是创建一个度量它将返回图表标题所需的文本,这依赖于DAX函数ConcatenateX()。这是衡量标准的DAX:

Title = "你选中了 "

& CONCATENATEX(

VALUES(Sheet1[月]),

Sheet1[月],

", "

)

这里,Values()函数用于返回包含所有选定月份的表,然后将其传递给ConcatenateX()以获取包含逗号分隔的日期名称列表的文本值。

第二部分涉及如何显示度量返回的在上面的报告中,小悦使用了卡片可视化,将上面的度量放入“字段”区域,然后关闭“格式”选项卡上的“类别标签”,以便仅显示度量返回的值,而不显示度量本身的名称:

这就是重新创建上述报告所需的全部内容。

对上述代码进行优化

我们可以将列表中的最后一个逗号更改为“和”,给每个月的值后面加一个月,而不是简单的以逗号分隔的月值列表:

此外,如果显示了所有月份,最好不显示非常长的月份列表,而是显示一些默认文本,如图:

这是用于完成所有这些操作的度量的DAX:

Title2 =

VAR SelectedDays = VALUES('Sheet1'[月])

VAR NumberOfSelectedDays = COUNTROWS(SelectedDays)

VAR NumberOfPossibleDays = COUNTROWS(ALL('Sheet1'[月]))

VAR AllButLastSelectedDay = TOPN(NumberOfSelectedDays-1, SelectedDays)

VAR LastSelectedDay = EXCEPT(SelectedDays, AllButLastSelectedDay)

RETURN

"你 " &

IF(NumberOfSelectedDays=NumberOfPossibleDays, "没有对月份进行筛选",

"选中了 " & IF(NumberOfSelectedDays=1, "", CONCATENATEX(AllButLastSelectedDay,'Sheet1'[月], "月, ") & " 月和 ") & LastSelectedDay & "月")


1.Power BI免费下载:http://www.yeacer.com/

Microsoft Power BI Desktop中文最新版:下载地址

2.欢迎加入的Power BI技术群,目前正在学习阶段,有兴趣的朋友可以一起学习讨论。

Power Data技术交流群:702966126 (验证注明:博客园Power BI)

更多精彩内容请关注微信公众号:悦策PowerBI


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,作者博客:https://www.cnblogs.com/yeacer/ 

如何使用DAX函数解决动态图表标题的更多相关文章

  1. INDIRECT函数实现动态图表的跨数据抓取

    涉及函数: indirect函数:通常有两种用法.直接指定单元格地址和隐式指定单元格地址.直接指定:=indirect("A4"),则会返回A4单元格所显示的内容.参数给定的既是字 ...

  2. EXCEL 2010学习笔记—— 动态图表

    今天梳理一下动态图表的相关内容,做一个简单的整理 关键的操作点: 1.插入动态控制器:开发工具->插入->表单控件 对控件进行修改  右键 设置控件格式->单元格链接 用来作为if ...

  3. 使用Visifire+ArcGIS API for Silverlight实现Graphic信息的动态图表显示

    原文:使用Visifire+ArcGIS API for Silverlight实现Graphic信息的动态图表显示 首先来看一看实现的效果: PS:原始的程序中更新曲线数据时添加了过渡的效果,具体可 ...

  4. ecshop 完美解决动态ip登录超时和购物车清空问题

    ecshop 完美解决动态ip登录超时和购物车清空问题 ECSHOP模板/ecshop开发中心(www.68ecshop.com) / 2014-05-06 前一段时间,ECSHOP开发中心的一个客户 ...

  5. 用Chart控件绘制动态图表

    进行程序设计时,选用一个合适的ActiveX控件,有时可大大减少编程工作量.ActiveX 控件(又称OCX)基于COM技术,作为独立的软件模块,它可以在任何程序设计语言中插入使用.本文仅以VC++为 ...

  6. C++学习之路—多态性与虚函数(一)利用虚函数实现动态多态性

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 多态性是面向对象程序设计的一个重要特征.顾名思义 ...

  7. mbos之动态图表设计

    前言 所谓,一图胜千言.人脑有80%的部分专门用于视觉处理.而随着数据时代的全面来临,我们自然有必要将数据转化为图形与图表. Mbos是一个快速,稳定的云端轻应用开发平台.帮助企业快速开发移动应用,加 ...

  8. python函数的动态传参.作用域与命名空间

    一.动态传参1.*表示动态传参. 可以接受所有的位置参数传参的时候自动的把实参打包成元组 交给形参 def chi(*food): print(food) chi() # 动态传参可以不传参数 chi ...

  9. python 函数的动态参数 命名空间,作用域以及函数嵌套,global和nonlocal (重点)

    *** 坚持坚持,即使你不太强*** 1.函数的动态传参 2.函数的命名空间及作用域 3.函数嵌套 4.global和nonlocal关键字 一.函数的动态传参 1. *args: 位置参数动态传参, ...

随机推荐

  1. python中RabbitMQ的使用(路由键)

    1.简介 当我们希望每个接收端接收各自希望的消息时,我们可以使用路由键,此时交换机的类型为direct. 2.工作原理 每个接收端的消息队列在绑定交换机的时候,可以设定相应的路由键. 发送端通过交换机 ...

  2. [NOIP 2015TG D1T3] 斗地主

    题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...

  3. 在div中放一个相同大小的svg,实际显示的位置svg偏下

    svg默认display为inline,改成block即可与div完全重合.

  4. IDEA如何导入一个web+maven以及如何运行项目

    IDEA如何导入一个web+maven以及如何运行项目 然后就可以运行你的maven项目了....

  5. 洛谷U36590搬书

    题目背景 陈老师喜欢网购书籍,经常一次购它个百八十本,然后拿来倒卖,牟取暴利.前些天,高一的新同学来了,他便像往常一样,兜售他的书,经过一番口舌,同学们决定买他的书,但是陈老师桌上的书有三堆,每一堆都 ...

  6. 数组Array.sort()排序的方法

    数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...

  7. Linux查看用户属于哪些组/查看用户组下有哪些用户

    一.关于/etc/group格式的讨论 在说/etc/group格式的时候,网上很多文章都会说是“组名:组密码:组ID:组下用户列表”,这说法对了解/etc/group格式是没问题的,但如果碰到“查看 ...

  8. Oracle 如何将“26-9月 -17 06.46.00.000000000 下午”字符串转换成标准日期格式

    今天,在读取日期格式数据时,出现这样的格式“26-9月 -17 06.46.00.000000000 下午”,在网上找了一下, 这个也是oracle的一种日期保存格式,数据都是日期类型,只是显示的结果 ...

  9. Win10系列:JavaScript 的 WinJS库

    WinJS 库是由 CSS 和 JavaScript 文件组成的.使用Visual Studio 2012新建一个JavaScript 的Windows应用商店的空白应用程序项目,在项目的引用管理器中 ...

  10. NOIP2018复赛获奖名单

    根据<CCF NOIP2018复赛获奖分数线及名额分配办法>,现将NOIP2018复赛获奖名单公告如下: 复赛提高组一等奖获奖名单 复赛提高组二等奖获奖名单 复赛提高组三等奖获奖名单 复赛 ...