如何用DAX(PowerBI)按字母顺序连接两个字段?

时间:2018-09-06 19:37:05

标签: powerbi dax

我需要将两列中的条目连接成一个逗号分隔的列表,但需要将结果按字母顺序排列。

数据: PRIMARY_ORGAN | SECONDARY_ORGAN --------------|---------------- Kidney | Heart Heart | Kidney Liver | Kidney Liver | Heart
预期结果: Heart, Kidney Heart, Kidney Kidney, Liver Heart, Liver
换句话说,先简单地对两列进行排序无济于事。

1 个答案:

答案 0 :(得分:1)

CONCATENATEX function允许使用参数来指示连接列表的顺序。

Concat = CONCATENATEX(
             {Organs[PRIMARY_ORGAN], Organs[SECONDARY_ORGAN]},  --List to concatenate
             [Value],                                           --Values to concatenate
             ", ",                                              --Delimiter
             [Value],                                           --Order By
             ASC                                                --Order Direction
         )

之所以使用[Value]是因为我使用{,}语法手动声明了一个列表,而没有分配任何列名。如果出于某种原因要分配名称,可以使用SELECTCOLUMNS函数。例如

Concat = 
    VAR List = SELECTCOLUMNS(
                   {Organs[PRIMARY_ORGAN], Organs[SECONDARY_ORGAN]},
                   "Organ", [Value]
               )
    RETURN CONCATENATEX(List, [Organ], ", ", [Organ], ASC)