在 Power BI Desktop 中應用 DAX 的基礎(chǔ)知識本文適用于剛開始使用 Power BI Desktop 的用戶。 為你提供有關(guān)如何使用數(shù)據(jù)分析表達式 (DAX) 的快速而簡單的介紹,以便解決一些基本計算和數(shù)據(jù)分析問題。 我們將逐一探討一些概念性信息、一系列可以完成的任務以及測試所學內(nèi)容的知識檢查。 學習完本文后,你便可充分了解 DAX 中最重要的基本概念。 DAX 是什么?DAX 是公式或表達式中可用于計算并返回一個或多個值的函數(shù)、運算符或常量的集合。 簡單來說,DAX 可幫助你通過模型中已有的數(shù)據(jù)來創(chuàng)建新信息。 為什么 DAX 很重要?可以輕松地創(chuàng)建新的 Power BI Desktop 文件并導入一些數(shù)據(jù)。 你甚至可以創(chuàng)建顯示寶貴見解的報表,而完全不需要使用任何 DAX 公式。 但是,如果你需要分析跨產(chǎn)品類別和不同日期范圍內(nèi)的增長百分比,該怎么辦? 或者,需要計算相對于市場趨勢的同比增長,該怎么辦? DAX 公式具備這項功能以及許多其他重要功能。 了解如何創(chuàng)建有效的 DAX 公式可幫助你充分利用數(shù)據(jù)。 獲取所需信息后,便可開始解決影響最終贏利的實際商業(yè)問題。 這便是 Power BI 的強大之處,而 DAX 將幫助你達成目的。 先決條件你可能已經(jīng)熟悉如何在 Microsoft Excel 中創(chuàng)建公式。 這一知識有助于了解 DAX,但即使你沒有使用 Excel 公式的經(jīng)驗,此處描述的概念也將幫助你開始創(chuàng)建 DAX 公式并立即解決真實世界的 BI 問題。 我們將重點介紹計算中所用的 DAX 公式,更確切地說,也就是度量值和計算列中所用的 DAX 公式。 你應該已經(jīng)熟悉使用 Power BI Desktop 來導入數(shù)據(jù)以及將字段添加到報表,而且還應熟悉度量值和計算列的基本概念。 示例工作簿了解 DAX 的最佳方式是創(chuàng)建一些基本公式,用它來處理實際數(shù)據(jù),并親自查看結(jié)果。 此處的示例和任務使用 Power BI Desktop 的 Contoso 銷售示例文件。 此示例文件與 教程:在 Power BI Desktop 中創(chuàng)建你自己的度量值一文中使用的相同示例文件。 現(xiàn)在就開始吧!我們將圍繞三個基本概念來闡述對 DAX 的理解:語法 、函數(shù) 和上下文 。 DAX 還有其他重要概念,但了解這三個概念將為你學習 DAX 技能奠定最佳基礎(chǔ)。 語法創(chuàng)建你自己的公式之前,我們來看看 DAX 公式語法。 語法包括組成公式的各種元素,簡單來說就是公式的編寫方式。 例如,以下是某個度量值的簡單 DAX 公式: 此公式包含以下語法元素: A. 度量值名稱 Total Sales。 B. 等號運算符 ( = ) 表示公式的開頭。 完成計算后將會返回結(jié)果。 C. DAX 函數(shù) SUM 會將 Sales[SalesAmount] 列中的所有數(shù)字相加。 稍后你將了解有關(guān)函數(shù)的詳細信息。 D. 括號 () 會括住包含一個或多個參數(shù)的表達式。 所有函數(shù)都至少需要一個參數(shù)。 一個參數(shù)會傳遞一個值給函數(shù)。 E. 引用的表 Sales。 F. Sales 表中的引用列 [SalesAmount]。 使用此參數(shù),SUM 函數(shù)就知道在哪一列上進行聚合求和。 嘗試了解 DAX 公式時,將每個元素分解成你平日思考及說出的話語會很有幫助。 例如,你可以將此公式讀成:
添加到報表后,此度量值會將所包括的其他每個字段的銷售額(例如美國的手機)相加,進行計算并返回值。 你可能會想,“這個度量值的功能不是與直接將 SalesAmount 字段添加到我的報表中一樣嗎?” 沒錯。 但是,創(chuàng)建自己的度量值來對 SalesAmount 字段中的值求和有個好處:我們可以將它當作參數(shù)用于其他公式。 雖然現(xiàn)在可能有點難以理解,但隨著你對 DAX 公式的熟悉,了解這度量值可讓你的公式和模型更有效率。 事實上,稍后你將看到 Total Sales 度量值如何顯示為其他公式中的參數(shù)。 現(xiàn)在我們將討論關(guān)于此公式的一些其他內(nèi)容。 我們將著重介紹 SUM 函數(shù)。 函數(shù)是預編寫的公式,能夠簡化復雜計算和對數(shù)字、日期、時間、文本等內(nèi)容的操作。 稍后你將了解有關(guān)函數(shù)的詳細信息。 你還會看到 [SalesAmount] 列前面加上了列所屬的 Sales 表。 這就是所謂的完全限定列名稱,因為它包括列名稱且前面加上了表名。 同一個表中引用的列不需要在公式中包含表名,這可以使引用多個列的長公式更短且更易于閱讀。 但是,最好能夠在你的度量值公式中包含表名,即使在同一表中亦然。 備注 如果表名包含空格、保留的關(guān)鍵字或不允許的字符,則必須用單引號引住該表名。 如果該名稱包含 ANSI 字母數(shù)字字符范圍以外的任何字符,則不論你的區(qū)域設(shè)置是否支持字符集,均需用引號引住表名。 公式語法的正確性非常重要。 大多數(shù)情況下,如果語法不正確,將返回語法錯誤。 其他情況下,語法可能正確,但返回的值可能不是預期值。 Power BI Desktop 中的 DAX 編輯器包括了建議功能,這項功能通過幫助你選擇正確的元素來創(chuàng)建語法正確的公式。 我們來創(chuàng)建一個簡單公式。 此任務將幫助你進一步了解公式語法以及編輯欄中的建議功能可以起到怎樣的作用。 任務:創(chuàng)建度量值公式
你做到了! 你剛才使用 DAX 創(chuàng)建了一個復雜的度量值,而不是一個簡單的度量值。 這個公式將根據(jù)報表中應用的篩選器來計算上一季度的總銷售額。 例如,如果我們將 SalesAmount 和新的 Previous Quarter Sales 度量值放置于圖表中,然后添加 Year 和 QuarterOfYear 作為切片器,則會得到類似如下的結(jié)果: 為你介紹 DAX 公式的幾個重要方面:
語法快速測驗
本文末尾將提供解答。 函數(shù)函數(shù)是通過使用特定值、調(diào)用參數(shù),并按特定順序或結(jié)構(gòu)來執(zhí)行計算的預定義公式。 參數(shù)可以是其他函數(shù)、另一個公式、表達式、列引用、數(shù)字、文本、邏輯值(如 TRUE 或 FALSE)或者常量。 DAX 包含以下函數(shù)類別:日期和時間函數(shù)、時間智能函數(shù)、信息函數(shù)、邏輯函數(shù)、數(shù)學函數(shù)、統(tǒng)計函數(shù)、文本函數(shù)、父/子函數(shù)和其他函數(shù)。 如果你熟悉 Excel 公式中的函數(shù),那么 DAX 中的很多函數(shù)都會讓你覺得相似;但是,DAX 函數(shù)在以下方面是獨一無二的:
函數(shù)快速測驗
本文末尾將提供解答。 上下文上下文是需要了解的重要 DAX 概念之一。 DAX 中有兩種上下文類型:行上下文和篩選上下文。 首先我們來看看行上下文。 行上下文 將行上下文想象成當前行是最簡單的做法。 每當公式中含有應用了篩選器以識別表中某一行的函數(shù)時,都可應用此方法。 函數(shù)會應用所篩選的表中每行的固有行上下文。 這種類型的行上下文最常應用于度量值中。 篩選器上下文 篩選上下文比行上下文稍微更難理解。 可以非常輕松地將篩選器上下文視為:決定結(jié)果或值的計算中所應用的一個或多個篩選器。 篩選上下文并非原本就存在于行上下文中;而是另外應用到行上下文。 例如,若要進一步縮小要包括在計算中的值,可以應用篩選上下文,該篩選上下文不僅要指定行上下文,還要指定該行上下文中的特定值(篩選)。 可以在報表中輕松看到篩選上下文。 例如,當你將 TotalCost 添加到可視化效果,然后添加 Year 和 Region 時,你正在定義基于給定年份和區(qū)域來選擇數(shù)據(jù)子集的篩選上下文。 為什么篩選上下文對 DAX 很重要? 因為不僅可以通過將字段添加到可視化效果而輕松應用篩選上下文,還可以通過使用 ALL、RELATED、FILTER、CALCULATE 等函數(shù),按照關(guān)系、其他度量值和列來定義篩選器,從而實現(xiàn)在 DAX 公式中應用篩選上下文。 例如,我們來看看名為 Store Sales 的度量值中的以下公式: 為了更好地理解此公式,我們可以像處理其他公式一樣對其進行分解: 此公式包含以下語法元素: A. 度量值名稱 Store Sales。 B. 等號運算符 ( = ) 表示公式的開頭。 C. CALCULATE 函數(shù)會在根據(jù)指定篩選器所修改的上下文中,作為參數(shù)來計算表達式。 D. 括號 () 會括住包含一個或多個參數(shù)的表達式。 E. 同一表中作為表達式的 [Total Sales] 度量值。 Total Sales 度量值的公式為:=SUM(Sales[SalesAmount])。 F. 逗號 ( , ) 會分隔第一個表達式參數(shù)和篩選參數(shù)。 G. 完全限定的引用列為 Channel[ChannelName] 。 這是我們的行上下文。 此列中的每行各指定一個通道,例如 Store 或 Online。 H. 將特定值 Store 作為篩選器。 這是我們的篩選上下文。 此公式可確保僅針對將“Store”值用作篩選器的 Channel[ChannelName] 列中的行,計算 Total Sales 度量值所定義的銷售額值 。 正如你所想象的,能夠在公式內(nèi)定義篩選上下文是多么巨大且強大的功能。 能夠僅引用相關(guān)表中的特定值不過是其中一例。 如果你現(xiàn)在尚未完全理解上下文,請不要擔心。 創(chuàng)建自己的公式時,你將可以更好地理解上下文以及其在 DAX 中非常重要的原因。 上下文快速測驗
本文末尾將提供解答。 摘要現(xiàn)在你對 DAX 中最重要的概念有了基本的認識,可以開始獨立創(chuàng)建度量值的 DAX 公式。 DAX 確實有點難以理解,但是有許多資源可供你使用。 讀完本文并對自己的幾個公式進行試驗之后,你可以進一步了解可幫助你解決業(yè)務問題的 DAX 概念和公式。 有許多 DAX 資源可供你使用;最重要的就是數(shù)據(jù)分析表達式 (DAX) 參考。 因為 DAX 在 Power Pivot 和 Analysis Services 表格模型等其他 Microsoft BI 工具中已存在數(shù)年,所以有許多有用信息。 你可以從 Microsoft 和頂級 BI 專業(yè)人員所提供的書籍、白皮書和博客中找到詳細信息。 TechNet 上的 DAX 資源中心 Wiki 也是一個不錯的起點。 快速測驗答案語法:
函數(shù):
上下文:
|
|
來自: 昵稱62862138 > 《待分類》