在 Power Query 中使用參數

在 Power Query 中使用參數

請幫我弄清楚如何參數化 Power Query。

我建立了一個 PowerQuery 查詢,它在 Web 服務中查詢某些資料並以正確的方式對其進行操作。假設我在任務管理系統中查詢今天的任務。查詢可能類似於:

Web.Contents("http://intranet/tasks?assignee=John", [Content=Text.ToBinary("")]),

它工作正常,但我想與我的同事分享此工作簿和此查詢,以便他們可以將其用於自己的任務。

Web.Contents("http://intranet/tasks?assignee={INPUT HERE}", [Content=Text.ToBinary("")]),

理想情況下,我想要一個名為「受讓人」的參數(例如在工作簿的儲存格中)。我希望此工作簿的使用者能夠輸入他們想要查詢的受託人,例如 Peter,以便當他們刷新資料時,查詢使用他們的參數,如下所示

Web.Contents("http://intranet/tasks?assignee=Peter", [Content=Text.ToBinary("")]),

我不希望他們打開 PowerQuery 編輯器並編輯查詢程式碼,因為我們的用戶會害怕這樣做,並且可能會犯錯。我認為工作簿中用於選擇受讓人的單元格是最有用的方法。

這可能嗎?如果是這樣 - 怎麼辦?

謝謝

答案1

我在互聯網上找到了這個解決方案,這正是我正在尋找的。

建立一個新查詢,打開高級編輯器並貼上以下程式碼:

let GetValue=(rangeName) => 
    let
      name = Excel.CurrentWorkbook(){[Name=rangeName]}[Content],
      value = name{0}[Column1]
    in
      value
    in GetValue

保存它,現在您有了一個查詢函數,您可以在另一個查詢中使用它,如下所示:

GetValue("Password")

它將執行的操作是在工作簿中尋找名為「Password」的範圍,並取得該範圍中第一個儲存格的值。

答案2

您可以使用Query記錄來傳遞參數。如果儲存格值儲存在上一個步驟中Name,您可以使用公式列中的 fx 按鈕新增步驟並新增下列公式:

= Web.Contents("http://intranet/tasks", [Content=Text.ToBinary(""), Query=[assignee = Name]])

如果他們啟用了隱私級別,他們將看到隱私級別提示。他們可以選擇分配適當的隱私等級(在本例中可能是組織層級),也可以在「選項」對話方塊中停用隱私等級。

相關內容