使用 PowerPivot,如何查找仅属于一个类别的项目?以下是示例:
item category number obera f6 7 artois f7 2 obera f7 3 ella f6 9
如果我选择f6
,则此示例的输出将是:
ella
(它不包含 obera,因为 obera 也出现在 f7 类别中)。提前致谢。
编辑:我想要做的是针对每个类别(我有很多类别),显示仅出现在该类别下而不出现在其他类别下的项目。
答案1
我使用 Power Query 插件构建了一个解决方案。您可以从我的 OneDrive 下载它 - 它是文件Power Query 演示 - 仅属于一个类别的项目
以下是我如何构建它的描述:
使用 Power Query,我从 Excel 表中创建了一个查询(“表 1”)。我取消选中“加载到工作表”选项 - 这只是为了输入到下一个查询。
然后,我从同一个 Excel 表中创建了另一个查询(“表 1 多类别”)。在该查询中,我合并了“表 1”查询,并加入了 Item。然后,我从“表 1”扩展了 Item 和 Category 列。请注意,此时我增加了行数,涵盖了 Item 的所有组合。
然后我添加了一个自定义列“多类别”。公式如下:
[category] <> [NewColumn.category]
我已经加入了 Item,因此这会测试此项目是否有多个类别。然后我过滤了此列,只保留 TRUE 值。
然后,我添加了“分组依据”以按项目和类别进行分组,并获取“多类别”列的最大值 - 这适用于项目有 2 个以上类别的情况。
最后,我删除了“计算”列,并再次取消选中“加载到工作表”的选项 - 这只是为了输入下一个查询。
接下来,我创建了另一个查询(“Table1 final”),同样从原始 Excel 表开始。这次我合并了“Table1 多类别”查询,连接了项目和类别,并包括不匹配的行。
然后我扩展并重命名了“多类别”列,并将空值替换为 FALSE。此查询被传递到新工作表“多类别”上的新表中。
最后,我在“多类别”工作表上的新表上创建了一个数据透视表。“多类别”列会告诉您哪些项目存在于多个类别中。
显然,要达到这一点需要相当多的步骤。但是,由于 Power Query 编辑器是所见即所得的,因此每个步骤单独来看都非常简单且相当容易理解。这肯定比调试 VBA 代码更容易理解,而且比调试 Excel 公式好 100 倍。