在 Excel 数据透视表中,如何显示属于某一类别但不属于其他类别的项目?

在 Excel 数据透视表中,如何显示属于某一类别但不属于其他类别的项目?

我的数据的简化版本:

item category number apples fruit 7 orange fruit 2 tomato fruit 3 tomato vege 9 zuchini vege 2 tomato vege 17 onion vege 1

使用 Excel 2010 中的数据透视表,我是否可以设置它,以便获取出现在蔬菜类别但不出现在水果类别中的项目列表?此示例中的输出将是:

zuchini onion

(它不包含番茄,因为番茄也出现在水果类别中)。提前致谢。

答案1

我认为您无法使用数据透视表来执行此操作,因为分组项目的筛选功能不够先进。或者至少不够自动化。

我能够使用 SQL 查询做到这一点。您可以使用 MS Query 和数据连接从 Excel 查询 Excel(只需将数据源指向您正在处理的文件)。

以下是最终结果: MS 查询结果

SQL 查询是:

SELECT `Sheet1$`.category, `Sheet1$`.item, `Sheet1$`.number
FROM `C:\Admin\StackExchange\sql on excel.xlsx`.`Sheet1$` `Sheet1$`
WHERE `Sheet1$`.item NOT IN 
(SELECT `Sheet1$`.item
FROM `C:\Admin\StackExchange\sql on excel.xlsx`.`Sheet1$` `Sheet1$` 
WHERE (`Sheet1$`.category<>'vege'))
AND `Sheet1$`.category='vege'

如果您需要更多帮助来设置数据连接,请告诉我。

答案2

我将使用 Power Query 插件来实现这一点。您可以从 Excel 表开始查询。

我将启动一个名为 Fruit 的查询,并根据 category = fruit 进行过滤。然后,我将启动另一个名为 Vege 的查询,并根据 category = vege 进行过滤。然后在 Vege 查询中,我将添加一个 Merge 命令,使用 Item 列连接到 Fruit 查询,保留不匹配的行。然后,我将使用 Expand 命令从 Fruit 查询中添加一个列,例如 Item。然后,我将根据该新列进行过滤,仅保留 Null 行。

以下是 Power Query 合并和扩展的入门指南:

http://office.microsoft.com/en-au/excel-help/merge-queries-HA104149757.aspx?CTT=5&origin=HA103993872

答案3

要回答这个问题,首先让我们看一下典型的数据透视表。这是根据数据生成的表,也是数据透视表字段列表。要执行您要的操作,请转到数据透视表字段列表,在看到类别的地方将光标放在该位置,然后您将在右侧看到一个小的倒三角形。单击三角形。这将打开一个带有筛选选项的窗格。在窗格底部单击顶部框,有效地取消选中所有选项,然后搜索您想要的选项...在本例中,单击西葫芦和洋葱。

希望这对你有帮助并且玩得开心!

相关内容