IF和SWITCH函數(shù)是DAX中的兩個(gè)邏輯判斷函數(shù),功能都是一樣的侵贵,進(jìn)行邏輯判斷計(jì)算朴皆,進(jìn)行多條件判斷時(shí),兩者都可以實(shí)現(xiàn)搔课,但是使用if會(huì)嵌套多個(gè)if胰柑,過(guò)程會(huì)有點(diǎn)繁瑣,而使用switch就會(huì)簡(jiǎn)單明了,可讀性也強(qiáng)爬泥。
1.IF函數(shù)
語(yǔ)法:if(條件,真的結(jié)果,假的結(jié)果)
判斷使用的邏輯符:
等于使用“=”表示柬讨,邏輯與使用“&&”表示,邏輯或使用“||”表示袍啡,而邏輯非踩官,通常使用NOT()函數(shù)來(lái)實(shí)現(xiàn)
舉例:根據(jù)關(guān)鍵詞成本判斷區(qū)間
成本區(qū)間判斷 = IF([測(cè)試成本]>300,"紅色成本",IF([測(cè)試成本]>100,"黃色成本","綠色成本"))
為了突出,我設(shè)置了一下條件格式境输,在背景色-高級(jí)控件中設(shè)置蔗牡,最小值,居中畴嘶,最大值都可以自定義
2.SWITCH函數(shù)
語(yǔ)法:SWITCH(表達(dá)式蛋逾,條件1,結(jié)果1窗悯,條件2区匣,結(jié)果2,....<else>)
兩種判斷情況
①判斷條件大于小于的情況:
還是使用上面if中的案例,使用switch編寫(xiě):
成本區(qū)間判斷2 = SWITCH(TRUE(),[測(cè)試成本]>300,"紅色成本",[測(cè)試成本]>100,"黃色成本","綠色成本")
上面if嵌套不多,如果條件過(guò)多,if函數(shù)的嵌套就會(huì)很多,可讀性較差,使用switch的話(huà)就會(huì)簡(jiǎn)單明了
解釋?zhuān)哼@里的true()是表示每個(gè)條件返回都可以是一個(gè)邏輯值
也就是說(shuō)第一個(gè)參數(shù)如果是true,則第二參數(shù)必須是布爾類(lèi)型即判斷邏輯值蒋院,如果第一個(gè)參數(shù)是字段列亏钩,則第二個(gè)參數(shù)就是具體值,就符合第②種情況
②判斷條件相等的情況:
如果上面例子不使用TRUE(),那么成本區(qū)間判斷2的公式就會(huì)這樣寫(xiě):
成本區(qū)間判斷2 = SWITCH('測(cè)試數(shù)據(jù)'[關(guān)鍵詞],139,"黃色成本",589.5,"紅色成本",118.8,"黃色成本".......)
后面會(huì)根據(jù)每個(gè)成本進(jìn)行書(shū)寫(xiě)判斷欺旧,無(wú)論書(shū)寫(xiě)還是可讀性都很困難姑丑,所以在判斷大小的情況時(shí)就要使用第①種情況,如果要判斷條件相等的話(huà)辞友,最好條件少栅哀,比如根據(jù)季度數(shù)判斷季度震肮,如:
條件相等 = SWITCH([季度轉(zhuǎn)換值],1,"第一季度",2,"第二季度",3,"第三季度",4,"第四季度",BLANK())
今天就分享完了,如果解決了您的困惑留拾,就動(dòng)動(dòng)發(fā)財(cái)小手點(diǎn)個(gè)贊吧戳晌,我是Sugargl,下次見(jiàn),88