1. 遇到的问题:

在Excel中,用PivotTable来做数据报告展示:

问题1:在同一个Sheet页里,多个PivotTable如何实现同步刷新?

问题2:在不同Sheet页之间,多个PivotTable如何实现同步刷新?

2. 前提介绍

在同一个Sheet页里面,有两个PivotTable,数据源在同一个模型中,维度相同,由于种种原因(不同的度量值等等,在这里不再深究为什么分开,只谈分开之后如何处理),需要分开两个PivotTable显示。

3. 数据解释

如上图所示,例如第一个PivotTable的数据是每个月的实际发生数据,每个月会保存一版月度最终版本数据;第二个PivotTable是全年的预测数据。

4. 需求

需要查看不同版本的实际月份时,在同一年全年预测数据不变的;同时切换到不同年份的数据版本时,第二个PivotTable的年度预测数据需要随之显示成当前年的预测数据。

5. 问题现象

如上图所示,当使用过滤器(Filter)进行数据版本切换时,第二个PivotTable是没有随之发生联动的;也就是说第一个PivotTable的过滤器的作用域只是自己的PivotTable。

6. 解决办法

使用切片器(Slicer)进行同步刷新多个PivotTable

1)      切片器位置

ANALYZE 选项卡中,Filter组中。

2)      点击【Insert Slicer】来插入一个切片器

3)      在弹出的窗口中,会显示当前数据集使用的维度和事实;也可以点击[全部]来切换到全部的维度和事实。

在这里,我们选择使用DIM_MONTH_VERSION来作为切片器的筛选条件。

4)      点击OK,切片器创建成功

注:

黑色维度:表示在事实表中存在此维度数据,如201512、201608、201612;

同理,灰色维度:表示在事实表中不存在此维度数据,如201501等等。

5)      创建成功之后,依然发现两个PivotTable没有同步数据。

第二个PivotTable的MONTH_KEY筛选器还是All.

6)      此时,我们需要对切片器的作用域进行设置。因为在创建切片器时,选中了其中的一个PivotTable,所以默认的作用域就是当前PivotTable。

在切片器上,点击鼠标右键,选择【Report Connections…】

7)      会发现在当前Sheet2页中,只有PivotTable1 (第一个PivotTable)被选中了。为了把PivotTable2加入到切片器的作用域中,把PivotTable2也选中;然后OK。

8)      然后,我们看到第二个PivotTable的MONTH_KEY的Filter值也变成了201512。

这里并不是手动在第二个PivotTable选择MONTH_KEY的结果;为了澄清结果,把两个PivotTable的MONTH_KEY的Filter去掉

点击切片器,切换到201608数据版本。

9)      同理,可以设置多个PivotTable数据同步,即使不在一个Sheet页里面,也是可以设置生效的,因为在切片器的Report Connections属性卡里面列出来当前Excel文件所有的PivotTable.

7. 切片器其他属性介绍

在切片器的右键属性中

1)      刷新(Refresh)


刷新切片器和切片器作用域内所有PivotTable。

刷新切片器的意思是:如果在事实表中插入了201501版本的数据,那么点击刷新之后,会在切片器中把201501显示成黑色,来表示事实表中事实数据存在;即使只有一个事实表中存在,也会表示出来。

2)      排序功能

从小到大,从大到小,按照数据源顺序。比较简单,可以点击看不同结果。

3)      清空筛选条件…(Clear Filter from…)

会选中所有切片器中维度的所有数据。然后变灰,如果想再次选择数据版本,只需点击切片器数据版本即可。

4)      报表连接…(Report Connections…)

如上示例所示,对当前Excel文件的所有PivotTable的设置切片器的作用域。

5)      移除…(Remove…)

即删除当前切片器

6)      组合(Group)

如果有多个切片器,可以对某几个或者全部切片器,进行组合,以方便显示和拖拽。

7)      前置显示/后置显示(Bring to Front/Send to Back/)

设置切片器显示的层次。

8)      指定宏…(Assign Macro..)

关联VBA脚本,来设置点击切片器或者切片器发生变化时,需要触发的事件;处理的逻辑需要在VBA中开发完成。

9)      尺寸和属性(Size and Property…)

根据需要设置布局位置的外观。

10)   切片器设置(Slicer Setting)

  • 名称(Name): 给切片器命名。在文件中存在多个切片器时,可以以名字来区分。
  • 显示头部(Display header):是否显示切片器表头。

   不显示

  

显示

  • 标题(Caption)

表头位置显示的标题内容。方便用户理解。

例如:以上示例中,可以命名成Month Version

  • 排序(Item Sorting)

同排序功能

  • 显示筛选(Item Filtering)

是否需要隐藏没有数据的维度

例如:

  • 如果选择隐藏没有数据的维度

  

  灰色维度数据即不显示

  

  • 如果选择显示没有数据的维度

直观显示没有数据的维度(Visually indicate items with no data)和在最后显示没有数据的维度(Show item with no data last)是默认选择的。

实际显示效果,可以尝试取消选择进行测试。

8. 使用注意

1)      切片器就是一个特殊的筛选器,能扩大筛选器的作用域

2)      如果把切片器和筛选器同时设定,它们之间的是一致的。

Pivot Table系列之切片器 (Slicer)的更多相关文章

  1. Pivot Table系列之展开/折叠用法 (Expand/Collapse)

    1.遇到的问题: PivotTable中本来已经展开的维度的Hierarchy(层次结构),在切换切片器的数据集时,层次结构就折叠在一起了:没有按照之前的方式展开显示. 2.在做成PivotTable ...

  2. 2018.03.29 python-pandas 数据透视pivot table / 交叉表crosstab

    #透视表 pivot table #pd.pivot_table(data,values=None,index=None,columns=None, import numpy as np import ...

  3. (三、四)Superset 1.3图表篇——透视表-Pivot Table

    本系列文章基于Superset 1.3.0版本.1.3.0版本目前支持分布,趋势,地理等等类型共59张图表.本次1.3版本的更新图表有了一些新的变化,而之前也一直没有做过非常细致的图表教程. 而且目前 ...

  4. Open xml 操作Excel 透视表(Pivot table)-- 实现Excel多语言报表

    我的一个ERP项目中,客户希望使用Excel Pivot table 做分析报表. ERP 从数据库中读出数据,导出到Excel中的数据源表(统一命名为Data),刷新Pivot table! 客户还 ...

  5. Use Excel Pivot Table as a BI tool

    Normally, we have created a table, view in database or cube in SSAS, user can use Excel as a BI tool ...

  6. Dynamic Pivot table wizard SQL Server

    原文 http://www.gyurcit.hu/pivot.html Dynamic Pivot table wizard This stored procedure generate dynami ...

  7. EXCEL Pivot table manipulate

    Add filter For the Demo time,I would like to filter out the products which not in Red and Black colo ...

  8. 关于ComponentOne For WinForm 的全新控件 – DataFilter数据切片器(Beta)

    概述 数据切片器在电子商务网站上很常见 - 它们可以帮助用户快速过滤所选商品,并且所有过滤选项都可以在一个地方使用,通常包含核心控件类型为:清单,范围栏和单选按钮等.在ComponentOne For ...

  9. Pandas 基础(10) - 用 Pivot table 做格式转换

    Pivot allows you to transform or reshape data.Pivot 可以帮助我们改变数据的格式, 下面两个例子可以作为参考: 下面来看下具体实现, 首先引入一个 c ...

随机推荐

  1. Linux 多个JDK的版本 脚本切换

    这里是在CentOS 系统下配置多个版本之间的切换 1.到官网下载jdk7和jdk8 地址:http://www.oracle.com/technetwork/cn/java/javase/downl ...

  2. 深入分析Java的String类的方法与特点

    字符串是任何编程语言都必须支持的变量类型,有些编程语言是直接提供了原生的变量类型,有些编程语言则使用语法特性以 SDK 的形式提供支持.在Java编程平台中,对字符串的支持使用了后者的形式,就是通过在 ...

  3. JavaScript基础之注释,类型,输出,运算符

    JavaScript是一种依托于网页为宿主的脚本语言,JavaScript是一门非常强大的语言,尤其对于web端,用途广泛,好用,偏向于操作网页,可以操作网页中的任何一个元素,JavaScript的缺 ...

  4. redis学习(1)--- NoSQL介绍

    一.NoSQL介绍 1.什么是NoSQL NoSQL = Not Only SQL 非关系型数据库 2.为什么用NoSQL High performance - 高并发读写 Huge Storage ...

  5. 11.并发包阻塞队列之LinkedBlockingQueue

    在上文<10.并发包阻塞队列之ArrayBlockingQueue>中简要解析了ArrayBlockingQueue部分源码,在本文中同样要介绍的是Java并发包中的阻塞队列LinkedB ...

  6. 对象的序列化与反序列化-serialize与unserialize

    1. 简介 对象的序列化的基本概念: 所谓对象的序列化,就是可以把某个对象的属性名称,属性值, 属性类型,类名 以字符串的形式保存到文件中,在你需要的时候可以重新恢复. 对象的反序列化的基本概念, 是 ...

  7. celery_01 _celery安装启动

    简介:celery是一个分布式队列的管理工具,提供了快速管理和操作分布式任务队列的一些方法的框架 特点:1.celery易于使用和维护,不需要进行很复杂的配置,简单的celery例子: from ce ...

  8. JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构

    JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...

  9. Linux下pecl命令无法执行的解决

    pecl install swoole 提示如下错误:bash: pecl: command not found执行yum install php-pear生效

  10. 【Android Developers Training】 0. 序言:构建你的第一个应用

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...