根据行数而非销售额计算出第 75 个百分位数的度量。
让我们从您想要实现的目标开始
要实现您想要做的事情,您需要摆脱查看行并考虑销售的累积价值。使用干净的数据集(即删除空白行),请尝试以下操作。
查看您的数据集,我们正试图确定那些在 75% 以内的销售额。它们将加起来为 259,468.89 的边界;
使用您现有的衡量标准按销售额对数据进行排名
Rank = RANKX (all(Sheet1) ,[Total sale])
添加一个度量来计算累积排名销售额
Cumulative Ranked Sale = CALCULATE([Total sale],FILTER(ALL(Sheet1),[Rank]<=MAXX(Sheet1,[Rank])))
现在您可以根据累计排名销售额高达 259,468.89 计算出第 75 个百分位的销售额。
Cumulative Sales In 75th Percentile =
VAR Percentile75 = CALCULATE([Total sale], All(Sheet1))*0.25
VAR cumulativeSalesIn75thPercentile = CALCULATE(
Sum(Sheet1[Sales]),
FILTER(
ALL(Sheet1),
[Cumulative Ranked Sale]<=Percentile75
)
)
RETURN cumulativeSalesIn75thPercentile
我在上图中添加了一个单独的度量来显示百分位 75 边界,但您的工作不需要这个,因为这是累积销售额第 75 个百分位中的一个变量
您需要注意,排名会为您提供具有相同排名的多个值,这会影响您的结果。您还需要考虑您希望在 75% 的边界上发生什么,因为断点并不精确。
您可以进一步扩展此逻辑,以通过其他措施覆盖第 50-75 个百分位
Cumulative Sales 50-75th Percentile =
VAR Percentile75 = CALCULATE([Total sale], All(Sheet1))*0.25
VAR Percentile50 = CALCULATE([Total sale], All(Sheet1))*0.5
VAR cumulativeSalesIn50thTo75thPercentile = CALCULATE(
Sum(Sheet1[Sales]),
FILTER(
ALL(Sheet1),
[Cumulative Ranked Sale]>Percentile75 &&
[Cumulative Ranked Sale]<=Percentile50
)
)
RETURN cumulativeSalesIn50thTo75thPercentile
回到你现有的工作方式
在我们开始之前,附加的示例数据使 RowCount 和 PERCENTILEX.INC 不准确。您有 251 个订单,但您有 685 行,其余为空白行。保持样本数据干净,将有助于您未来的 DAX 分析。
您的“nTop 25%”衡量标准是计算行数(而不是金额),并为您提供按销售额排序的前 25% 行的销售额总和。变量
VAR Rank_To_Find = COUNTROWS ( ALL (Sheet1) ) * 0.25
等于 171.25,因为您有 685 行,因此 685*0.25 = 171.25。因此,使用此度量,您将计算前 171 行的总销售额,按销售额降序排列,结果为 932,906.354 美元。
根据您的“第 75 个百分位及以上的销售额百分比(使用总销售额)”度量,PERCENTILE.INC 是您找到的第 75 个百分位的行数,而不是累积值。尝试将 k 值更改为低于 60% 的任何值(例如 PERCENTILEX.INC( Sheet1, Sheet1[Sales],0.60 ),您将返回总销售额。