假設我們現在有兩份工作簿,一份名為【數據源】,一份名為【我的分析】。其中【數據源】工作簿的【銷售表】中存放了如下圖所示的數據,我們需要在【我的分析】工作簿中對其進行計算處理。
我們知道Excel函數在處理跨工作簿數據時有很大的局限性,當被引用數據所在的工作簿關閉時,除了部分引用類函數,很難從中取值,更不用說進一步的數據處理與分析了,所以這個問題並不適合採用函數處理。
你可以使用SQL,或者VBA,再或者DAX。前兩者的方法我們多少分享過,DAX近乎絕跡,今就分享下DAX的常用數據查詢語句。
第1步,獲取外部數據。
首先,打開【我的分析】工作簿,單擊【數據】選項卡下的【現有連接】,再彈出的對話框中選擇【瀏覽更多】,如下圖所示:
尋找到目標工作簿(數據源),選取目標表格後(銷售表),單擊【確定】按鈕,在彈出的【導入數據】對話框中,勾選【將此數據添加到數據模型】。
【數據的放置位置】設置為現有工作表的A1單元格。單擊【確定】按鈕,銷售表的數據將會完全讀入到當前工作表中,並以「列表」的形式存在。
第2步,編輯DAX語言
右鍵單擊數據列表的任意單元格,在彈出的右鍵快捷菜單中,依次單擊【表格】→【編輯DAX】
在彈出的【編輯DAX】對話框中,命令類型選擇【DAX】,即可根據實際數據分析需求,編輯DAX語言。
常用DAX查詢語句如下:
(1) 欄位選取。假設我們只需要獲取【銷售表】的「產品」和「數量」兩個欄位的數據。
EVALUATE
SUMMARIZE('銷售表',[產品],[數量])
(2) 條件查詢。假設我們只需產品名為「大花」的銷售記錄。
EVALUATE
FILTER('銷售表',[產品]="大花")
(3) 匯總求和。假設我們需要獲取每件商品的銷售總數量。
EVALUATE
SUMMARIZE('銷售表',[產品],"總數量",SUM('銷售表'[數量]))
(4) 條件求和。假設我們只需要獲取「祝洪忠」的銷售總數量。
EVALUATE
SUMMARIZE(FILTER('銷售表',[產品]="祝洪忠" ),[產品],"總數量",SUM('銷售表'[數量]))
(5) 匯總計數。假設我們需要獲取每件商品的銷售總次數。
EVALUATE
SUMMARIZE('銷售表',[產品],"總次數",COUNTROWS('銷售表'))
(6) 條件計數。假設我們只需要獲取「看見星光」的銷售總次數。
EVALUATE
SUMMARIZE(FILTER('銷售表',[產品]="看見星光" ),[產品],"總次數",COUNTROWS('銷售表'))
(7) 名次查詢。假設我們只需要獲取銷售總額前三名的數據,並按降序排列。
EVALUATE
SUMMARIZE(TOPN(3,'銷售表',CALCULATE(SUM('銷售表'[總價]))),[產品],[總價]) ORDER BY [總價] DESC
(8) 去重查詢。假設我們只需要提取去重複的產品名稱。
EVALUATE
SUMMARIZE('銷售表',[產品])
文章來源於EXCEL之家,版權歸作者所有。
·END·
見微知著,數析萬象!請掃碼聯繫我們
往期內容推薦: