首页 > 解决方案 > 基于交叉突出显示过滤的度量来过滤其他表

问题描述

我想在特定条件下计算记录并允许人们过滤到相关记录,但是选择一个度量值(过滤以便它只计算某些行)并没有像我期望的那样交叉过滤其他人。也许这是不可能的,或者我只是做错了,但我会很感激帮助。

我有一张桌子:

让
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wci4tLsnPTS1SMFTSUTJUitVBEjICChmgChljCplgajSFCMUCAA==", BinaryEncoding.Base64), Compression.Deflate)), 让 _t = ((type text) meta [Serialized.Text = true ]) 在类型表中 [#"客户名称" = _t, #"最近订购" = _t]),
    #"更改为 INT" = Table.TransformColumnTypes(Source,{{"最近订购", Int64.Type}}),
    #"Change to T/F" = Table.TransformColumnTypes(#"Change to INT",{{"Ordered Recent", type logical}})
在
    #"更改为 T/F"

结果如下所示:

最近订购的客户名称
客户 1 真
客户 2 错误
客户 3 错误
客户 4 真
客户 5 真

我添加了两个措施:

总数 = COUNTROWS(客户)

最近计数= CALCULATE([计数总数],过滤器(客户,客户[最近订购]))

如果我将两个度量都放在条形图中并突出显示“最近计数”度量,我希望它知道根据度量中存在的 FILTER 语句过滤其他视觉效果,但这不会发生。选择此值不会影响我页面上的任何其他内容(包括行数)。

目标是允许人们选择一个计算行数的度量,然后查看这些行中数据的构成(选择后期项目的计数并过滤其他视觉效果来描述这些后期项目)。

这是可能的还是我做错了什么?

例子:

这是它现在的样子,没有任何选择: 未过滤的 Power BI 画布,显示 5 个客户和 3 个最近订购的

当我选择黑条(“最近订购”度量)时,现在没有任何变化 - 但这是我想要发生的事情(实际上是通过 T/F 字段上的屏幕外切片器实现的): 更新的视觉效果,使用屏幕外切片器来模拟所需的结果

我知道如果我的度量是整数字段的 SUM,它包括计算中的每一行 - 即使行值为零 - 并且无法基于此过滤我的数据集。但是,在这种情况下,我的度量实际上是在数据集上使用 FILTER,以便它只计算具有特定条件集的行 - 鉴于此,它应该能够过滤请求的表,然后将该过滤器流过其余的我的数据集(就像我从图表中选择一个条形图一样,在该图表中我使用了与该系列相同的字段 - 当我这样做时它是如何工作的: 从图表中选择一个条形图,其中 T/F 字段是轴,按预期工作

以下载PBIX文件为例

标签: powerbipowerbi-desktop

解决方案


不,我认为不可能根据度量定义中的过滤器使度量值交叉过滤其他视觉效果。

但是,您可以单击 ie 行标题Customer 3,它应该交叉过滤其他视觉对象以仅包含该客户。您为矩阵视觉对象的行或列设置的任何表格列都应该以这种方式运行。


这是一个hacky解决方法:

当您使用要用作过滤器的列作为图例或轴(如上一张图像中)时,创建一个显示正确值的度量。例如,在这种情况下,您可以这样做:

Total Customers =
VAR TF = SELECTEDVALUE ( Customers[Ordered Recently] )
RETURN
    COUNTROWS (
        FILTER (
            ALLSELECTED ( Customers ),
            IF ( TF, TF, TF || Customers[Ordered Recently] )
        )
    )

交叉过滤器

这会按照您的意愿行事,但不会按照您的意愿进行标记。为此,请创建一个带有所需标签的计算列。例如,

Label = IF(Customers[Ordered Recently], "Ordered Recently", "Total Customers")

然后取下Ordered Recently轴并将Label列放在图例框中得到这个:

最后结果


推荐阅读