我可以在 Excel 2010 数据透视表中对列总数百分比小于 1% 的所有行进行分组吗?

我可以在 Excel 2010 数据透视表中对列总数百分比小于 1% 的所有行进行分组吗?

根据 2011 年每个项目记录的工作时间,我的当前数据如下:

Proj. Hrs %
A     15.6%
C     7.3&
...
X     6.1%
D     5.3%
Q     1.8%
F     1.6%
H     0.7%
Total 100%

我想将一些较小的项目分组为一个条目,其中较小的项目是我所投入时间不到 2% 的项目。

Proj. Hrs %
A     15.6%
C     7.3&
...
X     6.1%
D     5.3%
Rest  4.1% <<< Group of all proj < 2% with total % for all combined
Total 100%

我该怎么做?我是否必须在创建数据透视表之前更改数据,还是可以使用已有的数据透视表来执行此操作?

答案1

1) 首先,您可以通过在项目行标签上创建一个组来手动完成此操作。只需选择 2% 以下的项目,然后右键单击“分组依据”。

2) 其次,如果您想要更动态的内容,一种方法是在数据透视表的 % 行标签上创建一个组字段。不幸的是,这要求 % 列来自您的源数据,因为数据透视表无法对其自己的汇总值进行分组。

因此,添加一个公式来计算源数据中的百分比将使此方法有效,如下所示。一个组将被称为 >2% 并保持展开,而 <2% 组将折叠。

在此处输入图片描述

如果计算源数据中的百分比太麻烦,另一种选择是在中间数据透视表上创建数据透视表,但这会带来一系列新的问题。

答案2

在进入数据透视表之前,您必须先进行求和组。

实现这个功能最简单的方法可能是使用 sumif 公式 - 如下所示:
=SUMIF(C5:C15,"<=0.02",C5:C15)

这将为您提供一个单元格,其中包含任何内容 = 至或小于 2%。使用 IF 函数在新列中过滤百分比。使用您的示例,如下所示:
=IF(C5>0.02,C5,0)

所以现在你的源范围看起来像:

项目小时数 % 小时数2%
A 15.60% 15.6%(这些是 IF 语句。)
中 7.30% 7.3%
十 6.10% 6.1%
德 5.30% 5.3%
问 1.80% 0.0%
氟 1.60% 0.0%
氢 0.70% 0.0%
乙 24.20% 24.2%
男 15.00% 15.0%
杰 20.40% 20.4%
价格 2.00% 0.0%

剩余 6.1%(这是 sumif 语句)

设置数据透视表以包含源数据范围中的“其余”行,并且过滤器不在数据透视表中显示 0 值。

您可能需要进行一些调整 - 自然排序会将值所在的位置显示为“休息”。在上面的数据中,“休息”位于除项目 X 之外的所有内容之后,该项目的值也为 6.1%。您可以调整命名约定以解决这个问题。

相关内容