我想创建一个计算列,以反转现有列中的字符串。例如,如果我有下表
ID String
----------
1 Alpha
2 Beta
3 Gamma
我想得到这个:
ID String Reverse
-------------------
1 Alpha ahplA
2 Beta ateB
3 Gamma ammaG
我知道如何使用SEARCH
,FIND
,LEFT
,RIGHT
,MID
,SUBSTITUTE
,REPLACE
, REPT
,LEN
等,但似乎无法让他们做我想做的事。
我在下面提供了一种可能的解决方案,但是我对其他可能性也很感兴趣。
答案 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'
就是这样!