使用DAX查詢檢視

重要

DAX 查詢檢視目前為預覽狀態

在 Power BI 中使用 DAX 查詢檢視,您可以在語意模型中檢視及使用數據分析表示式 (DAX) 查詢。

DAX 查詢

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

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

DAX 查詢有兩個主要部分:

  • 需要評估語句。 它會指定查詢中傳回數據的內容和方式。
  • DEFINE 語句,這是選擇性的。 它可讓您定義在查詢中使用的DAX公式,例如量值。 在 DEFINE 中使用 CodeLens 時,可以使用 CodeLens 將量值新增至模型。

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

開啟DAX查詢檢視

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

Screenshot of the DAX query view icon in Power BI Desktop.

DAX 查詢檢視配置

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

Diagram that shows the DAX query view layout.

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

功能區

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

Screenshot of the DAX query view ribbon.

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

設定查詢格式

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

Screenshot of the Format query button.

批注和取消批注

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

按兩下 [ 取消批註 ] 功能區按鈕,即可移除 // 游標所在任何一行的開頭,或所有選取的行。 它不適用於新增多行批注表示法的行。

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

Screenshot of the Comment and Uncomment buttons in the DAX query view ribbon.

尋找及取代

按兩下 [ 尋找 功能區] 按鈕,或使用 CTRL+F 在 DAX 查詢編輯器中搜尋文字。 尋找包含比對大小寫、比對整字、使用正則表達式,以及迴圈查看目前查詢之所有相符項目的選項。 您也可以按兩下 [尋找] 方塊左側的箭號,以輸入 Replace。

Screenshot of the find button in the DAX query view ribbon.

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

Screenshot of the Replace capability in the DAX query view ribbon.

命令選擇區

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

Screenshot of the DAX query view command palette.

命令列

DAX 查詢檢視命令行包含使用 DAX 查詢檢視時最重要的動作。 [ 執行 ] 按鈕會執行 DAX 查詢或查詢選取的行。 查詢執行之後的狀態會出現在較低的狀態列中。

Screenshot of the DAX query view command bar.

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

Screenshot of the DAX query view cancel.

DAX 查詢編輯器

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

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

建議與 Intellisense

輸入您的查詢,並在編輯時取得建議和 Intellisense 的說明。

Screenshot of the DAX query editor intellisense.

使用 ENTER 或 TAB 新增反白顯示的 Intellisense,或 SHIFT+ENTER 或 ALT+ENTER 移至另一行,而不新增 intellisense 選項。 按兩下 ESC 會關閉任何重疊。

暫留以查看量值公式

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

Screenshot of the hover to see measure formula feature.

按兩下以查看量值燈泡快速動作

按兩下沒有 DEFINE 語句的查詢中 EVALUATE 語句中的量值會顯示快速動作燈泡。 單擊 [定義] 或 [使用參考定義] 來建立具有此量值公式的 DEFINE 語句,且不含參考量值 DAX 公式。

使用 CodeLens 更新模型量值

建立量值時,使用 DEFINE MEASURE 會很有説明。 您可以在一個視窗中編輯多個量值,然後執行查詢來查看所有量值的結果,或只依數據行查看其中一些量值的結果。 您不需要在報表檢視中建立數據表視覺效果,並在量值公式之間來回切換。 CodeLens 會藉由在量值已存在於模型中時提供提示,或如果不存在,即可新增它,以進一步進行此步驟。

量值更新工作流程

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

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

以下是更可視化的方式,可瞭解工作流程:

Diagram of the workflow.

結果格線

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

Screenshot of the results grid.

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

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

Screenshot of the error message in the results grid.

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

查詢 (4, 23) 無法判斷 'Sales 2' 的值。數據行不存在,或此數據行沒有目前的數據列。

而“Query (4, 23)” 表示錯誤位於第 4 行,且字元 23。

查詢索引標籤

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

Screenshot of the Query tabs.

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

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

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

儲存 DAX 查詢

當您從 Power BI Desktop 儲存時,DAX 查詢檢視查詢索引卷標會儲存在檔案中,因此您可以在再次開啟檔案時繼續離開的位置。 如果您使用開發人員模式來儲存Power BI專案,則語意模型資料夾的DAXQueries資料夾中,每個查詢索引標籤都會包含為 .dax 檔案。 如需詳細資訊, 請參閱Power BI deverloper模式檔

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

[資料] 窗格

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

快速查詢

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

任何位置

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

資料表
  • 顯示前 100 個資料列 會使用 SELECTCOLUMNS() 建立查詢,以顯示數據表的前 100 個數據列。 數據行會列在每個行上,以便透過批注出行來輕鬆修改。 也會包含 ORDER BY 來指定排序順序。

    Screenshot of the show top 100 rows.

  • 顯示數據行統計數據 會建立查詢,其中顯示數據表中每個數據行的統計數據。 請參閱許多公式,瞭解如何將數據行匯總為MIN、MAX、AVERAGE、COUNT等等。

  • 定義此數據表 中的所有量值,會使用查詢中顯示的此數據表量值公式來建立查詢。

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

    Screenshot of the show data preview.

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

    Screenshot of the show column preview.

量值
  • 評估 會建立查詢以顯示量值的結果。 SUMMARIZECOLUMNS() 可用來依數據行新增任何群組,以依特定群組顯示量值,例如 Country、Product 等。

    Screenshot of evaluate measure.

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

    Screenshot of the define and evaluate measure.

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

    Screenshot of define with references and evaluate.

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

報表檢視中的視覺效果會藉由建立DAX查詢從模型取得數據。 您可以使用 效能分析器,在 DAX 查詢檢視中檢視視覺查詢。 效能分析器 可讓您深入瞭解視覺效果為何會顯示非預期的值,或只是快速啟動查詢的方式,您可以進一步修改。

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

Screenshot of the visual DAX queries in Performance Analyzer feature.

考量與限制

DAX 查詢檢視目前為預覽狀態。 請記住下列要點:

  • 更新模型:覆寫量值CodeLens會移除DAX公式中的批注。
  • 更新模型:覆寫量值CodeLens不會只顯示格式變更。
  • 更新模型:當語法錯誤時,覆寫 CodeLens 量值可能會帶來額外的行。
  • 在DAX查詢編輯器中,有500多行在輸入時有明顯的延遲。
  • 只有在查詢索引標籤中沒有 DEFINE 語句時,才會顯示量值的燈泡快速動作。
  • 格式查詢會中斷 RANKX 函式。
  • 命令選擇區會顯示尚未運作的命令。
  • 查詢索引標籤尚不允許移動。
  • 結果方格尚未顯示具有指定格式的數據行和量值,例如 Currency、神秘 le number with thousands 等等。
  • 從 Power BI 服務 下載此檔案不會包含儲存在已發佈語意模型中的 DAX 查詢。
  • 工作區設定初始 Git 整合不會包含儲存在已發佈語意模型中的 DAX 查詢。 若要深入瞭解,請參閱 Fabric Git 整合

請記住一些限制:

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