Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統的電腦編寫的一款電子表格軟件。直觀的界面、出色的計算功能和圖表工具,再加上成功的市場營銷,使Excel成為最流行的個人計算機數據處理軟件。 Data Analysis Expressions (DAX) 乍聽起來有點唬人,但可別讓這名字把您給騙了。 DAX 基礎知識其實很容易理解。 首先說最重要的一點 — DAX 不是編程語言。 DAX 是一種公式語言。 可使用 DAX 來定義計算列和度量(也稱為計算字段)的自定義計算。 DAX 包含一些在 Excel 公式中使用的函數,此外還包含其他用于處理關系數據和執行動態聚合的函數。 了解 DAX 公式 DAX 公式與 Excel 公式非常相似。 要創建一個 DAX 公式,只需鍵入一個等號,后跟函數名或表達式以及所需的任何值或參數即可。 與 Excel 類似,DAX 提供多種函數,可用于處理字符串、使用日期和時間執行計算或者創建條件值。 但 DAX 公式在以下幾個重要方面卻有所不同:
使用 DAX 公式的位置 在Power Pivot中的計算列或計算字段中可以創建公式。 計算列 計算列是添加到現有 Power Pivot 表中的列。 無需粘貼或導入值,您可以在計算列中創建用于定義列值的 DAX 公式。 如果某個數據透視表(或數據透視圖)中包括 Power Pivot 表,則可以像使用任何其他數據列一樣使用計算列。 計算列中的公式非常類似于在 Excel 中創建的公式。 但與在 Excel 中不同,您不能為表中的不同行創建不同公式 — DAX 公式會自動應用到整個列。 當某列中包含公式時,將為每一行都計算值。 一旦創建公式就將立即為列計算結果。 只有在刷新基礎數據或者手動重新計算時,才重新計算列值。 可創建基于計算度量和其他計算列的計算列。 但請勿將同一名稱既用于計算列又用于度量,因為這可能導致結果混亂。 引用列時,最好使用完全限定的列引用,以避免無意中調用度量。 有關更多詳細信息,請參閱 Power Pivot 中的計算列。 度量 度量是一種公式,專門創建用于使用 Power Pivot 數據的數據透視表(或數據透視圖)。 度量可基于標準聚合函數,如 COUNT 或 SUM;你也可使用 DAX 自行定義公式。 度量在數據透視表的“值”區域中使用。 如果希望將計算得出的結果放置在數據透視表的其他區域,則應改用計算列。 為某個顯式度量定義公式時,在將該度量添加到數據透視表中之前,不會發生任何操作。 在添加度量時,對數據透視表的“值”區域中的每個單元計算該公式。 由于會為每個行和列標題組合都創建一個結果,因此度量的結果在每個單元格中可能有所不同。 所創建的度量的定義隨附其源數據表一并保存。 它出現在數據透視表字段列表中,可供工作簿的所有用戶使用。 有關更多詳細信息,請參閱 Power Pivot 中的度量。 使用編輯欄創建公式 與 Excel?相似,Power Pivot?提供的編輯欄讓創建和編輯公式更方便,以及記憶式鍵入功能,盡量減少鍵入和語法錯誤。 輸入表格名稱???開始鍵入表格的名稱。 公式自動完成功能提供了一個下拉列表,其中包含以這些字母開頭的有效名稱。 輸入列的名稱???鍵入方括號,然后從當前表格的列列表中選擇列。 對于來自其他表格的列,請先鍵入表格名稱的前幾個字母,然后從“自動完成”下拉列表中選擇列。 有關如何構建公式的詳細信息和演練,請參閱在 Power Pivot 中創建計算公式。 使用記憶式鍵入的提示 可以在具有嵌套函數的現有公式中使用公式記憶式鍵入功能。 與插入點緊鄰的前一個文本用于顯示下拉列表中的值,插入點之后的所有文本都保持不變。 “自動完成”下拉列表中不顯示為常量創建且已定義的名稱,但你仍可鍵入它們。 Power Pivot 不會添加函數的右括號或自動匹配括號。 您應確保每個函數在語法上都是正確的,否則就不能保存或使用公式。? 在公式中使用多個函數 可以嵌套函數,這意味著您可以使用一個函數的結果作為另一個函數的參數。 在計算列中,最多可以嵌套 64 層函數。 但是,嵌套可能會導致很難創建公式或者排除公式問題。 許多 DAX 函數設計為僅用作嵌套函數。 這些函數返回一個表,該表不能直接保存為結果,?而應作為表函數的輸入提供。 例如,函數 SUMX、AVERAGEX 和 MINX?全都要求將表作為第一個參數。 注意:?在度量內嵌套函數時存在一些限制,目的是確保列之間的依賴關系所要求的大量計算不會影響性能。 比較 DAX 函數和 Excel 函數 DAX 函數庫基于 Excel 函數庫,但這兩種庫有許多差異。 本節總結了 Excel 函數與 DAX 函數之間的差異和相似性。
DAX 數據類型 您可以將數據從可能支持不同數據類型的多種數據源導入 Power Pivot 數據模型中。 在導入或加載數據,然后在計算或數據透視表中使用這些數據時,數據會轉換為?Power Pivot 數據類型之一。 有關數據類型的列表,請參閱數據模型中的數據類型。 表數據類型是 DAX 中的一種新數據類型,用作許多新函數的輸入或輸出。 例如,FILTER 函數采用表作為輸入,并輸出僅包含滿足篩選條件的行的另一個表。 通過組合表函數與聚合函數,可以對動態定義的數據集執行復雜計算。 有關詳細信息,請參閱 Power Pivot 中的聚合。 公式和關系模型 Power Pivot?窗口是一個區域,您可以在其中使用多個數據表,并通過“關系模型”將這些表連接起來。 在此數據模型中,表通過關系相互連接,這樣,您就可以創建與其他表中的列的關聯,并創建更有用的計算。 例如,可以創建對相關表的值進行求和的公式,然后將該值保存在一個單元格中。 或者,您可以對表和列應用篩選器,以便控制相關表中的行。 有關詳細信息,請參閱數據模型中表之間的關系。 由于可以使用關系來鏈接表,因此數據透視表還可以包含來自不同表中多個列的數據。 但是,由于公式可以處理整個表和列,因此您需要設計與在 Excel 中不同的計算。
更新公式的結果 “數據刷新”和“重新計算”是兩個各自獨立而又有相關性的操作,在設計包含復雜公式、大量數據或從外部數據源獲取的數據的數據模型時,應了解這兩項操作。 “刷新數據”是用外部數據源的新數據更新工作簿中數據的過程。 您可以按指定的時間間隔手動刷新數據。 或者,如果您已將工作簿發布到 SharePoint 網站,則可以從外部源安排自動刷新。 重新計算是對公式結果進行更新的過程,用于反映對公式本身的任何更改以及基礎數據中的那些更改。 重新計算會以下列方式影響性能:
公式疑難解答 編寫公式時出錯 如果定義公式時遇到錯誤,公式中可能包含語法錯誤、語義錯誤或計算錯誤。 語法錯誤是最容易解決的。 此類錯誤通常涉及缺少括號或逗號。 有關各個函數的語法的幫助,請參閱“DAX 函數參考”。 當語法正確而值或列引用對公式上下文無意義時,就會發生其他類型的錯誤。 以下任何問題都可能導致此類語義和計算錯誤:
在前四種情況下,DAX 會標記包含無效公式的整個列。 在最后一種情況下,DAX 灰顯該列來指示該列處于未處理狀態。 對列值進行排名或排序時,結果不正確或異常 對包含值 NaN (非數字)的列進行排名或排序時,可能會獲得不正確或意外的結果。 例如,當計算 0 除以 0 時,返回結果 NaN。 這是因為公式引擎通過比較數值來執行排序或排名;但是 NaN 卻無法與該列中的其他數字進行比較。 為了確保結果正確,您可以利用使用 IF 函數的條件語句來測試 NaN 值并返回數字 0 值。 與 Analysis Services 表格模型和 DirectQuery 模式的兼容性 通常,在 Power Pivot 中構建的 DAX 公式與 Analysis Services 表模型完全兼容。 但是,如果將 Power Pivot 模型遷移到某個 Analysis Services 實例,然后在 DirectQuery 模式下部署該模型,則存在一些限制。
有關詳細信息,請參閱 SQL Server 2012 聯機叢書中的 Analysis Services 表格模型文檔。 Excel整體界面趨于平面化,顯得清新簡潔。流暢的動畫和平滑的過渡,帶來不同以往的使用體驗。 |
溫馨提示:喜歡本站的話,請收藏一下本站!