使用 [field1] - [field2] > x 作为过滤器计算度量
Calculate measure using [field1] - [field2] > x as filter
我有一个事实 table,其中包含客户交易的 OriginalPrice
和 PaidPrice
列。我想知道有多少交易受益于 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
)
)
)
我有一个事实 table,其中包含客户交易的 OriginalPrice
和 PaidPrice
列。我想知道有多少交易受益于 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
)
)
)