美國留學選擇什么專業(yè)好?留學美國熱門專業(yè)推薦
2019-06-26
更新時間:2024-03-12 05:10作者:小樂
SUMMARIZE函數(shù)非常強大,一旦掌握了它看起來就非常好用,所以我會專門寫一篇文章來介紹這個函數(shù)。至于是否必須使用該功能,請先閱讀后再決定。 SUMMARIZE,純粹從英語語義來看,意思是匯總、匯總,其功能確實是匯總,并且可以返回一個匯總表。您可以從官方文檔https://docs.microsoft.com/en-us/dax/summarize-function-dax查看該函數(shù)的描述。它的參數(shù)非常復雜,難以理解。參數(shù)有很多,有些參數(shù)是可選的??芍貜汀V苯訌奈臋n中理解并不容易。我們可以通過例子來理解它的用法。它的許多參數(shù)是可選的。讓我們從參數(shù)少到參數(shù)多一步步看一下它的功能。 01 |從維度表中提取以下表達式將提取唯一的產(chǎn)品名稱:
維度表1=SUMMARIZE('訂單','訂單'[產(chǎn)品名稱])
當SUMMARIZE函數(shù)的第一個參數(shù)是表并且第二個參數(shù)是列時,它將返回該列的唯一列表。其功能與VALUES類似。不過,SUMMARIZE函數(shù)還可以繼續(xù)添加第三個和第四個參數(shù)列.請參見以下表達式的返回結果,
維度表2=SUMMARIZE('訂單','訂單'[產(chǎn)品名稱],'日期表'[年份])
當SUMMARIZE 參數(shù)表后跟多列時,它將返回這些列的有效組合,類似于笛卡爾積。和笛卡爾積稍有不同的是,如果訂單表中不存在這個組合,那么在返回的列表中,不會出現(xiàn)這一行。例如,如果2016 年沒有銷售智能手表,則上面的表達式將不會有2016 年智能手表行。 02 |返回匯總表根據(jù)上面的表達式,我們繼續(xù)添加參數(shù)如下:
匯總表1=SUMMARIZE('訂單', '日期表'[年份], '訂單'[產(chǎn)品名稱], \'總銷售額\',SUM('訂單'[銷售額]))
當SUMMARIZE參數(shù)后面跟有列名和表達式時,它會自動計算并返回分組匯總表。這是函數(shù)的本質(zhì)作用,也符合它的字面意思。這個功能非常好用,也是我們最常使用的地方。 03 |返回包含總計的匯總表。這是SUMMARIZE的高級功能。在上面表達式中的分組列周圍加上一層ROLLUP,看看效果如何?
匯總表2=SUMMARIZE('訂單', ROLLUP('日期表'[年份],'訂單'[產(chǎn)品名稱]), \'總銷售額\',SUM('訂單'[銷售額]))
您可以看到匯總表下方還有幾行總計。這就是ROLLUP參數(shù)的作用。它僅由SUMMARIZE 在內(nèi)部用于計算子類別的小計和總計。 SUMMARIZE 中可以使用的另一個參數(shù)是ROLLUPGROUP。在上面的表達式中使用ROLLUPGROUP 代替ROLLUP 可以返回相同的結果。但是,如果我們在上面的表達式ROLLUP 中再放入一層ROLLUPGROUP,
匯總表3=SUMMARIZE('訂單', ROLLUP(ROLLUPGROUP('日期表'[年份],'訂單'[產(chǎn)品名稱])), \'總銷售額\',SUM('訂單'[銷售額]) )
分組小計消失,僅返回總計。 ROLLUP和ROLLUPGROUP的組合可以避免小計,只返回總計。這使得匯總表看起來更像Excel 中的數(shù)據(jù)透視表。關于ROLLUP和ROLLUPGROUP參數(shù),其實它們的求和函數(shù)并不常用,但卻導致很多人認為SUMMARIZE很復雜。如果你也有同樣的感覺,那么你就不需要深究這兩個參數(shù)的用法了,因為你基本上不知道如何使用它們。使用它們。 SUMMARIZE 最常用的函數(shù)是上面的第二個函數(shù)。讓我們回顧一下這個用法。返回匯總表確實很實用,但是這是最佳的寫法嗎?使用ADDCOLUMNS 返回匯總表02 示例中的表達式。您還可以將其替換為以下表達式,
匯總表4=ADDCOLUMNS( SUMMARIZE( '訂單', '日期表' [年份], '訂單' [產(chǎn)品名稱] ), \'總銷售額\',CALCULATE(SUM('訂單'[銷售額])) ) 是使用ADDCOLUMNS 函數(shù)根據(jù)SUMMARIZE 生成的分組添加列以計算銷售匯總??梢苑祷叵嗤慕Y果,但就性能而言,它比簡單地使用SUMMARIZE 更好。由于性能和內(nèi)部兼容性原因,不建議使用SUMMARIZE函數(shù)進行匯總。您可以使用上面的ADDCOLUMNS 和SUMMARIZE 組合來代替。還有一個性能更好的新函數(shù):SUMMARIZECOLUMNS。使用SUMMARIZECOLUMNS返回匯總表仍然會生成上面的匯總表。如何編寫SUMMARIZECOLUMNS:
匯總表5=SUMMARIZECOLUMNS('日期表'[年份], '訂單'[產(chǎn)品名稱],\'銷售總額\',CALCULATE(SUM('訂單'[銷售]))) 是不是看起來更簡潔了呢?它的第一個參數(shù)不再需要表格,而是直接是分組列。在實踐中,它的性能比ADDCOLUMNS和SUMMARIZE的組合要好,當然也遠遠好于SUMMARIZE。生成匯總表時,建議直接使用SUMMARIZECOLUMNS(關于性能,可以使用DAX Studio進行測試)。 SUMMARIZECOLUMNS應該是代替SUMMARIZE出現(xiàn)的,它可以實現(xiàn)SUMMARIZE的功能; SUMMARIZE的內(nèi)部參數(shù),如ROLLUPGROUP等,在SUMMARIZECOLUMNS中也存在,并且還有更多其他的內(nèi)部參數(shù)可以調(diào)用,但是對于普通DAX用戶來說,可能用不到,所以就不再介紹了。如果想深入理解請自行查看函數(shù)文檔??偨Y
當提取多列的有效組合時,可以使用SUMMARIZE 返回匯總表。建議使用SUMMARIZECOLUMNS。我是才武,PowerBI星球的作者。我在微信公眾號“PowerBI星球”回復“PowerBI”,獲得《七天入門Power BI》。電子書,輕松入門PowerBI。
如果喜歡的話,別忘了點贊和轉(zhuǎn)發(fā)哦。