您可能知道,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. MySQL_插入更新 ON DUPLICATE KEY UPDATE

    平时我们在设计数据库表的时候总会设计 unique  或者 给表加上 primary key 的限制条件. 此时 插入数据的时候 ,经常会有这样的情况: 我们想向数据库插入一条记录: 若数据表中存在以 ...

  2. 一些input用法

    //设定选中范围someInput.setSelectionRange(0, 2); //只读<input type="text" value="2" r ...

  3. 第一讲(3)osgearth编译

    前题条件完成osg 3.0的编译Step 1 下载osgEarth 2.1.1https://github.com/gwaldron/osgearth/downloads------------> ...

  4. 2015-09-22 css2

    6.块元素和行内元素 1. 块元素特点:默认显示在父标签的左上角 块级元素默认占满一行(占满整个文档流) 常见的块元素:p,h1--h6,ul li, ol li,div,hr,table. 2.行内 ...

  5. [LeetCode] 43. Multiply Strings ☆☆☆(字符串相乘)

    转载:43. Multiply Strings 题目描述 就是两个数相乘,输出结果,只不过数字很大很大,都是用 String 存储的.也就是传说中的大数相乘. 解法一 我们就模仿我们在纸上做乘法的过程 ...

  6. redis的文件事件

    redis的文件事件:即与io相关的事件. /* File event structure */ typedef struct aeFileEvent { int mask; /* one of AE ...

  7. tls 流量画像——直接使用图像处理的思路探索,待进一步观察

    代码,示意了一个tls的数据内容: import numpy as np import matplotlib.pyplot as pyplot # !!! If on the server, use ...

  8. Latex常用数学符号(转)

    http://blog.sina.com.cn/s/blog_642075770100u0np.html Latex常用数学符号(转) 1.指数和下标可以用^和_后加相应字符来实现.比如: 2.平方根 ...

  9. centos7.0 64位系统 安装PHP5.3 支持 nginx

    1  安装PHP所需要的扩展 yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel curl cur ...

  10. bzoj1261

    题解: 看到了树 很明显就是树形dp吗 然后随便yy一下方程就好了 代码: #include<bits/stdc++.h> using namespace std; int n,j; ], ...