说我有两张桌子:
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
我如何获得"类型"仅适用于第一个表中的项目?
答案 0 :(得分:1)
当您在PowerPivot窗口中定义关系并在任何PowerPivot表上使用它时,PowerPivot默认执行FULL OUTER JOIN。这是直到您开始使用其他表列作为值。
尝试将数量拖到值区域,您会看到PowerPivot将过滤所有未分配数量的类型(它将会过滤家具。)
如果由于某种原因只需要所有 TYPES 的值列表,并且不能使用任何基于值的过滤器或切片器,则必须添加新的计算列:
我已将其命名为 Type(如果存在于T1中)。公式很简单(如果使用加载(数百万)数据行,也应该非常快速。
=
IF (
COUNTROWS (
FILTER ( RELATEDTABLE ( Table1 ), Table1[Quantity] > 0 )
) > 0,
[Type],
BLANK ()
)
此公式的作用是简单行计数,但仅适用于数量大于0的那些值。如果是,则[类型]列值将存在,否则值将为空( BLANK ) - 因此不会显示在数据透视表中。
您可能仍需要使用表格过滤器,但它现在会列出(空白)值,这样您就可以非常轻松地隐藏不具有数量的类型。
希望这有帮助!