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. OSS web直传 ajax方式 上传图片、文件

    部分js代码 send_request = function(){//这是从后台获取认证策略等信息. var htmlobj=$.ajax({url:root+"/service/polic ...

  2. Visual studio常用的code snippets

    作为全球第一的IDE,VS用起来自然相当的爽,当你在visual studio里敲出几个字母,能帮你生成一大段代码,省时省力又能装逼. 比如,你打一个 prop,然后按tab键,就能生成一个带get/ ...

  3. 深入研究React setState的工作机制

    前言 上个月发表了一篇 React源码学习--ReactClass,但是后来我发现,大家对这种大量贴代码分析源码的形式并不感冒.讲道理,我自己看着也烦,还不如自己直接去翻源码来得痛快.吸取了上一次的教 ...

  4. Vue2.0 从零开始--搭建环境

    简要:继项目空闲后,开始着手vue的学习;为此向大家分享其中的艰辛和搭建办法,希望能够跟各位VUE大神学习探索,如果有不对或者好的建议告知下:*~*! 一.什么是VUE? 是一种node.js框架,特 ...

  5. lvs之 lvs原理架构介绍

    一. 概念 lvs的术语: Router:GWIP vs:virtual server,director rs:real server CIP:client IP VIP:virtual server ...

  6. Vulkan Tutorial 21 Staging buffer

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Introduction 顶点缓冲区现在已经可以正常工作,但相比于显卡内部读取数据, ...

  7. 使用CoApp创建NuGet C++静态库包

    NuGet是微软开发平台下的包管理软件,使用它你可以非常方便的将一些第三方的库.框架整合进自己的项目中,省去了不少麻烦的配置过程.但是从官方文档上来看,貌似NuGet对C++的支持不是很好,并且在现阶 ...

  8. ELK-初识Elasticsearch

    第一篇:初识Elasticsearch 1.安装 Elasticsearch 要求 java8+的环境,推荐使用 Oracle 1.8.0_131版本的JDK.Java JDK的安装此处不做介绍.这里 ...

  9. Linux: 安装和启用firefox浏览器的java

    之前在linux服务器上浏览一个网页时必须启用java才可以,但是自己只是一个服务器的普通用户,并没有root权限,所以只能把java装在自己的目录下面,因此不能用rpm包,而必须从Oracal官网下 ...

  10. nodejs+websocket制作聊天室视频教程

    本套教程主要讲解了node平台的安装,node初级知识.node 服务器端程序响应http请求,通过npm安装第三方包,websocket即时通讯.聊天页面界面制作.拖动原理.拖动效果.遮罩效果.定位 ...