DAX中,EVALUATE()函數(shù)是一個(gè)表格函數(shù)纹冤,主要用來返回一個(gè)表格洒宝。這個(gè)特性有一些實(shí)際的用途,比如我就發(fā)現(xiàn)了一個(gè)萌京。
一雁歌、需求
我有一個(gè)學(xué)習(xí)記錄的數(shù)據(jù)文件,我的關(guān)注重點(diǎn)知残,除了已經(jīng)完成學(xué)習(xí)任務(wù)的情況靠瞎,還包括那些沒有完成學(xué)習(xí)任務(wù)的學(xué)員名單。
二橡庞、常規(guī)解決思路
第一個(gè)需求用數(shù)據(jù)透視表很好辦较坛。不贅述印蔗。
第二個(gè)需求其實(shí)也很好辦——在數(shù)據(jù)透視表中鉆取未完成學(xué)習(xí)任務(wù)的統(tǒng)計(jì)數(shù)據(jù)即可扒最。但鉆取有兩個(gè)問題:一是需要手動(dòng)去點(diǎn)擊,并不是所有人都知道數(shù)字可以點(diǎn)擊進(jìn)行鉆取的华嘹;二是鉆取出來的表格字段名稱都加上了數(shù)據(jù)模型的前綴吧趣,并且返回了所有行,實(shí)際上我需要的只不過是沒完成學(xué)習(xí)任務(wù)的人員名單而已。
三强挫、使用EVALUATE()函數(shù)
以下操作基于Excel2016岔霸。
1.點(diǎn)擊“數(shù)據(jù)標(biāo)簽”的“現(xiàn)有連接”;
2.切換到“表”;
3.選一個(gè)數(shù)據(jù)量最少的表(因?yàn)楹竺娴牟僮髌鋵?shí)在數(shù)據(jù)模型中的任何一個(gè)表都可以,為了節(jié)省時(shí)間選數(shù)據(jù)最少的表翰意,如果選擇了數(shù)據(jù)量大的表梦湘,加載非常耗時(shí)間);
4.確定后表格被加載到新的Sheet中翼雀;
5.在加載出來的表格中右鍵選擇“表格-編輯DAX”;
6.在DAX命令編輯框中輸入下列公式后坑夯,完成:
EVALUATE
FILTER('結(jié)果','結(jié)果'[狀態(tài)]="學(xué)習(xí)中")
示例只是EVALUATE()函數(shù)最簡(jiǎn)單的用法,可以看到抡四,在DAX中無法直接查看的篩選器篩選結(jié)果柜蜈,用EVALUATE()函數(shù)就可以輕松顯示出結(jié)果來。
同時(shí)還可以看到指巡,輸入的代碼中淑履,“'結(jié)果'”其實(shí)是一個(gè)表格的名字,所以在第3步選擇數(shù)據(jù)模型中的任何表格都可以厌处,那為何我們不選擇一個(gè)數(shù)據(jù)量很少的表格呢鳖谈。
那為什么非要這么麻煩選擇一個(gè)表格,不直接創(chuàng)建一個(gè)Excel表格呢阔涉?這是因?yàn)镋VALUATE()函數(shù)是個(gè)DAX函數(shù)缆娃,只在PowerPivot數(shù)據(jù)模型中起作用,普通表格當(dāng)然就沒法使用EVALUATE()函數(shù)了瑰排。
優(yōu)點(diǎn)
1.可刷新贯要,無需用戶再去點(diǎn)擊;
2.顯示友好椭住,沒有多余的前綴等崇渗;
3.表格字段可用DAX自定義,無需全部顯示數(shù)據(jù)模型表格中的所有字段京郑。