Power Query 編輯器中的變量和表達式

Power Query 編輯器中的變量和表達式

本教程將討論Power Query 編輯器中的變量和表達式。您將看到並了解到每個let表達式都有兩個部分:一個let 和 in 子句,以及一個以逗號分隔的變量名或步驟標識符列表。您還將看到這些內容如何幫助在 Power Query 編輯器中創建數據報告。

目錄

理解 Let 表達式和 M 語言

Let表達式允許您將一系列表達式串在一起成為一個更複雜的表達式然後變量用於存儲任何類型的值,如數字、文本、日期或結構數據類型,如記錄、列表或表格。

大多數查詢返回一個表,該表可用作暫存查詢,或可加載到數據模型。查詢名稱旁邊的圖標顯示查詢返回的值類型。

查詢編輯器中的每個查詢都是一個M表達式。當該查詢運行時,將對錶達式求值,然後返回一個值。該值由 in 子句中的任何內容確定 in 子句可以引用變量列表中的任何變量,也可以不引用任何變量。它甚至可以引用另一個查詢或包含一個表達式。

要添加新查詢,請右鍵單擊屏幕左側“查詢”窗格中的空白區域。然後,單擊新建查詢並選擇空白查詢。

Power Query 編輯器中的變量和表達式

單擊“查詢”部分中的“高級編輯器”,打開“高級編輯器”窗口。

Power Query 編輯器中的變量和表達式

您會注意到新查詢不是空白的。

Power Query 編輯器中的變量和表達式

它以let子句開頭,後跟單個變量源。該變量分配了一個文字,即表示空文本字符串的雙引號。它還具有in子句,後跟源變量名稱。

如果查看查詢窗格,您會在查詢名稱前看到一個 ABC 圖標,它告訴您查詢返回一個文本值。

Power Query 編輯器中的變量和表達式

使用簡單的變量和表達式

對於此示例,通過輸入A作為變量並使用等號為變量分配值或表達式,在高級編輯器窗口中創建一個簡單的語法。

Power Query 編輯器中的變量和表達式

要創建或添加新變量,請在第一個變量的末尾放置一個逗號,然後按 Enter。在下一行,您可以輸入一個新變量。

Power Query 編輯器中的變量和表達式

除了賦值和表達式之外,您還可以在變量列表中賦值變量。

Power Query 編輯器中的變量和表達式

如果您輸入了最後一個變量,則不需要在末尾加上逗號。只需按 Enter 並輸入 in 子句。對於此示例,在 in 子句後輸入C以返回C的值。

Power Query 編輯器中的變量和表達式

如果按Done,您將獲得數值 6,這是公式欄中表達式的結果。

Power Query 編輯器中的變量和表達式

結果是一個數值,因為查詢名稱旁邊的圖標被替換為 123 圖標,表示數字數據類型。

Power Query 編輯器中的變量和表達式

命名變量和步驟標識符

如果您的變量名包含空格,則需要用雙引號將它們括起來,並在其前面加上井號或井號。雙引號保留用於文本值。

要區分井號或井號,請在屏幕右側的應用步驟窗格中重命名步驟。右鍵單擊B,選擇重命名,然後將其命名為var B

Power Query 編輯器中的變量和表達式


之後,返回高級編輯器窗口。您會看到 Power Query在所有使用或引用它的地方自動將B重命名為var B。

Power Query 編輯器中的變量和表達式

這僅在您重命名應用步驟窗格中的步驟時可用。如果您在“高級編輯器”窗口中重命名一個步驟,您還必須手動更新引用該變量的所有位置。高級編輯器窗口中沒有查找和替換選項。

現在,對於此示例,不要忘記將變量名稱改回B並單擊完成。

在 LuckyTemplates Desktop 中重新創建變量和表達式

Advanced Editor 窗口中的代碼結構類似於您在 DAX 中編寫代碼的方式。

嘗試比較兩者。轉到“主頁”選項卡並選擇“關閉並應用”。進入 LuckyTemplates 桌面後,轉到“主頁”選項卡並選擇“輸入數據”以創建度量。

Power Query 編輯器中的變量和表達式

在“創建表”彈出窗口中單擊“加載”。

Power Query 編輯器中的變量和表達式

然後,右鍵單擊 Fields 窗格中的 Table 並選擇New measure

Power Query 編輯器中的變量和表達式

在公式欄中,從M語言重新創建相同的代碼。要啟動變量索引,您必須使用VAR語句。之後,您可以編寫變量及其值。在 DAX 中,您需要使用RETURN語句來訪問任何變量。所以,在最後一個變量後面輸入RETURN,輸入C,返回其表達式的結果。

Power Query 編輯器中的變量和表達式

接下來,添加一個卡片可視化並選擇您創建的度量。然後您將看到與M結果相同的數值。

Power Query 編輯器中的變量和表達式

如果更改公式欄中變量的順序,卡中將出現錯誤。

Power Query 編輯器中的變量和表達式

Power Query 編輯器中的變量和表達式

在處理 DAX 變量時,順序很重要。您不能調用尚未聲明的變量。

但是,如果您更改M代碼中的順序,您仍然會得到結果。

Power Query 編輯器中的變量和表達式

該表達式指出,為了計算 C,必須知道變量 A 和 B 的值。這是一個依賴排序的例子。

M引擎將遵循表達式提供的依賴順序,但它可以按照它選擇的任何順序自由執行所有剩餘的計算。

了解 M 查詢和代碼

所有M查詢看起來都像程序代碼,因為您正在使用用戶界面為您生成代碼。它看起來總是順序的,因為每個轉換步驟都建立在上一步返回的值之上。

對M引擎重要的主要事情是可以從 in 子句中追溯的依賴鏈。查詢引擎將從末尾向後計算查詢,而不是從頭向前計算。

為什麼引擎會那樣做?首先,當查詢被評估時,它會回顧並嘗試消除任何不必要的東西。未使用的值不會被評估但會被忽略。這是一個稱為Lazy Evaluation的過程。

其次,它會嘗試查看您正在執行的所有轉換,並將盡可能多的工作推回源系統。這個過程稱為查詢折疊。這兩個過程在提高查詢性能方面都發揮著關鍵作用。

最後要記住的是,大多數情況下,您可以在 Applied Steps 窗格中看到所有變量名稱或步驟標識符。當M代碼寫錯時,表達式將顯示為單個組合步驟,如下所示:

Power Query 編輯器中的變量和表達式

您可以通過重新排序步驟輕鬆解決該問題。將變量C放回變量B的底部,然後單擊完成。然後,您會看到步驟名稱再次出現在“應用的步驟”窗格中。

Power Query 編輯器中的變量和表達式

結論

使用變量和重要函數的 DAX 查詢
LuckyTemplates 公式語法、註釋和變量
在 LuckyTemplates 中使用變量——詳細示例

變量和表達式是 Power Query 編輯器中需要理解的一些最重要的內容。兩者都負責在您的報告中生成數據和信息。他們收集不同的數據以獲得和產生結果。

梅麗莎


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的