PowerBI开发 第十二篇:钻取
钻取是指沿着层次结构(维度的层次)查看数据,钻取可以变换分析数据的粒度。钻取分为下钻(Drill-down)和上钻(Drill-up),上钻是沿着数据的维度结构向上聚合数据,在更大的粒度上查看数据的统计信息,而下钻是沿着数据的维度向下,在更小的粒度上查看更详细的数据。举个例子,当前的粒度是月份,按照年份查看数据是上钻,而按照日期来查看数据是下钻,日期的数据是详细的数据,而每天的数据是高度聚合的数据。
我的PowerBI开发系列的文章目录:PowerBI开发
一,层次结构
钻取数据,离不开层次结构,最常用的层次结构数据是日期维度,日期维度是自然层次结构,下层的结点只有一个父结点,如下表所示:

在PowerBI的Report视图中创建Date Hierarchy,该层次结构由三个级别组成,从上至下依次是Year,Month和Date:

PowerBI没有内置层次结构切片,设计人员需要从Marketplace中下载自定义的HierarchySlicer,用于显示Date Hierarchy:

二,Chart级别的钻取
在同一个Chart上,通过钻取操作,导航到不同的层次结构上查看数据,
例如,如下数据是某数据仓库中包含的创建于2018年的所有Post的数据,

在Relationship视图中,通过CreatedDateKey和Date维度的DateKey关联起来,在Report视图中,通过Line Chart查看不同Date层次结构上Post数量,Line Chart的属性设置如下图所示:

默认的级别是顶层的Year,在该级别上,Line显示的数据是2018年的所有Post的总数,由于只有2018这一个年份,因此Line Chart只显示一个点。

通过下钻按钮(两个向下的箭头),导航到Month级别查看Post的数据,在该级别上,可以看到2018年的所有月份的Post数量和增长趋势:

上钻按钮是一个向上的箭头,可以从Month级别返回到Year级别。上钻和下钻是按照层次结构,逐层钻取的。
三,把钻取关联到其他图表
钻取过滤默认时启用的,钻取会对其他的图表(Visual)进行过滤,这就意味着,当你在一个Visual上进行钻取操作时,其他Visual上的数据也会被过滤。

三,钻透
钻透(Drillthrough)允许你在报表中创建一个Page,该Page(称作钻透Page)提供模型中单个实体的详细信息,然后在其他Page中引用该实体列,通过使用数据点(Data Point)从当前Page导航到钻透Page上,并把过滤上下文传递到钻透Page上。
过滤上下文分为钻透过滤器和Page级别的过滤器上下文,钻透过滤上下文是指拖放到DrillThrough中的字段。当启用 Keep all filters 时,PowerBI把当前Page中所有过滤器的上下文应用到钻透Page上;当禁用Keep all filters时,PowerBI只把钻透过滤器的上下文应用到钻透Page上。Keep all filters的默认设置是Off,不把当前Page级别的过滤器上下文传递到钻透Page。
当设置Keep all filters为On时,导航到钻透Page时,您可以从Drillthrough中查看到传递到钻透Page的所有过滤上下文。
钻透过滤的用法:钻透是通过相同的字段实现的,在设计钻透时,用户需要在钻透Page上设置钻透过滤的字段,源Page上的数据点(Data Point)也包含该字段。
1,类别钻透
设计人员可以在Fields中设置钻透过滤器,在钻透Page上把MonthKey字段设置为钻透字段,用作类别(Used as category)。

选中一个数据点(Data Point),该数据点的轴是MonthKey(用作钻透的字段),右击选中Drillthrough,导航到钻取Page(本例中是Page2),过滤器的上下文会被引用到钻透Page,用户看到的实体的详细信息是被过滤之后的数据。

2,度量钻透
度量钻透(Measure drillthrough)是指把独立或汇总数字列传递到钻透Page中,在把数字列用作类别或汇总时允许钻透。
例如,对PostID进行钻透,设置当对PostID进行聚合时允许钻透。

选中一个数据点(Data Point),右击选中Drillthrough,导航到钻取Page,从DRILLTHROUGH列表中查看所有传递到钻透Page的过滤上下文。

参考文档:
Power BI Desktop May Feature Summary
Power BI Desktop September Feature Summary
PowerBI开发 第十二篇:钻取的更多相关文章
- PowerBI开发 第十四篇:使用M公式添加列
PowerBI的查询编辑器使用Power Query M公式语言来定义查询模型,它是一种富有表现力的数据糅合(Mashup)语言,一个M查询可以计算(Evalute)一个表达式,得到一个值. 对于开发 ...
- PowerBI开发 第十五篇:Power BI的行级安全
Power BI支持行级安全(Row-Level Security,RLS)的权限控制,用于限制用户对Dashboard.报表和DataSet的访问.用户浏览的报表是相同的,但是看到的数据却是不同的. ...
- PowerBI开发 第十六篇:PowerBI Service基本概念
从总体上来看,PowerBI Service 有4个主要的构建模块,分别是dashboards.reports.workbooks 和 datasets,这四个模块都是目录,位于workspaces目 ...
- PowerBI开发 第十八篇:行级安全(RLS)
PowerBI可以通过RLS(Row-level security)限制用户对数据的访问,过滤器在行级别限制数据的访问,用户可以在角色中定义过滤器,通过角色来限制数据的访问.在PowerBI Serv ...
- Swift开发第十二篇——protocol组合&static和class
本篇分为两部分: 一.Swift 中 protocol 组合的使用 二.Swfit 中 static和class 的使用 一.Swift 中 protocol 组合的使用 在 Swift 中我们可以使 ...
- PowerBI开发 第十五篇:DAX 表达式(时间+过滤+关系)
DAX表达式中包含时间关系(Time Intelligence)相关的函数,用于对日期维度进行累加.同比和环比等分析.PowerBI能够创建关系,通过过滤器来对影响计算的上下文. 一,时间关系 DAX ...
- PowerBI开发 第十九篇:基于Page创建Tooltip
在PowerBI 报表中,常规的Tooltip是一段文本,当光标悬停在Visual上,Visual上方会自动显示Tooltip的文本.PowerBI 支持用户自定义内容丰富的Tooltip,用户通过创 ...
- Python开发【第二十二篇】:Web框架之Django【进阶】
Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...
- 解剖SQLSERVER 第十二篇 OrcaMDF 行压缩支持(译)
解剖SQLSERVER 第十二篇 OrcaMDF 行压缩支持(译) http://improve.dk/orcamdf-row-compression-support/ 在这两个月的断断续续的开发 ...
随机推荐
- LeetCode题解之Max Consecutive Ones
1.题目描述 2.问题分析 遍历一次数组,以每个1 为起点向后数,数到0 时比较当前1的个数和最大1 的个数,然后将遍历的起点放到当前0 的后面. 3.代码 int findMaxConsecutiv ...
- 在web中如何调整上传过的图片方向 (exif)
前提: 相机中拍的照片放到web上不会自动识别方向,如有些竖向显示的照片放到web上横向显示.这些照片在windows上是正确显示的.但是web不会自动旋转照片到正确方向.下面我们通过两种方法来实现这 ...
- SQL Server 全文索引的硬伤(转载)
本文关键字:SQL Server全文索引.CONTAINS.FREETEXT.CONTAINSTABLE.FREETEXTTABLE等谓词. 想象这样一个场景:在DataBase_name.dbo.T ...
- 全球首款完全开源的堡垒机,符合 4A 的专业运维审计系统Jumpserver
Jumpserver是全球首款完全开源的堡垒机,是符合 4A 的专业运维审计系统. http://www.jumpserver.org https://github.com/jumpserver/ju ...
- 乘风破浪:LeetCode真题_034_Find First and Last Position of Element in Sorted Array
乘风破浪:LeetCode真题_034_Find First and Last Position of Element in Sorted Array 一.前言 这次我们还是要改造二分搜索,但是想法却 ...
- 读高性能JavaScript编程 第四章 Conditionals
if else 和 switch && 递归 if else 和 switch 一般来说,if-else 适用于判断两个离散的值或者判断几个不同的值域.如果判断多于两个离散 ...
- CompletionService简讲
背景 最近在项目中看到太多后台task中使用Executor框架,提交任务后,把future都一个个加入到list,再一个个get这些future的代码. 这个的问题在于一方面没有时限,可能会被某些运 ...
- Redis系列一:reids的单机版安装
环境:VM+centos6+xshell 1.准备好linux的虚拟机,这里用的是centos6,具体方法百度 2.进入software目录,创建一个redis的目录来存放下载的redis包 cd s ...
- Invalid action class configuration that references an unknown class named [XX] .
多次遇到这个错误,难以解决,有时候出现,有时候没有,很神奇,今天发现了一点端倪,虽然说不上找到了所有导致这个bug的原因.至少,也是很主要的一种了. 其实,透过结果,如果debug用心,一行代码一行代 ...
- Kafka学习之路 (二)Kafka的架构
一.Kafka的架构 如上图所示,一个典型的Kafka集群中包含若干Producer(可以是web前端产生的Page View,或者是服务器日志,系统CPU.Memory等),若干broker(Kaf ...