共用方式為


使用 DAX 查詢檢視

在 Power BI 中使用 DAX 查詢檢視,您可以在語意模型中檢視及使用 DAX 查詢。

DAX 查詢

在 Power BI 中,DAX 公式是用來定義不同類型的資料計算,但也可用來定義角色安全性。 DAX 查詢,另一方面可用來從模型傳回資料。

DAX 查詢類似於 SQL 查詢,因為它們可以顯示您已經擁有的資料。 DAX 查詢不會在報表的模型或視覺效果中建立項目。

DAX 查詢有兩個主要部分:

  • 需要 EVALUATE 陳述式。 它會指定查詢中傳回資料的內容和方式。
  • DEFINE 陳述式,為選擇性。 它可讓您定義在查詢中使用的 DAX 公式,例如量值。 使用 DAX 查詢 DEFINE MEASURE 建立或更新的量值是 DAX 查詢範圍量值,只在 DAX 查詢的內容中執行。 DAX 查詢範圍量值可以使用 CodeLens 更新模型動作新增至模型,或使用變更更新模型按鈕。

若要深入了解查詢的使用方式,請參閱 DAX 參考中的 DAX 查詢

開啟 DAX 查詢檢視

在 Power BI Desktop 中,選取左側 DAX 查詢檢視圖示。

螢幕擷取畫面顯示 Power BI Desktop 中的 DAX 查詢檢視視圖示。

在 Power BI 服務或 Fabric 入口網站工作區中,從操作功能表選擇 [撰寫 DAX 查詢]

在 Power BI 服務或 Fabric 入口網站語意模型詳細資料頁面中,從頁面頂端選取 [撰寫 DAX 查詢]

DAX 查詢檢視版面配置

讓我們進一步瞭解 Power BI Desktop 中的 DAX 查詢檢視。

圖表顯示 DAX 查詢檢視版面配置。

DAX 查詢檢視具有下列元素:

功能區

DAX 查詢檢視功能區具有撰寫 DAX 查詢時使用的常見動作。

DAX 查詢檢視功能區的螢幕擷取畫面。

讓我們進一步瞭解功能區中的元素:

設定查詢格式

選取 [格式化查詢] 功能區按鈕,或使用 SHIFT+ALT+F 來格式化目前的查詢。 查詢使用索引標籤縮排。 DAX 函數轉換為 UPPERCASE,並新增其他行。 將 DAX 查詢格式化視為最佳做法,且可改善 DAX 查詢可讀性。 格式設定也會縮排,讓您可以折疊和展開查詢的區段。

[格式化查詢] 按鈕的螢幕擷取畫面。

註解和取消註解

選取 [註解] 功能區按鈕,將雙反斜線 (//) 新增至游標所在的行開頭或所有選取行的開頭。 這會註解掉這些行,而且當 DAX 查詢執行時,會忽略這些行。

選取 [註解] 功能區按鈕,以移除游標所在的行開頭或所有選取行開頭的 //。 它不適用於新增多行註解標記法的行。

您也可以使用 CTRL+/ 在註解和取消註解之間切換。

螢幕擷取畫面顯示 DAX 查詢檢視功能區中 [註解] 和 [取消註解] 按鈕。

尋找並取代

選取 [尋找] 功能區按鈕,或使用 CTRL+F 在 DAX 查詢編輯器中搜尋文字。 尋找包含比對大小寫、比對整個字、使用規則運算式,以及循環查看目前查詢之所有相符項目的選項。 您也可以選取 [尋找] 方塊左邊的箭號,以輸入 [取代]。

螢幕擷取畫面顯示 DAX 查詢檢視功能區中的 [尋找] 按鈕。

選取功能區中的 [取代] 按鈕,或使用 CTRL+H 來搜尋和取代 DAX 查詢編輯器中的文字。 取代包含保留大小寫的選項,並一次取代一個或全部。

螢幕擷取畫面顯示 DAX 查詢檢視功能區中的 [取代] 功能。

命令選擇區

選取 [命令選擇區] 功能區按鈕,或使用 CTRL+ALT+P 開啟命令選擇區方塊。 您可以搜尋其他 DAX 查詢編輯器動作,並查看其相關聯的鍵盤快速鍵。

DAX 查詢檢視命令選擇區的螢幕擷取畫面。

命令列

DAX 查詢檢視命令列包含使用 DAX 查詢檢視時最重要的動作。

執行和取消

[執行] 按鈕會執行 DAX 查詢或查詢選取的行。 查詢執行之後的狀態會出現在較低的狀態列中。

DAX 查詢檢視命令列的螢幕擷取畫面。

當查詢執行時,按鈕會變成 [取消] 按鈕,可用來停止執行中的查詢。

DAX 查詢檢視取消的螢幕擷取畫面。

使用變更更新模型

[使用變更更新模型] 按鈕會使用 DAX 查詢範圍量值中的 DAX 公式新增或覆寫模型量值。 DAX 查詢範圍量值是在 DEFINE MEASURE 區塊中的那些量值。 或者,您可以選擇使用出現在每個量值上方的 CodeLens 文字,個別新增或覆寫模型量值。

DAX 查詢編輯器

DAX 查詢檢視包含查詢編輯器,您可以在其中撰寫和編輯查詢。 這不僅僅是一個更大的 DAX 資料編輯列。 它的功能更強大,而且有許多與 VS Code 中提供的 DAX 編輯器的相似點。

DAX 查詢編輯器具有下列元素:

建議與智慧感知

輸入您的查詢,並在編輯時取得建議和智慧感知的協助。

DAX 查詢編輯器智慧感知的螢幕擷取畫面。

使用 ENTER 或 TAB 新增反白顯示的智慧感知,或 SHIFT+ENTER 或 ALT+ENTER 以移至另一行,而不新增智慧感知選項。 選取 ESC 會關閉任何重疊。

暫留以查看量值公式

當 DAX 查詢中包含量值時,您可以將滑鼠停留在它上面,以查看公式、名稱和描述。

停留的螢幕擷取畫面,以查看量值公式特徵。

選取以查看量值燈泡快閃操作

在沒有 DEFINE 語句陳述式的查詢中選取 EVALUATE 陳述式中的量值,會顯示快閃操作燈泡。 選取 [定義][使用參考定義] 來建立具有此量值公式的 DEFINE 陳述式,可包含或不含參考量值 DAX 公式。

使用 CodeLens 更新模型量值

使用 DEFINE MEASURE,透過先讓您建立做為 DAX 查詢範圍的量值,會有助於建立量值。 您可以在一個視窗中編輯多個量值,然後執行查詢來查看所有查詢的結果,或只依資料行的特定群組查看其中部分結果。 您不需要在報表檢視中建立資料表視覺效果,並在量值公式之間來回切換。 CodeLens 會從此步驟再進一步,藉由在量值已存在於模型中時提供提示,或如果不存在,即可新增它。

CodeLens 是顯示在 DEFINE MEASURE 區塊上方的可點選文字。 對於模型中尚未存在的 DAX 查詢範圍量值,更新模型:新增量值 CodeLens 隨即出現,可在點選時新增模型量值。 對於已經存在於模型中的 DAX 查詢範圍量值,以及 DAX 範圍量值 DAX 公式不同時,更新模型:覆寫量值 CodeLens 隨即出現,可在點選時將模型量值變更為此 DAX 公式。

或者,您可以按一下 [命令] 列中的 [使用變更更新模型] 按鈕,以一次新增或覆寫多個量值。

量值更新工作流程

燈泡快閃操作和 CodeLens 可以在完整的工作流程中一起使用:

  1. 在量值的操作功能表中,選擇 [快速查詢],然後選擇 [評估] 以在新的 [查詢] 索引標籤中為您建立查詢。
  2. 選取查詢中的量值,以定義或使用參考定義,來新增 DEFINE 陳述式。
  3. 對量值進行運算式更新,然後執行 DAX 查詢以顯示變更。
  4. 當變更如預期般出現時,請使用 CodeLens 更新模型:覆寫量值將它儲存回模型。

以下是更有視覺效果的方式,以瞭解工作流程:

工作流程的圖表。

結果格線

執行查詢時,結果會顯示在結果方格中。

結果方格的螢幕擷取畫面:

如果在查詢編輯器中有多個 EVALUATE 陳述式,則可以傳回多個結果。 您可以使用 [結果] 下拉式清單來切換它們。 [複製] 按鈕會將整個方格複製為具有標頭的定位字元分隔資料表。 網格線可以使用右上角箭號來重設大小,或手動調整,將游標置於結果方格與查詢編輯器之間的框線上。

如果查詢產生錯誤,結果方格會顯示錯誤。

結果方格中錯誤訊息的螢幕擷取畫面。

複製按鈕會將錯誤傳送至剪貼簿。 錯誤的開頭表示查詢中錯誤的位置。 在上圖中,錯誤為:

查詢 (4,23) 無法判斷 'Sales 2' 的值。若非資料行不存在,就是此資料行沒有目前的資料列。

而「查詢(4,23)」表示錯誤位於第 4 行,字元 23。

查詢索引標籤

DAX 查詢檢視可以有多個查詢索引標籤,可以重新命名或移除。 其也顯示查詢的目前狀態。

[查詢] 索引標籤的螢幕擷取畫面。

每個索引標籤都包含狀態指示器:

  • 在執行查詢之前,不會顯示任何指標。
  • 綠色核取記號表示查詢執行成功。
  • 紅色十字表示發生錯誤。
  • 圓形中填滿的正方形表示查詢已取消。
  • 時鐘表示查詢正在執行。

查詢可以在背景中執行,讓您繼續處理其他查詢索引標籤。

儲存 DAX 查詢

當您從 Power BI Desktop 儲存時,DAX 查詢檢視查詢索引標籤會儲存在檔案中,因此您可以在再次開啟檔案時繼續前次離開的位置。 如果您使用開發人員模式來儲存 Power BI 專案,則每個查詢索引標籤都會作為 .dax 檔案包含在語意模型資料夾或報表資料夾的 DAXQueries 資料夾中 (如果它們是在即時連線的報表中建立的話)。 若要深入了解,請參閱 Power BI 開發人員模式文件

目前,您無法在 Power BI 服務中檢視或編輯先前在 Power BI Desktop 中新增的 DAX 查詢。 報表或語意模型的檢視者看不到以語意模型儲存的 DAX 查詢。

當您從 Power BI 服務或 Fabric 入口網站撰寫 DAX 查詢時,DAX 查詢檢視索引標籤會在關閉時捨棄。

[資料] 窗格

[資料] 窗格顯示模型中的項目,以協助您撰寫查詢。 這些項目大部分的編輯路徑都會在查詢檢視中遭到封鎖。

快速查詢

[資料] 窗格操作功能表包含 [快速查詢]。 使用快速查詢,在資料表、資料行和量值的新查詢索引標籤中建立查詢。 快速查詢的設計目的是要提升一般工作的生產力,並且建置的方式要能夠輕鬆地進行後續修改。 所有快速查詢都建立在新的查詢索引標籤中,並會自動執行。

任何位置

定義模型中的所有量值可建立查詢,其中有查詢中顯示的所有量值公式。 輕鬆地搜尋您所有量值的公式。

資料表
  • 顯示前 100 個資料列, 使用 SELECTCOLUMNS 顯示資料表的前 100 個資料列。 資料行會列在每一行上,以便透過註解行來輕鬆修改。 也會包含 ORDER BY 來指定排序次序。

    顯示前 100 個資料列的螢幕擷取畫面。

  • 顯示資料行統計資料會建立查詢,顯示表格中每個資料行的統計資訊。 請參閱多個公式,以瞭解如何將資料行彙總為 MIN、MAX、AVERAGE、COUNT 等等。

  • 定義此資料表中的所有量值會建立查詢,此資料表的量值公式會顯示在查詢中。

資料行
  • 顯示資料預覽 使用 DISTINCT 建立查詢,以查看資料行的值。

    顯示資料預覽的螢幕擷取畫面。

  • 顯示資料行統計資料會建立查詢,顯示此特定資料行的統計資訊。 請參閱多個公式,以瞭解如何將資料行彙總為 MIN、MAX、AVERAGE、COUNT 等等。 傳回的查詢會根據資料行的資料類型而有所不同,其中顯示數值、文字和日期數資料行的不同統計資料。

    顯示資料行預覽的螢幕擷取畫面。

量值
  • 評估會建立查詢以顯示量值的結果。 SUMMARIZECOLUMNS 可用來依資料行新增任何群組,以依特定群組顯示量值,例如: 國家/地區、產品等。

    評估量值的螢幕擷取畫面。

  • 定義和評估會建立查詢以顯示量值的結果,並在可修改的 DEFINE 陳述式中顯示量值公式。

    定義和評估量值的螢幕擷取畫面。

  • 使用參考定義並評估會建立查詢以顯示量值的結果,而且不僅會顯示可修改之 DEFINE 陳述式中的量值公式,也會顯示量值公式中參考的任何其他量值。 編輯量值完整內容中的任何部分。

    使用參考和評估定義的螢幕擷取畫面。

從效能分析器取得視覺 DAX 查詢

報表檢視中的視覺效果會藉由建立 DAX 查詢從模型取得資料。 您可以使用效能分析器,在 DAX 查詢檢視中檢視視覺物件查詢。 效能分析器可提供您對於視覺效果可能顯示非預期值的原因的深入解析,或只是快速啟動查詢的方式,您可以進一步修改查詢。

[報表檢視] 中,移至 [最佳化] 功能區,然後選取 [效能分析器]。 選取 [開始錄製],然後 [重新整理視覺效果]。 在下表中,展開視覺效果以查看在 DAX 查詢檢視中複製查詢或執行的選項。 在 DAX 查詢檢視中選取 [執行] 會採用視覺物件查詢、將它新增為 DAX 查詢檢視中的新 [查詢] 索引標籤,然後執行它。

效能分析器功能中視覺化 DAX 查詢的螢幕擷取畫面。

Power BI Desktop 中的 DAX 查詢檢視和即時連線

Power BI Desktop 可以在 OneLake 資料中樞中選取語意模型時,按一下 [連線],即時連線至已發佈的 Power BI 語意模型。 在 [報表] 檢視的右下角會顯示 [即時連線至 Power BI 語意模型]。 DAX 查詢檢視可用來在即時連線時撰寫 DAX 查詢。

模型量值

當即時連線到已發佈的 Power BI 語意模型時,您無法檢視或編輯模型量值。 [快速查詢] 選項僅限於 [評估]

報表量值 (Report measures)

當即時連線到已發佈的 Power BI 語意模型時,您可以建立報表量值。 報表量值可以使用 [報表][模型] 檢視中的 [新量值] 動作來建立,但正如名稱所示,只能在目前的報表中使用。 建立之後,DAX 查詢檢視中的 [快速查詢] 會顯示 [使用參考定義並評估] 的選項。 DAX 查詢會在語意模型上執行,因此報表量值必須一律轉換成 DEFINE MEASURE 區塊中要執行的 DAX 查詢範圍量值,因為它們不存在模型本身。

[使用變更更新模型] 按鈕和 CodeLens 選項以更新模型不適用於報表量值。

Web 中的 DAX 查詢檢視

從已發佈的語意模型撰寫 DAX 查詢會在 Web 中使用 DAX 查詢檢視。 Web 中的 DAX 查詢檢視與 Power BI Desktop 中的體驗相同,但有一些例外。

  • 使用者可以在 Power BI 服務中編輯資料模型 (預覽版) 需要啟用 Power BI 工作區設定才能撰寫 DAX 查詢。 若要深入了解,請參閱在 Power BI 服務中編輯資料模型
  • DAX 查詢會在關閉時捨棄。 Power BI Desktop 中的 DAX 查詢會儲存至模型中,而語意模型可能已將 DAX 查詢儲存在模型中。 目前,Web 中的 DAX 查詢檢視不會顯示語意模型中可能存在的任何先前儲存的 DAX 查詢,而且在關閉瀏覽器後不會保留在 Web 中建立的查詢。
  • 撰寫 DAX 查詢需要語意模型的寫入權限。 工作區檢視者必須使用 Power BI Desktop 與語意模型的即時連線來撰寫 DAX 查詢。

考量與限制

以下是一些要記住的考量:

  • 在 DAX 查詢編輯器中,有 500 多行在輸入時有明顯的延遲。
  • 只有在查詢索引標籤中沒有 DEFINE 陳述式時,才會顯示量值的燈泡快閃操作。
  • 命令選擇區會顯示一些尚無法使用的命令。
  • 結果方格尚未顯示具有指定格式的資料行和量值,例如貨幣、以千為單位的整數等等。
  • 從 Power BI 服務下載此檔案將不會包含在已發佈語意模型中儲存的 DAX 查詢。
  • 工作區設定初始 Git 整合將不會包含在已發佈語意模型中儲存的 DAX 查詢。 若要深入了解,請參閱 Fabric Git 整合

有一些需要記住的限制:

  • 每個查詢的資料量最多為 15 MB。 超過 15MB 之後,目前的資料列就會完成,但不會寫入其他資料列。
  • 每個查詢最多 1,000,000 個值。 如果您查詢 20 個資料行,最多可以取回 50,000 個資料列 (1 百萬除以 20 個資料行)。
  • 當有 500 個以上的量值時,定義此資料表或模型中的所有量值都無法使用。

在 Web 中執行 DAX 查詢有額外的限制:

  • 每個查詢最多會傳回 99,999 個數據列。
  • 語意模型的寫入許可權。 具有建置許可權的檢視者可以使用Power BI Desktop 即時連線,並使用DAX查詢檢視來執行DAX查詢。
  • 僅適用於非預設語意模型。 您可以使用Power BI Desktop 即時連線到預設語意模型,並使用DAX查詢檢視來執行DAX查詢。
  • 使用者可以在 Power BI 服務中編輯資料模型 (預覽版) 需要啟用 Power BI 工作區設定才能撰寫 DAX 查詢。 若要深入瞭解,請參閱編輯 Power BI 服務 中的數據模型