一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Power BI Desktop 中的 DAX 基本概念

 昵稱62862138 2021-04-07

在 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 公式:

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 公式時,將每個元素分解成你平日思考及說出的話語會很有幫助。 例如,你可以將此公式讀成:

對于名為 Total Sales 度量值,計算 (=) Sales 表的 [SalesAmount] 列中的值的總和。

添加到報表后,此度量值會將所包括的其他每個字段的銷售額(例如美國的手機)相加,進行計算并返回值。

你可能會想,“這個度量值的功能不是與直接將 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)建度量值公式

  1. 下載并打開 Contoso 銷售示例 Power BI Desktop 文件。

  2. 在“報表”視圖的字段列表中,右鍵單擊 Sales 表,然后選擇“新建度量值” 。

  3. 在編輯欄中,通過鍵入新的度量值名稱 Previous Quarter Sales 來替換“度量值” 。

  4. 在等號后鍵入前幾個字母 CAL ,然后雙擊要使用的函數(shù)。 在此公式中,需要使用 CALCULATE 函數(shù)。

    你將通過我們傳遞給 CALCULATE 函數(shù)的參數(shù),使用 CALCULATE 函數(shù)來篩選要求和的金額。 這就是所謂的嵌套函數(shù)。 CALCULATE 函數(shù)至少有兩個參數(shù)。 第一個參數(shù)是要計算的表達式,第二個參數(shù)是篩選器。

  5. 在 CALCULATE 函數(shù)的左括號 ( 之后,鍵入 SUM ,隨后是另一個左括號 (

    現(xiàn)在我們將參數(shù)傳遞給 SUM 函數(shù)。

  6. 開始鍵入 Sal ,然后選擇 Sales[SalesAmount] ,后跟右括號 ) 。

    這是 CALCULATE 函數(shù)的第一個表達式參數(shù)。

  7. 在空格后鍵入逗號 (, ) 以指定第一個篩選器,然后鍵入 PREVIOUSQUARTER 。

    你將使用 PREVIOUSQUARTER 時間智能函數(shù)按上一季度來篩選 SUM 結(jié)果。

  8. 在 PREVIOUSQUARTER 函數(shù)的括號 ( 之后,鍵入 Calendar[DateKey] 。

    PREVIOUSQUARTER 函數(shù)有一個參數(shù),即包含連續(xù)日期范圍的列。 在本例中,這是日歷表中的 DateKey 列。

  9. 通過鍵入兩個兩個右括號 )) 關(guān)閉要傳遞給 PREVIOUSQUARTER 和 CALCULATE 函數(shù)的兩個自變量 。

    該公式現(xiàn)在應如下所示:

    Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  10. 選中復選標記 “復選標記”圖標 或按 Enter 鍵,驗證公式并將其添加到模型中。

你做到了! 你剛才使用 DAX 創(chuàng)建了一個復雜的度量值,而不是一個簡單的度量值。 這個公式將根據(jù)報表中應用的篩選器來計算上一季度的總銷售額。 例如,如果我們將 SalesAmount 和新的 Previous Quarter Sales 度量值放置于圖表中,然后添加 Year 和 QuarterOfYear 作為切片器,則會得到類似如下的結(jié)果:

Previous Quarter Sales 和 SalesAmount 圖

為你介紹 DAX 公式的幾個重要方面:

  • 此公式包括兩個函數(shù)。 PREVIOUSQUARTER 時間智能函數(shù)被嵌套為參數(shù)傳遞給 CALCULATE 篩選器函數(shù)。

    DAX 可以包含多達 64 個嵌套函數(shù)。 一個公式不大可能會包含這么多嵌套函數(shù)。 實際上,創(chuàng)建和調(diào)試這樣的公式會很困難,而且也不會太快。

  • 在此公式中,你同樣使用了篩選器。 篩選器會縮小要進行計算的范圍。 在本例中,你選擇了一個篩選器作為參數(shù),它實際上是另一個函數(shù)的結(jié)果。 稍后你將了解有關(guān)篩選器的詳細信息。

  • 你使用了 CALCULATE 函數(shù)。 此函數(shù)是 DAX 中功能最強大的函數(shù)之一。 當你創(chuàng)作模型并創(chuàng)建更復雜的公式時,可能會多次使用此函數(shù)。 雖然有關(guān) CALCULATE 函數(shù)的進一步討論不在本文的討論范圍內(nèi),但是隨著你對 DAX 了解的深入,請重視這個函數(shù)。

語法快速測驗

  1. 編輯欄上這個按鈕的功能是什么?

    按鈕選擇

  2. 一律會用什么括住 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ù)在以下方面是獨一無二的:

  • DAX 函數(shù)始終引用完整列或表。 如果你僅想使用某個表或列中的特定值,則可以向公式添加篩選器。

  • 如果需要逐行自定義計算,DAX 提供可讓你將當前行值或相關(guān)值用作一種參數(shù)的函數(shù),以便執(zhí)行因上下文而變的計算。 稍后你將了解有關(guān)上下文的詳細信息。

  • DAX 包括許多會返回表而非值的函數(shù)。 表不會顯示出來,但可以將其用于提供其他函數(shù)的輸入。 例如,你可以檢索表,然后計算其中的非重復值,或者計算所篩選的表或列的動態(tài)總和。

  • DAX 包括各種時間智能函數(shù)。 這些函數(shù)可讓你定義或選擇日期范圍,并基于此范圍執(zhí)行動態(tài)計算。 例如,你可以比較并行時間段內(nèi)的總和。

  • Excel 有一個熱門的函數(shù) VLOOKUP。 不同于 Excel 中的 VLOOKUP,DAX 函數(shù)不會采用單元格或單元格區(qū)域作為引用。 DAX 函數(shù)采用某一列或表作為引用。 請記住,在 Power BI Desktop 中,將使用關(guān)系數(shù)據(jù)模型。 查找另一個表中的值其實很簡單,而且在大多數(shù)情況下,完全不需要創(chuàng)建任何公式。

    如你所見,DAX 中的函數(shù)可幫助你創(chuàng)建功能非常強大的公式。 我們實際上只接觸到了函數(shù)的基本概念。 隨著你對 DAX 技能的熟悉,你將使用許多不同的函數(shù)來創(chuàng)建公式。 若要了解有關(guān)每個 DAX 函數(shù)的詳細信息,最好的辦法之一就是參閱 DAX 函數(shù)參考。

函數(shù)快速測驗

  1. 函數(shù)會始終引用何項?
  2. 一個公式是否可以包含多個函數(shù)?
  3. 可以使用哪種函數(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 的度量值中的以下公式:

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 中非常重要的原因。

上下文快速測驗

  1. 上下文有哪兩種類型?
  2. 什么是篩選上下文?
  3. 什么是行上下文?

本文末尾將提供解答。

摘要

現(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 也是一個不錯的起點。

快速測驗答案

語法:

  1. 驗證度量值并將其輸入模型中。
  2. 方括號 []。

函數(shù):

  1. 表和列。
  2. 是。 公式可以包含多達 64 個嵌套函數(shù)。
  3. 文本函數(shù)。

上下文:

  1. 行上下文和篩選上下文。
  2. 計算中用于確定單個值的一個或多個篩選器。
  3. 當前行。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章

    久久三级国外久久久三级| 久久碰国产一区二区三区| 欧美夫妻性生活一区二区| 懂色一区二区三区四区| 老熟女露脸一二三四区| 国产精品大秀视频日韩精品| 中文字幕一二区在线观看| 妻子的新妈妈中文字幕| 九九热这里只有精品哦| 黄片三级免费在线观看| 国产伦精品一一区二区三区高清版| 日韩一区二区三区观看| 色婷婷在线精品国自产拍| 老富婆找帅哥按摩抠逼视频| 最新69国产精品视频| 成人欧美精品一区二区三区| 日本午夜精品视频在线观看| 中文字幕中文字幕在线十八区 | 国产精品欧美日韩中文字幕| 国产精品99一区二区三区| 亚洲中文字幕综合网在线| 久久精品亚洲欧美日韩| 国产成人精品国产成人亚洲| 亚洲高清中文字幕一区二三区| 欧美国产日产在线观看| 国产精品夜色一区二区三区不卡| 日韩av亚洲一区二区三区| 日韩一区中文免费视频| 激情国产白嫩美女在线观看| 欧美日韩成人在线一区| 午夜福利黄片免费观看| 日韩一区二区三区嘿嘿| 婷婷基地五月激情五月| 国产精品一区日韩欧美| 日本东京热视频一区二区三区| 91在线爽的少妇嗷嗷叫| 色哟哟精品一区二区三区| 久久精品蜜桃一区二区av| 亚洲综合色婷婷七月丁香| 黄色污污在线免费观看| 日本不卡一区视频欧美|