對“Power BI之DAX神功:第3卷第13回”官方說法不認(rèn)同
我不認(rèn)同官方的說法。
CALCULATE(計算器,篩選器):第二個參數(shù)值為表時,外面的篩選沒有生效(個人感覺第二個參數(shù)還是行上下文,必須加CALCULATE/CALCULATETABLE/RELATEDTABLE變成篩選上下文)。
要么像孫興華在外面套CALCULATE,要么在第二個參數(shù)上加CALCULATETABLE/RELATEDTABLE
代碼如下:
實驗表12 =
ADDCOLUMNS (
VALUES ('學(xué)生表'[姓名]),
//VALUES ('成績表'[學(xué)號]),
"列篩選", CALCULATE([總分],'成績表'[分?jǐn)?shù)] > 1),
"表篩選", CALCULATE([總分],FILTER ('成績表','成績表'[分?jǐn)?shù)] > 1)), //不正常:外面的篩選沒有生效
/*
CALCULATE(計算器,篩選器):第二個參數(shù)值為表時,外面的篩選沒有生效(個人感覺第二個參數(shù)還是行上下文,必須加CALCULATE/CALCULATETABLE/RELATEDTABLE)。
要么像孫興華在外面套CALCULATE,要么在第二個參數(shù)上加CALCULATETABLE/RELATEDTABLE
*/
"表篩選2", calculate(CALCULATE ([總分],FILTER ('成績表','成績表'[分?jǐn)?shù)] > 1))), //正常
"表篩選3", CALCULATE([總分], ?CALCULATETABLE(FILTER ('成績表','成績表'[分?jǐn)?shù)] > 1)) ?), //正常
"表篩選4", CALCULATE([總分], ?FILTER (RELATEDTABLE('成績表'),'成績表'[分?jǐn)?shù)] > 1) ?), //正常
"表篩選5", CALCULATE([總分], ?FILTER(RELATEDTABLE('成績表'), '成績表'[分?jǐn)?shù)] > 1) ?), //正常
"FILTER改為ADDCOLUMNS函數(shù)", CALCULATE ([總分],ADDCOLUMNS( '成績表',"值為1",1)), //不正常:外面的篩選沒有生效,FILTER改為ADDCOLUMNS也會出現(xiàn)這個問題
"FILTER改為ADDCOLUMNS函數(shù)2", CALCULATE( ? CALCULATE([總分],ADDCOLUMNS( '成績表',"值為1",1)) ? ), //正常
"FILTER改為ADDCOLUMNS函數(shù)3", CALCULATE( ? [總分],CALCULATETABLE( ADDCOLUMNS( '成績表',"值為1",1) ) ? ) ?, //正常
/*
? ?"FILTER外面套ADDCOLUMNS", CALCULATE( ? [總分],CALCULATETABLE( ADDCOLUMNS( FILTER ('成績表','成績表'[分?jǐn)?shù)] > 1),"值為1",1) ) ? ) ?, //正常
? ?"FILTER外面套ADDCOLUMNS_2", CALCULATE( ? CALCULATE([總分],ADDCOLUMNS( FILTER ('成績表','成績表'[分?jǐn)?shù)] > 1),"值為1",1)) ? ), //正常
*/
"總分",SUM('成績表'[分?jǐn)?shù)]),
"總分2",calculate(SUM('成績表'[分?jǐn)?shù)])),
"總分3",calculate(SUM('成績表'[分?jǐn)?shù)]),'成績表') //看第二個參數(shù)是一個表時就有問題
)
運(yùn)行后的結(jié)果圖如下




這三列的代碼如下:
列1 = CALCULATE( ?SUM('成績表'[分?jǐn)?shù)]) ?,'成績表'[分?jǐn)?shù)]>1)
列2 = CALCULATE( ?SUM('成績表'[分?jǐn)?shù)]) ?,FILTER('成績表','成績表'[分?jǐn)?shù)]>1) ? ? ?)
列3 =
CALCULATE(
SUM('成績表'[分?jǐn)?shù)]),
CALCULATETABLE(
FILTER('成績表','成績表'[分?jǐn)?shù)]>1),
ALLEXCEPT('成績表','成績表'[學(xué)號],'成績表'[科目],'成績表'[分?jǐn)?shù)]))
)