PowerBI 如何返回按序排列的元素文本

2021-09-17 10:40:10 浏览数 (2)

我们常常需要 PowerBI 返回元素,而不是值,例如:

这里返回了 TOP 4 的元素,公式如下:

代码语言:javascript复制
Info = CONCATENATEX( TOPN( 4 , Data , [Value] ) , [Item] , "," )

仔细观察下,问题来了:

E D C A 并不是按照元素大小排列的,因为,原始数据如下:

返回的元素是按照原始数据构成排列的。

我们希望按照元素大小排列怎么办呢?下面给出终极解法:

对应的 DAX 公式如下:

代码语言:javascript复制
Info.ByOrder = 
VAR vTopN = 4
VAR vData = TOPN( vTopN , Data , [Value] )
VAR vDataWithRank = ADDCOLUMNS( vData , "Rank" , RANKX( vData , [Value] , [Value] ) )
RETURN 
    CONCATENATEX( 
        GENERATESERIES( 1 , vTopN ) , 
        SELECTCOLUMNS( FILTER( vDataWithRank , [Rank] = EARLIER( [Value] ) ) , "Item" , [Item] ) , 
        "," 
    )

其中,值得注意的是,先加序号,再通过序号列反向查找元素后给出文本。

在订阅了BI佐罗讲授的《BI真经》之《BI进行时》课程区,可以下载本文案例,还可以观看视频讲解。

0 人点赞