看了標題,可能很多人會心生疑問,比如……
dax語言是什麼?
答:……說來話長,簡而言之,dax,即資料分析表示式語言,是powerpivot和sql server分析服務**式的語言,具有強悍而高效的資料處理和挖掘能力……
等會,powerpivot又是什麼?
答:準確的說,我們這裡聊的是powerpivot for excel,所以,我們這裡說powerpivot是excel的乙個載入項,它可以實施乙個快速而強大的記憶體資料庫,可以整合來自不同資料來源的資料,通過在資料之間建立關係來構建資料模型,而且它取消 excel 中的行和列限制,可以處理千萬條資料不費吹灰之力……
聽不懂…………真聽不懂……
打個響指,不懂就不懂吧,概念的東西心裡過一下有個大概也就行了。
言歸正傳,我們今天聊dax語言在excel列表中的查詢應用,外甥打燈籠——照舅,還是用栗子來說事。
假設我們現在有兩份工作簿,乙份名為【資料來源】,乙份名為【我的分析】;
其中【資料來源】工作簿的【銷售表】中存放了如下圖所示的資料,我們需要在【我的分析】工作簿中對其進行計算處理。
我們知道excel函式在處理跨工作簿資料時有很大的侷限性,當被引用資料所在的工作簿關閉時,除了部分引用類函式,很難從中取值,更不用說進一步的資料處理與分析了,所以這個問題並不適合採用函式處理。
你可以使用sql,或者vba,再或者dax。前兩者的方法我們多少分享過,dax近乎絕跡,今就分享下dax的常用資料查詢語句。
第1步,獲取外部資料。
尋找到目標工作簿(資料來源),選取目標**後(銷售表),單擊【確定】按鈕,在彈出的【匯入資料】對話方塊中,勾選【將此資料新增到資料模型】。
【資料的放置位置】設定為現有工作表的a1單元格。單擊【確定】按鈕,銷售表的資料將會完全讀入到當前工作表中,並以「列表」的形式存在。
第2步,編輯dax語言
右鍵單擊資料列表的任意單元格,在彈出的右鍵快捷選單中,依次單擊【**】→【編輯dax】
在彈出的【編輯dax】對話方塊中,命令型別選擇【dax】,即可根據實際資料分析需求,編輯dax語言。
常用dax查詢語句如下:(注意語句前要加上 evaluate )
(1)字段選取。假設我們只需要獲取【銷售表】的「產品」和「數量」兩個欄位的資料。
summarize('銷售表',[產品],[數量])
(2)條件查詢。假設我們只需產品名為「大花」的銷售記錄。
filter('銷售表',[產品]="大花")
(3)彙總求和。假設我們需要獲取每件商品的銷售總數量。
summarize('銷售表',[產品],"總數量",sum('銷售表'[數量]))
(4)條件求和。假設我們只需要獲取「祝洪忠」的銷售總數量。
summarize(filter('銷售表',[產品]="祝洪忠" ),[產品],"總數量",sum('銷售表'[數量]))
(5)彙總計數。假設我們需要獲取每件商品的銷售總次數。
summarize('銷售表',[產品],"總次數",countrows('銷售表'))
(6)條件計數。假設我們只需要獲取「看見星光」的銷售總次數。
summarize(filter('銷售表',[產品]="看見星光" ),[產品],"總次數",countrows('銷售表'))
(7)名次查詢。假設我們只需要獲取銷售總額前三名的資料,並按降序排列。
summarize(topn(3,'銷售表',calculate(sum('銷售表'[總價]))),[產品],[總價]) order by [總價] desc
(8)去重查詢。假設我們只需要提取去重複的產品名稱。
summarize('銷售表',[產品])
未完,待補,下次再聊。
拱手再見,祝安康,祝涼爽。
evaluate語句 常用DAX查詢語句
看了標題,可能很多人會心生疑問,比如 dax語言是什麼?答 說來話長,簡而言之,dax,即資料分析表示式語言,是powerpivot和sql server分析服務 式的語言,具有強悍而高效的資料處理和挖掘能力 等會,powerpivot又是什麼?答 準確的說,我們這裡聊的是powerpivot fo...
robot中使用evaluate轉化資料格式
如果你使用robot卻沒有用過evaluate,那你將永遠禁錮在框架中。json物件格式入參可以使用字典格式直接傳入,但最近有乙個介面測試的入參是乙個json陣列,在傳參時總是提示請求引數不合法,使用create dictionary構造資料時又會給陣列加上引號,這樣肯定不能正常傳參 所以可以將入參...
excel生成insert語句
在需要生成sql的資料 後面輸入如下語句 concatenate insert into bts business2.b bts hive plan target date,plan id,version id,target name,target value values a2,b2,c2,d2,...