Sparar Power Query-frågeuppdateringshistorik

Vid nästan varje Power Query-utbildning, när vi kommer till hur man uppdaterar skapade frågor och folk ser hur ny data ersätter gammal data vid uppdatering, frågar en av lyssnarna mig: "är det möjligt att se till att när man uppdaterar, är den gamla datan sparades också någonstans och hela uppdateringshistoriken var synlig?

Idén är inte ny och standardsvaret på den kommer att vara "nej" – Power Query är konfigurerat som standard för att ersätta gamla data med nya (vilket krävs i de allra flesta fall). Men om du verkligen vill kan du komma runt denna begränsning. Och metoden, som du kommer att se senare, är väldigt enkel.

Tänk på följande exempel.

Låt oss anta att vi har en fil från klienten som indata (låt oss kalla det, låt oss säga, Källa) med en lista över produkter som han vill köpa i form av ett "smart" dynamiskt bord med namnet Ansökan:

Sparar Power Query-frågeuppdateringshistorik

I en annan fil (låt oss kalla det analogt Mottagare) skapar vi en enkel fråga för att importera en tabell med produkter från källan via Data – Hämta data – Från fil – Från Excel-arbetsbok (Data — Hämta data — Från fil — Från Excel-arbetsbok) och ladda upp den resulterande tabellen till arket:

Sparar Power Query-frågeuppdateringshistorik

Om kunden i framtiden bestämmer sig för att göra ändringar i beställningen i sin fil Källa, sedan efter att ha uppdaterat vår begäran (genom att högerklicka eller via Data – Uppdatera alla) kommer vi att se de nya uppgifterna i filen Mottagare - allt standard.

Låt oss nu se till att de gamla uppgifterna inte ersätts av nya vid uppdatering, utan de nya läggs till de gamla – och med tillägg av en datum-tid, så att det kan ses när dessa specifika ändringar gjordes gjord.

Steg 1. Lägga till ett datum-tid till den ursprungliga frågan

Låt oss öppna en förfrågan Ansökanimportera vår data från Källa, och lägg till en kolumn med datum-tid för uppdateringen. För att göra detta kan du använda knappen Anpassad kolumn fliken Lägger till en kolumn (Lägg till kolumn – Anpassad kolumn), och ange sedan funktionen DateTime.LocalNow – analog av funktionen TDATA (NU) i Microsoft Excel:

Sparar Power Query-frågeuppdateringshistorik

Efter att ha klickat på OK du bör sluta med en vacker kolumn som denna (glöm inte att ställa in datum-tid-formatet för den med ikonen i kolumnrubriken):

Sparar Power Query-frågeuppdateringshistorik

Om du vill, då för plattan som laddats upp till arket för denna kolumn, kan du ställa in datum-tid-formatet med sekunder för större noggrannhet (du måste lägga till ett kolon och "ss" till standardformatet):

Sparar Power Query-frågeuppdateringshistorik

Steg 2: Fråga efter gamla data

Låt oss nu skapa en annan fråga som kommer att fungera som en buffert som sparar gamla data innan uppdatering. Välj valfri cell i den resulterande tabellen i filen Mottagare, välj på fliken Data Kommando Från tabell/sortiment (Data — från tabell/intervall) or Med löv (Från ark):

Sparar Power Query-frågeuppdateringshistorik

Vi gör ingenting med tabellen inläst i Power Query, vi anropar frågan, till exempel, gamla data och tryck Hem — Stäng och ladda — Stäng och ladda till... — Skapa endast anslutning (Hem — Stäng&Ladda — Stäng&Ladda till... — Skapa endast anslutning).

Steg 3. Sammanfoga gamla och nya data

Nu tillbaka till vår ursprungliga fråga Ansökan och lägg till den underifrån den gamla data från den tidigare buffertförfrågan med kommandot Hem — Lägg till förfrågningar (Hem — Lägg till frågor):

Sparar Power Query-frågeuppdateringshistorik

Det är allt!

Det återstår att gå tillbaka till Excel genom Hem — Stäng och ladda ner (Hem — Stäng och ladda) och försök ett par gånger att uppdatera hela vår struktur med knappen Uppdatera alla fliken Data (Data – Uppdatera alla). Med varje uppdatering kommer den nya informationen inte att ersätta den gamla informationen, utan kommer att skjuta den nedan, och behålla hela uppdateringshistoriken:

Sparar Power Query-frågeuppdateringshistorik

Ett liknande knep kan användas när du importerar från externa källor (internetsajter, databaser, externa filer, etc.) för att behålla de gamla värdena för historik om du behöver det.

  • Pivottabell över flera dataintervall
  • Sammansättning av tabeller från olika filer med Power Query
  • Samla data från alla ark i boken i en tabell

Kommentera uppropet