如何在相关表中的Powerpivot表中找到唯一类别集

时间:2014-07-23 23:29:42

标签: excel powerpivot

说我有两张桌子:

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
-----
fruit
vege

所以我将前两个表拉入PowerPivot表,在" Item"之间建立连接。两个领域。但是当我用一个列创建一个数据透视表(由PowerPivot表支持)," Types"时,我得到:

Types
-----
fruit
furniture

我如何获得"类型"仅适用于第一个表中的项目?

1 个答案:

答案 0 :(得分:1)

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

尝试将数量拖到区域,您会看到PowerPivot将过滤所有未分配数量的类型(它将会过滤家具。)

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

enter image description here

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

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

此公式的作用是简单行计数,但仅适用于数量大于0的那些值。如果是,则[类型]列值将存在,否则值将为空( BLANK ) - 因此不会显示在数据透视表中。

您可能仍需要使用表格过滤器,但它现在会列出(空白)值,这样您就可以非常轻松地隐藏不具有数量的类型。

希望这有帮助!