如何通过相关表在Powerpivot表中find唯一类别的集合

说我有两个表:

Item | quantity ---------------------- apples | 7 orange | 2 tomato | 3 tomato | 9 zuchini | 2 tomato | 17 

和:

 Item | Type -------------------- apples | fruit orange | fruit tomato | vege zuchini | vege chair | furniture 

使用PowerPivot,我想显示第一个表中的所有“types”。 换句话说,第一张桌子里面没有“椅子”,所以结果应该是:

 Types ----- fruit vege 

因此,我将前两个表拖到PowerPivot表中,在两个“Item”字段之间build立连接。 但是,当我创build一个数据透视表(由PowerPivot表支持)与一个单一的列,“types”,我得到:

 Types ----- fruit furniture 

我如何才能获得第一个表中的项目的“types”?

当您在PowerPivot窗口中定义关系并在任何PowerPivot表上使用PowerPivot时,默认情况下都会执行FULL OUTER JOIN 。 直到你开始使用其他表列作为

尝试将数量拖放到区域,您将看到PowerPivot将过滤所有没有数量分配的types (它将过滤家具 )。

如果由于某种原因只需要所有types的值列表,并且不能使用任何基于值的filter或切片器,则必须添加一个新的计算列:

在这里输入图像说明

我已经把它命名为Type(如果存在于T1中) 。 公式很简单(如果使用加载(数百万)数据行,也应该相当快速。

 = IF ( COUNTROWS ( FILTER ( RELATEDTABLE ( Table1 ), Table1[Quantity] > 0 ) ) > 0, [Type], BLANK () ) 

这个公式做的是简单的行计数 ,但只有那些数量大于0的值。如果是这样,那么将会出现[Type]列值,如果不存在,值将是空的( BLANK ) t显示在数据透视表中。

您可能仍然需要使用表格filter,但现在将列出(空白)值,这将允许您非常容易地隐藏没有数量的types。

希望这可以帮助!