保存 Power Query 查詢更新歷史記錄

在幾乎每次 Power Query 培訓中,當我們談到如何更新創建的查詢時,當人們看到更新時新數據如何替換舊數據時,其中一位聽眾問我:“是否有可能確保在更新時,舊數據是某個地方也被保存了,整個更新歷史都是可見的?

這個想法並不新鮮,標準答案是“否”——Power Query 默認配置為用新數據替換舊數據(在絕大多數情況下都是必需的)。 但是,如果你真的想要,你可以繞過這個限制。 正如您稍後將看到的,該方法非常簡單。

考慮以下示例。

假設我們有一個來自客戶端的文件作為輸入數據(我們稱它為,比方說, 資源) 以一個名為“智能”的動態表的形式列出他想購買的產品 應用:

保存 Power Query 查詢更新歷史記錄

在另一個文件中(我們以此類推 接收器) 我們創建一個簡單的查詢來導入一個包含來自 Source 的產品的表 數據 - 獲取數據 - 從文件 - 從 Excel 工作簿 (數據 - 獲取數據 - 從文件 - 從 Excel 工作簿) 並將結果表上傳到工作表:

保存 Power Query 查詢更新歷史記錄

如果將來客戶決定更改其文件中的訂單 資源,然後在更新我們的請求後(通過右鍵單擊或通過 數據 – 全部刷新) 我們將在文件中看到新數據 接收器 — 所有標準。

現在讓我們確保在更新時,舊數據不會被新數據替換,而是將新數據附加到舊數據上 - 並添加日期時間,以便可以看到這些特定更改的時間製成。

步驟 1. 向原始查詢添加日期時間

讓我們打開一個請求 應用導入我們的數據 資源,並添加一列,其中包含更新的日期時間。 為此,您可以使用按鈕 自定義列 選項卡 添加列 (添加列 - 自定義列), 然後進入函數 日期時間.LocalNow – 函數的模擬 TDATA (現在) Ø 微軟 Excel:

保存 Power Query 查詢更新歷史記錄

點擊後 OK 你應該得到一個像這樣漂亮的列(不要忘記使用列標題中的圖標為其設置日期時間格式):

保存 Power Query 查詢更新歷史記錄

如果需要,對於上傳到此列的工作表的板,您可以使用秒設置日期時間格式以提高準確性(您必須在標準格式中添加冒號和“ss”):

保存 Power Query 查詢更新歷史記錄

第二步:查詢舊數據

現在讓我們創建另一個查詢,它將充當緩衝區,在更新之前保存舊數據。 選擇文件中結果表的任何單元格 接收器, 在選項卡上選擇 數據 命令 從表/範圍 (數據——來自表格/範圍) or 有葉子 (來自工作表):

保存 Power Query 查詢更新歷史記錄

我們對 Power Query 中加載的表不做任何事情,我們調用查詢,例如, 舊數據 並按下 Home — 關閉並加載 — 關閉並加載到... — 僅創建連接 (Home — Close&Load — Close&Load to... — 僅創建連接).

步驟 3. 加入新舊數據

現在回到我們原來的查詢 應用 並使用命令從上一個緩衝區請求的舊數據下方添加到它 主頁 — 添加請求 (首頁 - 追加查詢):

保存 Power Query 查詢更新歷史記錄

就這樣!

它仍然通過返回 Excel 主頁 — 關閉並下載 (首頁 - 關閉並加載) 並嘗試幾次使用按鈕更新我們的整個結構 全部更新 選項卡 數據 (數據——全部刷新). 每次更新時,新數據不會替換舊數據,而是將其推送到下方,保留整個更新歷史記錄:

保存 Power Query 查詢更新歷史記錄

從任何外部來源(互聯網站點、數據庫、外部文件等)導入時,可以使用類似的技巧來保留歷史記錄的舊值(如果需要)。

  • 跨多個數據范圍的數據透視表
  • 使用 Power Query 組合來自不同文件的表
  • 將書中所有工作表中的數據收集到一個表中

發表評論