使用自定义构建的切片器数据

时间:2015-05-06 09:15:41

标签: excel pivot-table powerpivot dax

我的excel power pivot中有一个数据集,格式如下

Week  Value
Wk15  10
Wk16  12
Wk17  20
Wk18  8
Wk19  50
Wk20  5

我想在Excel中创建一个数据透视表,其中Week为维度,Sum(Value)为度量。这很容易。

但是现在,我需要一个像

这样的自定义切片器
"Last 2 weeks"
"Last 4 weeks"

并选择它们应该将我的数据透视表的尺寸限制为仅相应的值。

比如说,如果我的数据透视表是一个柱形图,并且它最初显示所有6个值的6个条形图,那么从切片机中选择“过去2周”应该将其限制为仅最新的2周数据(考虑当前周是wk20,那么只显示wk19和wk20)。即只有2个酒吧。

如何在不使用任何宏的情况下执行此操作?任何人都可以解释一下。

提前致谢

2 个答案:

答案 0 :(得分:1)

类似于你要求的东西可以直接在数据透视表中完成,PivotFields包含Date数据类型,遗憾的是它不能使用Slicers完成,也不能从数据透视图中完成。 此外,您的请求有点复杂,因为您希望拥有的选项不是唯一的,因为它们相互交叉,即:“过去4周”包括“过去2周”。 在Autofilter和PivotFilters中完成此操作的方法是使用XlDynamicFilterCriteria。 Nevertheles,您的要求可以通过一些小的修改来实现:

1.使用以下列表在工作表中添加DataValidation单元格:

“0.All,1。本周,上周2周,上周3周,上​​周4周”

允许用户选择自定义视图

2.在工作表级别为名为“kWeekSelection”的DataValidation单元添加“名称”范围允许使用所选视图更新数据

3.使用以下公式将WeekSelection字段(列)添加到名为“!WkSel”的数据中:

= IF(LEFT(' WeeksChart'!kWeekSelection)= 0,"所有&#34 ;, IF(AND($ C9&LT = ISOWEEKNUM(TODAY()), $ C9> = SUM(1,-LEFT(' WeeksChart'!kWeekSelection),ISOWEEKNUM(TODAY())))," Wk.Sel"," N / A& #34))

此公式允许将此字段用作一种动态过滤器。它假定持有数据透视图的工作表的名称是“WeeksChart”

4.将字段“!WkSel”添加到数据透视表的“过滤器”部分

工作原理:从DataValidation中选择视图选项后,按{F9}计算工作簿,(建议使用计算手册),然后刷新来自数据透视表或数据透视图的数据

视图“0.All”允许使用其他字段来过滤数据透视表和数据透视图,其中包含与自定义视图不同的内容。

尽管如此,请注意,这不是生成这些pivottable \ pivotchart视图的最有效方式,使用宏可以大大提高结果的稳定性,效率和可信度。

答案 1 :(得分:0)

AFAIK,这是不可能的,特别是没有任何宏。如果您按周分组数据,请为周列插入切片器。

使用切片器的想法是,您可以使用Shift-Click选择要包含在数据透视中的周数,而不是拥有无穷无尽的预定义可能性,例如"最后2",&#34 ;最后3","最后4"等。