Spaar tans Power Query-navraagopdateringgeskiedenis

By byna elke Power Query-opleiding, wanneer ons kom by hoe om geskepte navrae op te dateer en mense sien hoe nuwe data ou data vervang wanneer hulle opgedateer word, vra een van die luisteraars my: “is dit moontlik om seker te maak dat die ou data tydens opdatering ook iewers gestoor en die hele opdateringsgeskiedenis was sigbaar?

Die idee is nie nuut nie en die standaard antwoord daarop sal “nee” wees – Power Query is by verstek gekonfigureer om ou data met nuwes te vervang (wat in die oorgrote meerderheid van gevalle vereis word). As jy egter regtig wil, kan jy hierdie beperking omseil. En die metode, soos u later sal sien, is baie eenvoudig.

Beskou die volgende voorbeeld.

Kom ons neem aan dat ons 'n lêer van die kliënt as invoerdata het (kom ons noem dit, kom ons sê, Bron) met 'n lys produkte wat hy wil koop in die vorm van 'n "slim" dinamiese tafel genaamd Aansoek:

Spaar tans Power Query-navraagopdateringgeskiedenis

In 'n ander lêer (kom ons noem dit na analogie Ontvanger) skep ons 'n eenvoudige navraag om 'n tabel met produkte vanaf die Bron in te voer Data – Kry Data – Van Lêer – Van Excel Werkboek (Data - Kry data - Van lêer - Van Excel-werkboek) en laai die resulterende tabel op na die blad:

Spaar tans Power Query-navraagopdateringgeskiedenis

As die kliënt in die toekoms besluit om veranderinge aan die bestelling in sy lêer aan te bring Bron, dan na die opdatering van ons versoek (deur regs te klik of via Data – Herlaai alles) sal ons die nuwe data in die lêer sien Ontvanger - alles standaard.

Kom ons maak nou seker dat die ou data nie deur nuwes vervang word wanneer dit opgedateer word nie, maar die nuwes word by die oues aangeheg – en met die byvoeging van 'n datum-tyd, sodat dit gesien kan word wanneer hierdie spesifieke veranderinge was gemaak.

Stap 1. Voeg 'n datum-tyd by die oorspronklike navraag

Kom ons maak 'n versoek oop Aansoekdie invoer van ons data van Bron, en voeg 'n kolom met die datum-tyd van die opdatering daarby. Om dit te doen, kan jy die knoppie gebruik Gepasmaakte kolom tab Voeg 'n kolom by (Voeg kolom by – Pasgemaakte kolom), en voer dan die funksie in DateTime.LocalNow – analoog van die funksie Die TDATA (NOU) in Microsoft Excel:

Spaar tans Power Query-navraagopdateringgeskiedenis

Na kliek op OK jy behoort met 'n mooi kolom soos hierdie te eindig (moenie vergeet om die datum-tyd-formaat daarvoor in te stel met die ikoon in die kolomopskrif):

Spaar tans Power Query-navraagopdateringgeskiedenis

As jy wil, kan jy vir die plaat wat na die blad vir hierdie kolom opgelaai is, die datum-tyd-formaat met sekondes instel vir groter akkuraatheid (jy sal 'n dubbelpunt en "ss" by die standaardformaat moet voeg):

Spaar tans Power Query-navraagopdateringgeskiedenis

Stap 2: Doen navraag na ou data

Kom ons skep nou 'n ander navraag wat sal dien as 'n buffer wat die ou data stoor voordat dit opgedateer word. Kies enige sel van die resulterende tabel in die lêer Ontvanger, kies op die blad data Command Van tabel/reeks (Data — Van tabel/reeks) or Met blare (Van blad):

Spaar tans Power Query-navraagopdateringgeskiedenis

Ons doen niks met die tabel wat in Power Query gelaai is nie, ons noem die navraag, byvoorbeeld, ou data en druk Tuis — Maak toe en laai — Maak toe en laai na … — Skep slegs verbinding (Tuis — Maak toe en laai — Maak toe en laai na … — Skep slegs verbinding).

Stap 3. Sluit ou en nuwe data aan

Nou terug na ons oorspronklike navraag Aansoek en voeg daarby van onder die ou data van die vorige bufferversoek met die opdrag Tuis — Voeg versoeke by (Tuis – Voeg navrae by):

Spaar tans Power Query-navraagopdateringgeskiedenis

Dis alles!

Dit bly om terug te keer na Excel deur Tuis — Maak toe en laai af (Tuis — Maak toe en laai) en probeer 'n paar keer om ons hele struktuur met die knoppie op te dateer Dateer almal op tab data (Data – Herlaai alles). Met elke opdatering sal die nuwe data nie die ou data vervang nie, maar sal dit onder druk, en die hele opdateringsgeskiedenis behou:

Spaar tans Power Query-navraagopdateringgeskiedenis

'n Soortgelyke truuk kan gebruik word wanneer u vanaf enige eksterne bronne (internetwebwerwe, databasisse, eksterne lêers, ens.) invoer om die ou waardes vir geskiedenis te behou as u dit nodig het.

  • Spiltabel oor veelvuldige datareekse
  • Stel tabelle saam van verskillende lêers met behulp van Power Query
  • Versamel data van alle velle van die boek in een tabel

Lewer Kommentaar