首页 > 解决方案 > 使用 [field1] - [field2] > x 作为过滤器计算度量

问题描述

我有一个包含列OriginalPricePaidPrice客户交易的事实表。我想知道OriginalPrice - PaidPrice10 到 20 美元之间的折扣有多少笔交易。我已经有一个#Customer描述客户数量的度量。

这适用于使用与 SSAS 的实时连接的 PowerBI 报表。新列和某些 DAX 函数在此连接模式下不可用。

DiscountTier1 = CALCULATE([#Customer],(FactTable[OriginalPrice]-FactTable[PaidPrice]) >= 10, FactTable[OriginalPrice]-FactTable[PaidPrice]) < 20)

通过这样做,我想知道有 10 到 20 美元折扣的客户数量。

目前我有一个错误如下: CALCULATE has been used in a True/False expression that is used as a table filter expression. This is not allowed

关于如何实现这一目标或我做错了什么的任何建议?谢谢!

标签: ssaspowerbidax

解决方案


FILTER函数添加为 的第二个参数CALCULATE,在此您可以过滤事实表中满足您条件的记录。我还建议使用该AND功能以获得更好的可读性和长期维护。

DiscountTier1 =
CALCULATE (
    [#Customer],
    FILTER (
        FactTable,
        AND (
            FactTable[OriginalPrice] - FactTable[PaidPrice]
                >= 10,
            FactTable[OriginalPrice] - FactTable[PaidPrice]
                <= 20
        )
    )
)

推荐阅读