我有这样的数据:
我想从右边第一个空格后提取最后一个值。所以在这个例子中:
我试过了:
Env =
Var FirstSpace = FIND(" ", 'AWS Reservations'[Account])
Return RIGHT('AWS Reservations'[Account],FirstSpace - 1)
但这给了我奇怪的结果。希望得到一些帮助解决这个问题。谢谢。
您将起始字符索引而不是所需的字符数传递给RIGHT()
函数。
右(Text,NumberOfCharacters)
试试这个:
Env =
Var FirstSpace = FIND(" ", 'AWS Reservations'[Account])
Return RIGHT('AWS Reservations'[Account], LEN('AWS Reservations'[Account]) - FirstSpace)
FIND
或SEARCH
缺少从字符串末尾搜索的选项使得这非常棘手。
您可以使用:
Env = TRIM(RIGHT(SUBSTITUTE('AWS Reservations'[Account], " ", REPT(" ", LEN('AWS Reservations'[Account]))), LEN('AWS Reservations'[Account])))
或者将其细分以便更好地理解:
Env =
VAR string_length = LEN('AWS Reservations'[Account])
RETURN
TRIM(
RIGHT(
SUBSTITUTE(
'AWS Reservations'[Account],
" ",
REPT(" ", string_length)
),
string_length
)
)
以lm-sample prod
为例。
首先,我们使用REPT(" ", string_length)
创建一个字符串
" "which has the same length as the value
lm-sample prod
.
然后,我们用这个额外的长度替换所有出现的“”
" "and the string will become
lm-sample prod
在那之后,我们会很自在地从右边获取string_length
的子串,即
" prod"
最后,我们修剪结果以得到我们想要的,prod
。
结果: