99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2020-05-13 閱讀量: 1384
DAX函數(shù):關(guān)于能否將聚合函數(shù)直接嵌套進(jìn)其他函數(shù)內(nèi)部使用的問(wèn)題

首先看兩個(gè)新建度量值的公式:

度量值1=rankx(all('公司信息'[城市]),[1.金額合計(jì)])

度量值=rankx(all('公司信息'[城市]),sum('商機(jī)記錄'[商機(jī)金額(M)])

其中[1.金額合計(jì)]的公式就是sum('商機(jī)記錄'[商機(jī)金額(M)]的公式

然而,兩個(gè)度量值在拖入表格后的結(jié)果不同

前者是1,2,3,4,5

后者是1,1,1,1,1

這因?yàn)樵赑owerBI的底層運(yùn)算邏輯中存在“行上下文”和“篩選上下文”的區(qū)別,要完全弄懂兩者的區(qū)別很浪費(fèi)時(shí)間,可以簡(jiǎn)單理解為行上下文是雙層循環(huán),篩選上下文是單層循環(huán),而計(jì)算排名如果使用篩選上下文會(huì)導(dǎo)致錯(cuò)誤。

個(gè)人的淺顯理解如下(可能很片面,希望讀者能夠補(bǔ)充):

篩選上下文,因?yàn)槭菃螌友h(huán),只會(huì)遍歷一次城市名列表,所以在算完一個(gè)城市的金額以后會(huì)直接排序,此時(shí)其他城市沒(méi)有計(jì)算結(jié)果,所以排名是1,在遍歷下一個(gè)城市的時(shí)候,前面的計(jì)算值會(huì)刷新,第二個(gè)城市有金額,然后直接排序,其他的還是沒(méi)金額,仍然是第1,以此類推。

行上下文是兩層循環(huán),外層第一個(gè)城市北京,內(nèi)層sum全部遍歷,返回了所有城市的金額,然后對(duì)外層的第一個(gè)城市排序,這時(shí)候名次正確,然后外層循環(huán)到第二個(gè)城市,這時(shí)候內(nèi)層sum又全部計(jì)算一次,第二個(gè)城市又生成排名,然后是外層第三個(gè)城市,這時(shí)候內(nèi)層sum再次全部遍歷,生成第三個(gè)城市正確排名,以此類推。

如果僅僅是數(shù)據(jù)分析,我們需要做到的是避免犯這種錯(cuò)誤,所以“不要把聚合函數(shù)直接嵌套進(jìn)其他函數(shù)內(nèi)部使用,需要先把聚合函數(shù)在外部創(chuàng)建度量值,然后將度量值引用進(jìn)入其他函數(shù)內(nèi)部”或者“使用calculate函數(shù)包裹聚合函數(shù)放入其他函數(shù)內(nèi)部,因?yàn)閏alculate可以把篩選上下文轉(zhuǎn)成行上下文”

24.6498
1
關(guān)注作者
收藏
評(píng)論(0)

發(fā)表評(píng)論

暫無(wú)數(shù)據(jù)
推薦帖子