【发布时间】:2022-11-11 02:11:25
【问题描述】:
在 PowerBI 中工作,我有一个数据集,可以拆分为一堆不同的维度。在一天结束时,我想创建一些条形图可视化,显示前 X 项以及另外生成的项目,该项目将显示前 X 之外的所有项目的总数。我已经让这一切正常工作。我遇到的障碍是在我的可视化中添加第二个维度(即作为堆叠条形图中的图例项)。这导致我的 Rank 度量根据 Dimension 1 和 Dimension 2 进行排名,而我只关心根据 Dimension 1 的整体排名。
当存在多个维度时,如何创建排名度量以在单个维度上工作?
例子
名为 Fact 的表中的原始数据:
我计算总金额的措施:
Total Amount = SUM('Fact'[Amount])
我计算公司排名的方法:
Company_Rank =
IF(
SELECTEDVALUE('Companies Other'[Company]) = "Other"
, [TopX_Selected] + 1
, RANKX(
ALL('Companies Other')
, [Total Amount]
,
, DESC
, Dense
)
)
我将 Top X 之外的项目聚合到 Other 的措施:
TopX_Amount =
// If within the Top X, return the value
IF([Company_Rank] <= [TopX_Selected]
, [Total Amount]
// Otherwise sum everything outside of the top X to include in Other
, IF(
SELECTEDVALUE('Companies Other'[Company]) = "Other"
, SUMX(FILTER(ALL('Companies Other'[Company]), [Company_Rank] > [TopX_Selected]), [Total Amount])
, 0
)
)
如果我选择显示前 3 名公司(即[TopX Selected] = 3),那么一切都很好:
如果我尝试将 Country 添加到可视化的图例中,那么一切都会偏离轨道,因为现在排名基于每个公司/国家/地区组合:
我想看到的与在可视化上使用 Top N 过滤器时得到的类似,但添加了 Other 列:
我尝试将Company_Rank 设为'Companies Other' 中的计算列,但这似乎不像“正确的路”这样做,我认为当用户更改所选时间段时不会正确更新。
提前致谢。
【问题讨论】:
标签: powerbi dax powerbi-desktop