Applies ToMicrosoft 365 Excel Excel 2019 Excel 2016 Excel 2013 Excel 2010

自訂函數使用 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)

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。