建立參數查詢 (Power Query)

套用到
Microsoft 365 Excel Mac 版 Microsoft 365 Excel

您可能對參數查詢在 SQL 或 Microsoft Query 中的使用相當熟悉。 不過,Power Query 參數有其重要差異:

  • 參數可用於任何查詢步驟。 除了充當資料篩選器之外,參數還可以用來指定檔案路徑或伺服器名稱等項目。
  • 參數不會提示輸入。 相反地,您可以使用 Power Query 快速變更其值。 您甚至可以在 Excel 中儲存和擷取儲存格中的值。
  • 參數會儲存在簡單的參數查詢中,但與所使用的資料查詢不同。 建立之後,您可以視需要將參數新增至查詢。

備註 如果您想要使用其他方式來建立參數查詢,請參閱在 Microsoft Query 中建立參數查詢。

建立參數

您可以使用參數自動變更查詢中的值,避免每次都編輯查詢以變更值。 您只需變更參數值。 建立參數後,它會儲存在特殊的參數查詢中,您可以直接從 Excel 方便地變更參數。

  1. 選取 [資料>]、[取得資料>]、[其他來源>] 啟動 Power Query 編輯器

  2. 在 Power Query 編輯器中,選取 [首頁>] [管理參數] [>新增參數]。

  3. [管理參數] 對話方塊中,選取 [新增]。

  4. 視需要設定下列項目:

    名稱 這應該反映參數的功能,但請盡量保持簡短。
    描述 這可以包含有助於人們正確使用參數的任何詳細資訊。
    必要 執行下列其中一個動作:

    任何值 您可以在參數查詢中輸入任何資料類型的任何值。

    值清單 您可以將值輸入到小方格中,以將值限制為特定清單。 您也必須在下方選取預設 和目前

    查詢選取類似清單結構化欄的清單查詢,以逗號分隔並以括弧括住。

    例如,[問題狀態] 欄位可以有三個值:{“New”、“Ongoing”、“Closed”}。 您必須事先建立清單查詢,方法是開啟進階編輯器 (選取 [首頁>]進階編輯器 [) ]、移除程式碼範本、以查詢清單格式輸入值清單,然後選取 [完成]。

    完成建立參數後,清單查詢會顯示在參數值中。
    類型 這會指定參數的資料類型。
    建議的值 如有需要,請新增值清單或指定查詢以提供輸入建議。
    預設值 只有在 [建議的值 ] 設定為 [值清單] 時才會顯示,並指定預設的清單項目。 在此情況下,您必須選擇預設值。
    目前值 視您使用參數的位置而定,如果此值為空白,查詢可能不會傳回任何結果。 如果選取 了 [必要 ],則 [目前值] 不能為空白。
  5. 若要建立參數,請選取 [確定]。

使用參數變更資料來源

以下是管理資料來源位置變更並協助防止重新整理錯誤的方法。 例如,假設結構描述和資料來源相似,請建立參數以輕鬆變更資料來源,並協助防止資料重新整理錯誤。 有時伺服器、資料庫、資料夾、檔案名稱或位置會變更。 也許資料庫管理員偶爾會更換伺服器,每月掉落的 CSV 檔案會進入不同的資料夾,或者您需要在開發/測試/生產環境之間輕鬆切換。

步驟 1:建立參數查詢

在下列範例中,您有數個 CSV 檔案,這些檔案是使用匯入資料夾作業匯入, (選取 [>資料夾 Files 從資料夾取得資料>) > 從資料夾 C:\DataFilesCSV1] 作業。 但有時會使用不同的資料夾做為放置檔案的位置,C:\DataFilesCSV2。 您可以使用查詢中的參數做為不同資料夾的替代值。

  1. 選取 [常用>] [管理參數>]新參數

  2. [管理參數 ] 對話方塊中輸入下列資訊:

    名稱 CSVFileDrop
    描述 替代檔案放置位置
    必要
    類型 文字
    建議的值 任何值
    目前值 C:\DataFilesCSV1
  3. 選取 [確定]

步驟 2:將參數新增至資料查詢

  1. 若要將資料夾名稱設定為參數,請在 [查詢設定] 的 [ 查詢步驟] 底下,選取 [ 來源],然後選取 [ 編輯設定]。
  2. 請確定 [檔案路徑 ] 選項已設定為 [參數],然後從下拉式清單中選取您剛才建立的參數。
  3. 選取 [確定]

步驟 3:更新參數值

資料夾位置剛變更,現在您可以直接更新參數查詢。

  1. 選取 [ 資料>連線] & [查詢>] 索引標籤 ,以滑鼠右鍵按一下參數 query,然後選取 [編輯]。
  2. [目前值] 方塊中輸入新位置,例如 C:\DataFilesCSV2
  3. 選取 [首頁>] 關閉 & 載入
  4. 若要確認結果,請將新資料新增至資料來源,然後使用更新的參數重新整理資料查詢, (選取 [資料>全部重新整理 ]) 。

使用參數來篩選資料

有時候您會想要一個簡單的方法,變更查詢的篩選以獲得不同的結果,而不需要編輯查詢或製作相同查詢的稍微不同的複本。 在此範例中,我們變更日期方便地變更資料篩選。

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

  2. 選取任何欄標題中的篩選箭號以篩選資料,然後選取篩選命令,例如 [日期/時間篩選時間>之後]。 此時會出現 [篩選列] 對話方塊。

    在 [篩選] 對話方塊中輸入參數

  3. 選取 [ 值] 方塊左側的按鈕,然後執行下列其中一項:

    • 若要使用現有的參數,請選取 [參數],然後從右側顯示的清單中選取您想要的參數。
    • 若要使用新的參數,請選取 [新增參數],然後建立參數。
  4. [目前值] 方塊中輸入新的日期,然後選取 [ 首頁>關閉] & [載入]。

  5. 若要確認結果,請將新資料新增至資料來源,然後使用更新的參數重新整理資料查詢, (選取 [資料>全部重新整理 ]) 。 例如,將篩選值變更為不同的日期以查看新的結果。

  6. [目前值 ] 方塊中輸入新的日期。

  7. 選取 [首頁>] 關閉 & 載入

  8. 若要確認結果,請將新資料新增至資料來源,然後使用更新的參數重新整理資料查詢, (選取 [資料>全部重新整理 ]) 。

使用儲存格值來篩選資料

在此範例中,查詢參數中的值是從活頁簿的儲存格讀取。 您不需要變更參數查詢,只要更新儲存格值即可。 例如,您想要依第一個字母篩選欄,但輕鬆地將值變更為從 A 到 Z 的任何字母。

  1. 在載入您要篩選之查詢的活頁簿中,建立包含兩個儲存格的 Excel 表格:標題和值。

    MyFilter
    G
  2. 選取 Excel 表格中的一個儲存格,然後選取 [從>表格/範圍取得資料>]。隨即會顯示 Power Query 編輯器。

  3. 在右側 [查詢設定] 窗格的 [名稱] 方塊中,將查詢名稱變更為更有意義的名稱,例如 FilterCellValue。

  4. 若要傳遞資料表中的值,而非資料表本身,請以滑鼠右鍵按一下 [資料預覽] 中的值,然後選取 [ 向下切入]。
    請注意,公式已變更為 = #"Changed Type"{0}[MyFilter]
    當您在步驟 10 中使用 Excel 表格做為篩選時,Power Query 會參考資料表值做為篩選條件。 直接參照 Excel 表格會導致錯誤。

  5. 選取 [首頁] [關閉]> & [載入>關閉] & [載入至]。 現在您擁有在步驟 12 中使用的名為 “FilterCellValue” 的查詢參數。

  6. [匯入資料] 對話方塊中,選取 [僅建立連線],然後選取 [確定]。

  7. 選取資料中的儲存格,然後選取 [查詢>編輯],以開啟您要使用 FilterCellValue 資料表中的值(先前從 Power Query 編輯器載入的值)篩選的查詢。 如需詳細資訊 ,請參閱在 Excel 中建立、載入或編輯查詢

  8. 選取任何欄標題中的篩選箭號以篩選您的資料,然後選取篩選命令,例如 [文字篩選開為]。> 此時會出現 [篩選列] 對話方塊。

  9. [值] 方塊中輸入任何值,例如 “G”,然後選取 [確定]。 在此情況下,值是您在下一個步驟中輸入的 FilterCellValue 資料表中值的暫時預留位置。

  10. 選取資料編輯列右邊的箭號以顯示整個公式。 以下是公式中篩選條件的範例:

    = Table.SelectRows (#“變更的類型”,每個 Text.StartsWith ([名稱], “g”) )

  11. 選取篩選的值。 在公式中,選取 “G”。

  12. 使用 M Intellisense,輸入您所建立 FilterCellValue 資料表的前幾個字母,然後從顯示的清單中選取該資料表。

  13. 選取 [首頁>]、[關閉]、[>關閉] & [載入]。

結果

您的查詢現在會使用您建立之 Excel 表格中的值來篩選查詢結果。 若要使用新值,請在步驟 1 中編輯原始 Excel 表格中的儲存格內容,將 “G” 變更為 “V”,然後重新整理查詢。

控制參數查詢的使用

您可以控制是否允許參數查詢。

  1. 在 Power Query 編輯器中,選取 [檔案>選項和設定>] [查詢選項>]Power Query 編輯器
  2. 在左側窗格的 [全域] 底下,選取 [Power Query 編輯器]。
  3. 在右側窗格的 [參數] 底下,選取或清除 [永遠允許資料來源和轉換對話方塊中的參數化]。

另請參閱

適用於 Excel 的 Power Query 說明

使用查詢參數 (docs.com)