文本函数
DAX中的文本函数和Excel的非常类似,只有一小部分例外。这样的函数有CONCATENATE, EXACT,
FIND, FIXED, FORMAT, LEFT, LEN, LOWER, MID, REPLACE, REPT,RIGHT, SEARCH, SUBSTITUTE, TRIM, UPPER, and VALUE。这些函数对于合并文本,提取文本都非常有效。例如,可以通过识别逗号,来提取名和姓的字符串,而对于中间的title,我们要去掉。
image.png
首先,我们要确定两个逗号的位置,使用这些位置信息,我们来提取文本需要的信息。 SimpleConversion在字符串如果少于两个逗号的时候会报错,FirstLastName使用了更复杂表达式,保证了逗号缺失时候也不会报错。
Comma1 = IFERROR ( FIND ( ",", People[Name] ), BLANK ( ) )
Comma2 = IFERROR ( FIND ( ",", People[Name], People[Comma1] +
1 ), BLANK ( ) )
SimpleConversion = MID ( People[Name], People[Comma2] + 1, LEN
( People[Name] ) )
& " " & LEFT ( People[Name], People[Comma1] - 1 )
FirstLastName = TRIM (
MID (
People[Name],
IF (
ISNUMBER ( People[Comma2] ),
People[Comma2],
People[Comma1]
) + 1,
LEN ( People[Name] )
))&
IF (
ISNUMBER ( People[Comma1] ),
" " & LEFT ( People[Name], People[Comma1] - 1 ),
""
)
如上,Firstname列使用了一个很长的DAX表达式,但是你必须使用它来避免可能发生的错误,从而导致整个列的失败
网友评论