1.CONCATENATE(<text1>, <text2>)和?CONCATENATEX(<table>, <expression>, [delimiter])?
函數(shù)作用:CONCATENATE要聯(lián)接為單個文本字符串的文本字符串抱究。 字符串可以包括文本或數(shù)字。還可以使用列引用;
CONCATENATEX將表或返回表的表達(dá)式作為其第一個參數(shù)预茄。第二個參數(shù)是包含要連接的值的列循帐,或包含返回值的表達(dá)式系宜。
示例:CONCATENATE("Hello ", "World")=“HelloWorld”沛豌。CONCATENATEX在下文將具體描述庸娱。
應(yīng)用場景:用卡片圖展示銷量排名為N的產(chǎn)品時链峭,可能出現(xiàn)并列第N的情況畦娄。為了將并列第N的產(chǎn)品全部顯示出來,可使用CONCATENATEX函數(shù)。
下圖是4個城市的銷量金額熙卡,現(xiàn)在要顯示排名第三的城市名稱杖刷,即洛杉磯和芝加哥。
一般做法:直接使用卡片圖驳癌,添加視覺篩選器滑燃,對銷售城市進(jìn)行前N個篩選,可以發(fā)現(xiàn)喂柒,卡片圖只顯示了洛杉磯不瓶,缺少和它并列第三的芝加哥。
正確做法:可以先對每個城市的銷售額進(jìn)行排名灾杰,排名方法參見DAX函數(shù)應(yīng)用-篩選器函數(shù)(上)蚊丐。
排名第三 = CONCATENATEX( FILTER(ALL('銷量按城市'[銷售城市]),[排序]=3),'銷量按城市'[銷售城市],";")
結(jié)果展示:
2.COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
函數(shù)作用:函數(shù)COMBINEVALUES的作用類似于CONCATENATE艳吠,但它至少需要三個參數(shù)麦备。分隔符必須是常量非空字符串,不能使用” ”昭娩,變量或函數(shù)作為分隔符凛篙。
示例:COMBINEVALUES ( " ,", "A", "B", "C", "D" )=A,B,C,D
應(yīng)用場景:當(dāng)需要連接的字符串很多時,盡量避免使用過多的“&”栏渺,而用COMBINEVALUES代替呛梆,提高可讀性。
3.EXACT(<text1>,<text2>)
函數(shù)作用:比較兩個文本字符串磕诊;如果它們完全相同則返回 TRUE填物,否則返回 FALSE。 EXACT 區(qū)分大小寫但忽略格式上的差異霎终。
示例:EXACT("hello","HELLO")=False,?EXACT("10",INT(10))=True滞磺。
應(yīng)用場景:比較同一張表的兩列是否相同,可直接使用EXACT(“列名1”莱褒,“列名2”)击困,比較兩張相關(guān)聯(lián)的表的兩列是否相同,可將函數(shù)RELATED或LOOKUPVALUE與函數(shù)EXACT結(jié)合使用广凸。(RELATED函數(shù)用法參見DAX函數(shù)應(yīng)用-篩選器函數(shù)(下)阅茶,LOOKUPVALUE函數(shù)用法參見DAX函數(shù)應(yīng)用-信息函數(shù))。
4.LEFT(<text>, <num_chars>)和MID(<text>, <start_num>, <num_chars>)和RIGHT(<text>, <num_chars>)
函數(shù)作用:從文本字符串的開頭/中間指定位置/結(jié)尾返回指定數(shù)目的字符谅海。
示例:LEFT("HELLOWORLD",5)=HELLO:從開頭位置算起返回5個字符目派;
? ? ? ? ? ?MID("HELLOWORLD",6,3)=WOR:從第六個字符算起,返回3個字符胁赢;
? ? ? ? ? ?RIGHT("HELLOWORLD",5)=WORLD:從開頭位置算起返回5個字符企蹭。
5.REPLACE(<old_text>, <start_num>, <num_chars>, <new_text>)和SUBSTITUTE(<text>, <old_text>, <new_text>, <instance_num>)
函數(shù)作用:用不同的文本字符串替換文本字符串的一部分白筹。
示例:REPLACE("helloWORLD",1,5,"HELLO")=HELLOWORLD:對"helloWORLD"進(jìn)行字段替換操作,從第一個字符開始谅摄,連續(xù)5個字符徒河,即hello被替換成HELLO。
SUBSTITUTE("helloWORLD","hello","HELLO")=HELLOWORLD:"helloWORLD"進(jìn)行字段替換操作送漠,將hello替換成HELLO顽照。<instance_num>表示要替換的 old_text 的重復(fù)次數(shù), 如果省略闽寡,將替換所有 old_text 實例代兵。?
6.FIND(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])和SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
函數(shù)作用:返回一個文本字符串在另一文本字符串中的開始位置。?
區(qū)別:FIND 區(qū)分大小寫爷狈,比如查找“N”將找到“N”的第一個匹配項植影,而不是“n”。
SEARCH不區(qū)分大小寫涎永,但區(qū)分重音思币,搜索“á”將找到“á”的第一個匹配項,但不會找到“a”羡微、“à”的匹配項或者大寫版本“A”谷饿、“á”。
示例:分別用FIND和SEARCH函數(shù)判斷“a”在[相關(guān)負(fù)責(zé)人]中的位置妈倔,由于FIND區(qū)分大小寫博投,SEARCH不區(qū)分大小寫,兩者計算結(jié)果有所不同盯蝴。
FIND = FIND("a",[相關(guān)負(fù)責(zé)人],,-1)
SEARCH = SEARCH("a",[相關(guān)負(fù)責(zé)人],,-1)
應(yīng)用場景:更換文本字符串的部分字符贬堵,可將FIND/SEARCH函數(shù)、MID函數(shù)REPLACE函數(shù)結(jié)合使用结洼,先用 FIND/SEARCH 函數(shù)確定一個字符或文本字符串在另一個文本字符串內(nèi)的位置,然后使用 MID 函數(shù)返回文本叉跛,或者使用 REPLACE 函數(shù)更改文本松忍。
7.LOWER(<text>)和UPPER (<text>)
函數(shù)作用:LOWER函數(shù)將文本字符串全都轉(zhuǎn)換為小寫字母,UPPER函數(shù)將文本字符串全都轉(zhuǎn)換為大寫字母筷厘。
示例:LOWER("ABCdef")=abcdef鸣峭,UPPER("ABCdef")=ABCDEF。
8.REPT(<text>, <num_times>)
函數(shù)作用:重復(fù)給定次數(shù)的文本
示例:REPT("?",3)=???
應(yīng)用場景:常用在通過一些表情/符號的數(shù)量來表示客戶滿意度酥艳、業(yè)績好壞摊溶、銷量好壞……的情景中,函數(shù)的<num_times>可換成用于描述好壞的指標(biāo)充石,比如銷量莫换、同比、環(huán)比等等。
9.TRIM(<text>)
函數(shù)作用:從文本中刪除兩個詞之間除了單個空格外的所有空格拉岁。
示例:TRIM("A column with trailing spaces. ")=Acolumnwithtrailingspaces.
10.LEN(<text>)
函數(shù)作用:返回文本字符串中的字符數(shù)坷剧。
示例:LEN("helloworld")=10