理解Power BI VAR函數(shù)的三個(gè)特點(diǎn)

Power BI在使用DAX編寫公式時(shí)磷账,使用VAR可以使公式更加簡潔且計(jì)算效率更高砾层。我在使用VAR函數(shù)時(shí)遇到一個(gè)問題托慨,后來通過佐羅老師關(guān)于“Power BI 自動(dòng)化用戶運(yùn)營分析”教程中VAR的章節(jié)左胞,理解了VAR的三個(gè)特性瑰抵,解決了一個(gè)一直沒有理解的事情你雌。

VAR具備以下三個(gè)特點(diǎn):

第一個(gè)特點(diǎn)

嵌套的多層函數(shù),可以使用VAR寫成單行的語句

比如計(jì)算月環(huán)比二汛,直接使用函數(shù)嵌套如下:

月環(huán)比 普通 = 
DIVIDE( 
    [銷售 銷售總額] - 
    CALCULATE( [銷售 銷售總額], DATEADD( 'D_日期表'[日期], -1, MONTH ) ), 
    CALCULATE( [銷售 銷售總額], DATEADD( 'D_日期表'[日期], -1, MONTH ) )
)

使用VAR編寫可以是下面的效果:

月環(huán)比 VAR = 
var ThisMonth = [銷售 銷售總額]
var LastMonth = CALCULATE( [銷售 銷售總額], DATEADD( 'D_日期表'[日期], -1, MONTH ) )
return DIVIDE( ThisMonth - LastMonth, LastMonth )

公式越復(fù)雜婿崭,VAR的效果越明顯。

第二個(gè)特點(diǎn)

只要VAR+RETRUN構(gòu)成一個(gè)閉合的語句肴颊,可以任意嵌套

下面的語句是成立的氓栈,可以在VAR里面嵌套成對(duì)的VAR+RETURN:

月環(huán)比 VAR嵌套 = 
var ThisMonth = [銷售 銷售總額]
var LastMonth = 
    var t1 = -1
    var t2 = CALCULATE( [銷售 銷售總額], DATEADD( 'D_日期表'[日期], t1, MONTH ) )
    return t2
return DIVIDE( ThisMonth - LastMonth, LastMonth )

第三個(gè)特點(diǎn)

VAR計(jì)算的結(jié)果是不變的量,因此不能使用VAR命名的變量作為函數(shù)中為值類型的參數(shù)婿着,但可以使用在篩選類型的參數(shù)上授瘦。

這句話我也嘗試了好幾種表述方式醋界,但都比較繞。比如下面這個(gè)例子就是不成立的提完,CALCULATE第一個(gè)參數(shù)不支持使用VAR指定的變量形纺,但可以使用在CALCULATE第二個(gè)參數(shù)上:

月環(huán)比 VAR 錯(cuò)誤示范 = //不會(huì)報(bào)錯(cuò),但計(jì)算的結(jié)果是錯(cuò)誤的
var SalesVolume = [銷售 銷售總額 萬元]
var Exhibition = CALCULATE( SalesVolume, 'D_日期表'[年份] = 2020 )
return if( ISFILTERED( 'D_日期表'[月份(M)] ), SalesVolume, Exhibition )

正確示范如下:

月環(huán)比 VAR 正確示范 =
var SalesVolume = [銷售 銷售總額 萬元]
var Parameter = 2020
var Exhibition = CALCULATE( [銷售 銷售總額 萬元], 'D_日期表'[年份] = Parameter )
return if( ISFILTERED( 'D_日期表'[月份(M)] ), SalesVolume, Exhibition )

第三個(gè)特點(diǎn)是最容易犯錯(cuò)的地方氯葬,VAR定義的變量指的是不變的量挡篓。要想在CALCULATE中正確使用第一個(gè)參數(shù),則需要使用現(xiàn)有的度量值帚称,或重新編寫該參數(shù)的計(jì)算公式官研。

總結(jié):

學(xué)習(xí)VAR函數(shù)的朋友可以看下這三個(gè)特點(diǎn),有助于更加方便的使用VAR將DAX公式編寫的更加簡潔闯睹、清晰戏羽、高效。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末楼吃,一起剝皮案震驚了整個(gè)濱河市始花,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孩锡,老刑警劉巖酷宵,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異躬窜,居然都是意外死亡浇垦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門荣挨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來男韧,“玉大人,你說我怎么就攤上這事默垄〈寺牵” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵口锭,是天一觀的道長朦前。 經(jīng)常有香客問我,道長鹃操,這世上最難降的妖魔是什么况既? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮组民,結(jié)果婚禮上棒仍,老公的妹妹穿的比我還像新娘。我一直安慰自己臭胜,他們只是感情好莫其,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布癞尚。 她就那樣靜靜地躺著,像睡著了一般乱陡。 火紅的嫁衣襯著肌膚如雪浇揩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天憨颠,我揣著相機(jī)與錄音胳徽,去河邊找鬼。 笑死爽彤,一個(gè)胖子當(dāng)著我的面吹牛养盗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播适篙,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼往核,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嚷节?” 一聲冷哼從身側(cè)響起聂儒,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎硫痰,沒想到半個(gè)月后衩婚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡效斑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年非春,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鳍悠。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡税娜,死狀恐怖坐搔,靈堂內(nèi)的尸體忽然破棺而出藏研,到底是詐尸還是另有隱情,我是刑警寧澤概行,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布蠢挡,位于F島的核電站,受9級(jí)特大地震影響凳忙,放射性物質(zhì)發(fā)生泄漏业踏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一涧卵、第九天 我趴在偏房一處隱蔽的房頂上張望勤家。 院中可真熱鬧,春花似錦柳恐、人聲如沸伐脖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讼庇。三九已至绎巨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蠕啄,已是汗流浹背场勤。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歼跟,地道東北人和媳。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像嘹承,于是被迫代替她去往敵國和親窗价。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355