Power Query 合併多個表格與數據清洗提示詞(文件夾批量合併、追加與合併查詢、逆透視、一鍵刷新)

每月要把幾十個格式相同的 Excel 或 CSV 合併成一張表、需要把兩張表按編號關聯、或者要反覆做同樣的清洗步驟時用:描述文件和需求,AI 給出 Power Query 的操作步驟和對應的 M 代碼,做成新增文件後點「全部刷新」就能更新的流程。

NNathaniel bigo··原創首發·AI 輔助撰寫
通用大模型 對話模型通用
你是一名熟練使用 Power Query 的數據分析師。請幫我設計一個可重複使用的數據整理流程。

- 軟件:[軟件](例:Excel 365、Power BI Desktop)
- 數據來源:[數據來源](例:一個文件夾裏每月一個 Excel,每個文件有一個名為「明細」的工作表)
- 每個文件的結構(列名與幾行樣例):
  [樣例數據]
- 需要做的處理:[處理需求](例:合併所有月份、去掉合計行、把各月份列轉成行、關聯產品表補充類別)
- 最終輸出:[最終輸出](例:一張明細表,供數據透視表使用)

請輸出:
1. 整體步驟:從「獲取數據」到「關閉並上載」,每一步對應 Power Query 編輯器中的操作(選單位置)。
2. 按需使用的關鍵操作:
   - 從文件夾合併:自動生成的示例文件與轉換函數是什麼、修改示例文件的步驟會影響所有文件;用文件名提取月份等資訊作為新列;
   - 追加查詢(上下拼接)與合併查詢(類似按鍵關聯),合併時連接種類的選擇(左外部、內部等)及其對結果行數的影響;
   - 逆透視其他列:把「一月、二月……」多列轉為「月份、金額」兩列;
   - 清洗:提升標題、刪除空行和合計行、修整與清除空格、拆分列、替換值、更改類型(注意更改類型步驟的位置與區域設定對日期的影響)。
3. M 代碼:給出完整的查詢代碼,每個步驟用中文註釋說明作用,方便我在高級編輯器中粘貼和修改。
4. 穩健性:文件中列的順序變化、多出一列、某個文件為空時,流程會不會出錯,如何寫得更穩(例如按列名而不是位置引用,刪除依賴固定列名的自動生成步驟)。
5. 刷新:新增文件後如何更新;文件夾路徑變更時修改哪裏(建議用參數)。
6. 常見報錯及解決辦法(例如找不到列、數據格式錯誤、權限或私隱級別提示)。

高亮處換成你自己的內容:[軟件]、[數據來源]、[樣例數據]、[處理需求]、[最終輸出]

ChatGPT Plus 充值

已被複製 0 次

使用說明

怎麼填變量:[樣例數據] 貼一個文件的表頭和幾行數據,並說明各文件之間是否完全一致(列名、列順序、工作表名)。不一致的地方越早說明越好,這是批量合併最常出錯的地方。

常見坑:

  • 自動生成的「更改類型」步驟寫死了列名,某個月的文件多了或少了一列,刷新就報錯。刪除不必要的自動步驟,或按需要的列名顯式選擇。
  • 合併查詢時,右表的關聯鍵有重複值,結果行數會變多,金額彙總被放大。合併前先確認關聯鍵唯一。
  • 日期按文本導入後再更改類型,系統區域設定不同可能把月和日解析反了。必要時使用「使用區域設定」更改類型。

追問技巧:追問「把文件夾路徑做成參數,同事拿到這個文件後只需改一個地方就能用」,或「刷新太慢了,怎麼優化這個查詢」。

示例輸出

示例,僅供參考(從文件夾合併後,逆透視月份列,節選)
let
    // 1. 讀取文件夾中所有 xlsx 文件
    源 = Folder.Files(文件夾路徑),
    僅Excel = Table.SelectRows(源, each Text.EndsWith([Name], ".xlsx") and not Text.StartsWith([Name], "~$")),
    // 2. 讀取每個文件中名為「明細」的工作表,並提升標題
    取表 = Table.AddColumn(僅Excel, "數據", each
        Table.PromoteHeaders(Excel.Workbook([Content]){[Item = "明細", Kind = "Sheet"]}[Data])),
    // 3. 展開時按列名對齊,各文件列順序不同也不影響
    展開 = Table.Combine(取表[數據]),
    // 4. 刪除合計行與空行
    去合計 = Table.SelectRows(展開, each [產品] <> null and [產品] <> "合計"),
    // 5. 逆透視:除「區域」「產品」外的列轉為「月份、金額」
    逆透視 = Table.UnpivotOtherColumns(去合計, {"區域", "產品"}, "月份", "金額"),
    類型 = Table.TransformColumnTypes(逆透視, {{"金額", type number}})
in
    類型

說明:Excel.Workbook 不帶第二個參數時不會自動識別標題,所以這裏用 Table.PromoteHeaders 顯式把第一行提升為標題;如果你的表頭上方還有標題行或空行,需要先刪除這些行再提升,以 Power Query 預覽結果為準。

同款作品

用這條提示詞做出來的作品;原作者會因此獲得積分

做同款

還沒有同款,來做第一個。

Nathaniel 的更多內容

同主題

同模型

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~