使用DAX反转字符串

时间:2018-08-30 16:11:07

标签: dax

我想创建一个计算列,以反转现有列中的字符串。例如,如果我有下表

ID  String
----------
1   Alpha
2   Beta
3   Gamma

我想得到这个:

ID  String  Reverse
-------------------
1   Alpha   ahplA
2   Beta    ateB
3   Gamma   ammaG

我知道如何使用SEARCHFINDLEFTRIGHTMIDSUBSTITUTEREPLACEREPTLEN等,但似乎无法让他们做我想做的事。


我在下面提供了一种可能的解决方案,但是我对其他可能性也很感兴趣。

2 个答案:

答案 0 :(得分:1)

可能并不漂亮,但是一种解决方法是生成一个索引,将其反向,然后通过反向索引将每个字符连接起来:

Reverse =
    CONCATENATEX (
        ADDCOLUMNS (
            GENERATESERIES ( 1, LEN ( Table1[String] ) ),
            "Index", LEN ( Table1[String] ) - [Value] + 1
        ),
        MID ( Table1[String], [Index], 1 )
    )

对于具有5个字符的字符串Alpha,这将生成下表:

Value  Index = 5 - Value + 1
----------------------------
 1      5
 2      4
 3      3
 4      2
 5      1

现在,对于此表中的每一行,MID函数都会选择Index位置的字符:

Value  Index  MID("Alpha", Index, 1)
------------------------------------
 1      5      a
 2      4      h
 3      3      p
 4      2      l
 5      1      A

CONCATENATEX函数使用此表并连接第三列以获得ahplA

答案 1 :(得分:1)

您要特别询问DAX。但是,由于您还说您正在寻找自己提供的解决方案以外的其他可能性,因此我不得不使用very elegant approach来提及Python in Power BI

#In:
'StackOverflow'[::-1]

#Out:
'wolfrevOkcatS'

就是这样!