DAX 第九篇:文本函數


DAX中用於處理文本的函數,和其他語言很相似。

一,文本連接

文本連接也可以使用操作符 & 來實現,也可以使用函數CONCATENATE來實現:

CONCATENATE(<text1>, <text2>) 

把整個表中的所有行,使用分隔符拼接為一個字符串,返回值是一個字符串,不常用:

CONCATENATEX(<table>, <expression>, [delimiter]) 

按照分隔符,對多個字符串進行連接,返回一個字符串:

COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)

例如,對DimDate表中每一行,把字段MonthName和CalendarYear以分隔符","組合在一起:

DISTINCT(SELECTCOLUMNS(DimDate, "Month", COMBINEVALUES(",", [MonthName], [CalendarYear])))

二,文本比較

比較兩個文本是否相同,返回True或False

EXACT(<text1>,<text2>)  

三,文本查找

FIND函數是大小寫敏感的,用於從within_text中查找find_text,如果存在該文本,返回第一次匹配的字符串首字符的位置;如果沒有查找到,那么返回NotFoundValue指定的值,或者BLANK()。

FIND(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])  

FIND函數不支持通配符,SEARCH函數支持通配符查找,但是SEARCH不區分大小寫,但是區分重音。

SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]]) 

CONTAINSSTRING函數用於檢查是否包含特定的文本,該函數不區分大小寫,並且可以使用通配符(?代表單字符,*代表任意字符,~用於轉義通配符)

CONTAINSSTRING(<within_text>, <find_text>) 

CONTAINSSTRINGEXACT函數用於檢查是否完全包含特定的文本,該函數區分大小,不可以使用通配符:

CONTAINSSTRINGEXACT(<within_text>, <find_text>)

例如,下面DAX表達式返回的值是TRUE、FALSE、FALSE、FALSE:

ROW(
        "Case 1", CONTAINSSTRINGEXACT("abcd", "bc"), 
        "Case 2", CONTAINSSTRINGEXACT("abcd", "BC"),
        "Case 3", CONTAINSSTRINGEXACT("abcd", "a*d"),
        "Case 4", CONTAINSSTRINGEXACT("abcd", "ef")
    )

四,格式化文本

FIXED 用於把數字舍入到指定的小數位數,並把結果轉換為文本返回,如果把no_commas設置為1,在結果中不顯式逗號;如果設置為0,或者忽略,在結果中顯式逗號。

FIXED(<number>, <decimals>, <no_commas>)  

FORMAT函數用於格式化文本,用於把日期和數值類型顯式為特定格式的文本:

FORMAT(<value>, <format_string>)

五,截取子串

從文本指定的開始位置和結束位置處截取子串

LEFT(<text>, <num_chars>)
RIGHT(<text>, <num_chars>)  
MID(<text>, <start_num>, <num_chars>) 

六,替換字符串

把old_text中從start_num開始的num_chars個字符替換為new_text:

REPLACE(<old_text>, <start_num>, <num_chars>, <new_text>)  

從文本中把old_text替換為new_text,替換的次數由參數instance_num決定:

SUBSTITUTE(<text>, <old_text>, <new_text>, <instance_num>)  

七,其他字符串函數

  • LOWER(<text>)  :轉換為小寫
  • UPPER (<text>) :轉換位大寫
  • TRIM(<text>)     :移除文本兩端的空格
  • REPT(<text>, <num_times>):把文本重復num_times次
  • CODE(text) :把文本的首字符轉換位ASCII編碼
  • UNICHAR(number):把數字轉換為Unicode
  • LEN(<text>):文本的長度
  • VALUE(<text>):把文本格式的數字轉換位數值類型

 

參考文檔:

Text functions


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM