【发布时间】:2018-10-22 07:28:56
【问题描述】:
我正在研究一种解决方案来计算类似于 Qlikview 在 DAX for Power BI 中的 FirstSortedValue。
据我所知,没有开箱即用的解决方案来获得获取文本值(很像类别)的功能,该文本值的排名在第 n 位。
我的问题是: 为什么这对单列有效,但在表上使用时返回多列错误?
CALCULATE (
SAMPLE (
1,
FILTER (
'table_name',
RANKX (
ALL ( 'table_name'[column_name] ),
CALCULATE ( COUNT ( 'table_name'[column_name] ) ),
, , SKIP
)
= Nth
),
TRUE ()
)
)
还有一个不同的变体:
CALCULATE (
SAMPLE ( 1, VALUES ( 'table_name'[column_name] ), TRUE () ),
FILTER (
'table_name',
RANKX (
ALL ( 'table_name'[column_name] ),
CALCULATE ( COUNT ( 'table_name'[column_name] ) ),
, , DENSE
)
= Nth
)
)
当它是单列时,这两种方法以及我的更多尝试都有效,但是为什么在具有多列的表上使用时这不起作用?它应该根据我选择的第 N 等级返回 1 个文本值的样本? 类似于回答“根据销售额计算的第 N 个最畅销的产品名称是什么?”的问题。
我很困惑,仍在努力寻找答案。 Firstnonblank 不是一个选项,因为我不关心仅获得排名第一的答案的解决方案;不建议这样做。
【问题讨论】:
-
这个问题可能就是你要找的:stackoverflow.com/questions/52525377/…
-
嗨,没有 maxx() 和 topn() 对于可重复使用的排名解决方案无效。这些都不会返回排名第三的文本值。
-
您能提供一些示例数据和所需的输出吗?
标签: dax