您可能知道,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. CF-877E-线段树+哈希

    http://codeforces.com/problemset/problem/877/E 给出一颗有根树,没个节点上有一个值0/1,有两种操作,一个是选中一个节点,对他所对应的那个子树上所有节点的 ...

  2. linux平台的oracle11201借用expdp定时备份数据库

    备份脚本如下: #!/bin/bashexport ORACLE_BASE=/data/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db ...

  3. java 类变量初始化顺序

    假定有一个类定义如下: package com.zhang; public final class Girl { // static代码块1 private static String sex = & ...

  4. Windows Server 2003添加防火墙策略教程

    1.开始--控制面板--Windows防火墙 2.启用 选择启用即启动防火墙 3.添加例外 常常启用防火墙,还是希望某端口能被某些IP所访问,而防火墙默认是禁止所有IP访问本机的所有端口的,此时我们就 ...

  5. e2e 测试 出现的错误

    每次开始学习vue的新知识时,总在环境这一块出现很多坑.这次我来记录一下,我在搭建vue e2e测试框架是踏过的坑吧. 我们都只知道,使用vue init webpack 项目名字<项目名字不能 ...

  6. 正则表达式test()和exec()、 search() 和 replace()用法实例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 从零开始学习Vue(四)

    这里引入一个概念SPA(single Page Application), 接着上次的例子,我们在页面底部做了一个Tab的菜单,点击不同的按钮应该是显示不同的内容. 按传统的MVC的思维,我要在Con ...

  8. Jquery如何禁止鼠标右键菜单

    jquery中使用contextmenu事件,如果返回true,则允许右键菜单:如果返回false,则禁止右键菜单 导入文件 <script type="text/javascript ...

  9. windbg 定位崩溃问题

    三板斧如下: 使用windbg打开dump文件,设置好对应进程的 pdb 文件(这个很关键.为了避免releas优化导致符号文件错乱,我发布的所有                      relea ...

  10. laravel模型中设计使用单选按钮的方法:

    模型中写入: const SEX_UN = 10;//未知: const SEX_BOY = 20;//男 const SEX_GRIL = 30;//女 public function sex($i ...