自訂函數使用 M 公式語言,採用一組輸入值,然後會返回單一輸出值。 如果您有想要重複使用多次的邏輯,或將同一組轉換套用至不同的查詢或值,請考慮建立自訂函數,然後于需要時,在需要的地方和時間啟用函數。 建立自訂函數的方法有好幾種: 

以下是遵循長期程式設計傳統的自訂函數的簡單範例。

  1. 若要建立空白查詢:Excel選取資料>從其他>取得資料>

          空白查詢

    Power Query     以滑鼠右鍵按一下左側 [查詢> 窗格中的空白點,然後選取[新增查詢> [其他來源>空白查詢

  2. 左側的 [查詢> 窗格中,按兩下名稱,然後將新的空白查詢重新命名為「HelloWorld」。

  3. 選取新的查詢, 然後選取 > 進位編輯器

  4. 以下列程式碼取代範本入門程式碼:

    let
         HelloWorld = () => ("Hello World")
    in
         HelloWorld

  5. 選取 [完成]

  6. 您將查詢 「HelloWorld」變更為自訂函數。 請注意,函數圖示 函數圖示 左側。

  7. 若要調用函數,請選取它,然後選取資料預覽中的Invoke。

    使用 HelloWorld 自訂函數

  8. 函數的結果會顯示在資料預覽中,並新增到查詢窗格,做為具有預設名稱,即 Invoked 函數的查詢。 您可能會想要將其重新命名為更有意義的名稱,例如「HelloWorldResult」。

  9. 選取該查詢,然後選取>關閉&載入以查看工作表中的結果。

結果 

工作表中 HelloWorld 的結果

下列範例顯示如何將參數傳遞至自訂函數,將十進位數轉換成十六進位。

  1. 若要建立空白查詢:Excel選取資料>從其他>取得資料>

          空白查詢

    Power Query     以滑鼠右鍵按一下左側 [查詢> 窗格中的空白點,然後選取[新增查詢> [其他來源>空白查詢

  2. 左側的 查詢窗格中,將新的空白查詢重新命名為「MyHex」。

  3. 選取新的查詢, 然後選取 > 進位編輯器

  4. 以下列程式碼取代範本入門程式碼:

    let
         MyHex = (parameter1) => Number.ToText(parameter1,"X")
    in
         MyHex

  5. 選取 [完成]

  6. 您將查詢 「MyHex」變更為自訂函數。 請注意,函數圖示 函數圖示 左側。

  7. 若要調用函數,請選取它,然後在資料預覽中,在參數 1 方塊中輸入數位,然後選取 Invoke

    使用 MyHex 自訂函數

  8. 函數的結果會顯示在資料預覽中,並新增到查詢窗格,做為具有預設名稱 ,即 Invoked 函數的查詢。 您可能會想要將其重新命名為更有意義的名稱,例如「MyHexResult」。

  9. 選取該查詢,然後選取>關閉&載入以查看工作表中的結果。

結果 

工作表中 MyHex 函數的結果

如果您建立的函數至少有一個參數,您可以以自訂函數來為數據表中的每一列建立新資料行和新值。

  1. 若要開啟查詢,請找出先前從 Power Query 編輯器載入的查詢,選取資料中的儲存格,然後選取查詢>編輯。 詳細資訊請參閱在 Power Query Excel (中建立、編輯) 。

    附注   在此範例中,您的查詢至少需要一欄 的全數位 資料類型。

  2. 建立「MyHex」自訂函數,如使用進位編輯器建立及調用具有參數的自訂函數一節所述。

  3. 在查詢中,選取 新增資料行 > Invoke Custom 函數。 [ 調用自訂函數 」 對話方塊會出現。

  4. 在 「新增欄名稱」方塊中輸入新的欄名稱,例如「HexConvert」。

  5. 從函數查詢下拉式清單選取預先定義的自訂函數名稱。 在此範例中,選取 「MyHex」。

  6. 由於自訂函數參照參數,因此現在會顯示參數。

  7. 選取 全數位資料類型 的欄做為函數的參數。

    [調用自訂函數> 對話方塊

  8. 選取 [確定]。

結果

會建立一個新欄,顯示您輸入為參數之全數位欄的十六進位值。

工作表中值的新 MyHex 欄

另請參閱

Power Query for Excel説明

在公式中建立 power Query Excel

建立參數查詢

管理查詢

瞭解 Power Query M 函數 (docs.com)

使用自訂函數 (docs.com)

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×