使用 [field1] - [field2] > x 作为过滤器计算度量

Calculate measure using [field1] - [field2] > x as filter

我有一个事实 table,其中包含客户交易的 OriginalPricePaidPrice 列。我想知道有多少交易受益于 10 到 20 美元之间的折扣 OriginalPrice - PaidPrice。我已经有一个描述客户数量的度量 #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

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

您正在搜索这样的度量:

DiscountTier1 = 
COUNTROWS(
    FILTER(
        SUMMARIZE (
        'FactTable';
        'FactTable'[customer_id];
        "DISCOUNT"; 
            CALCULATE(SUM(FactTable[OriginalPrice])) - CALCULATE(SUM(FactTable[PaidPrice]))
         );
     [DISCOUNT] <= 20 && [DISCOUNT] >= 10
    ) 
)

该查询计算所有行的折扣,并筛选折扣在 10 到 20 之间的行

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

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