contingut
En gairebé tots els entrenaments de Power Query, quan arribem a com actualitzar les consultes creades i la gent veu com les dades noves reemplacen les antigues quan s'actualitzen, un dels oients em pregunta: "és possible assegurar-se que quan actualitzem, les dades antigues siguin? també es van desar en algun lloc i tot l'historial d'actualitzacions era visible?
La idea no és nova i la resposta estàndard serà "no": Power Query està configurat per defecte per substituir dades antigues per noves (que és necessari en la gran majoria dels casos). Tanmateix, si realment voleu, podeu evitar aquesta limitació. I el mètode, com veureu més endavant, és molt senzill.
Penseu en el següent exemple.
Suposem que tenim un fitxer del client com a dades d'entrada (diguem-lo, diguem-ne, font) amb una llista de productes que vol comprar en forma de taula dinàmica "intel·ligent" anomenada Sol·licitud:
En un altre fitxer (anomenarem-lo per analogia Receptor) creem una consulta senzilla per importar una taula amb productes de la font via Dades - Obtenir dades - Del fitxer - Des del llibre de treball d'Excel (Dades — Obtenir dades — Del fitxer — Del llibre de treball d'Excel) i carregueu la taula resultant al full:
Si en el futur el client decideix fer modificacions a la comanda en el seu fitxer font, després d'actualitzar la nostra sol·licitud (fent clic amb el botó dret o mitjançant Dades: actualitza-ho tot) veurem les noves dades al fitxer Receptor —Tot estàndard.
Ara ens assegurem que en actualitzar, les dades antigues no es substitueixen per noves, sinó que les noves s'afegeixen a les antigues, i amb l'addició d'una data i hora, de manera que es pugui veure quan es van produir aquests canvis específics. fet.
Pas 1. Afegir una data i hora a la consulta original
Obrim una petició Sol·licitudimportant les nostres dades des de font, i afegiu-hi una columna amb la data i l'hora de l'actualització. Per fer-ho, podeu utilitzar el botó Columna personalitzada llengüeta Afegint una columna (Afegeix columna: columna personalitzada)i, a continuació, introduïu la funció DateTime.LocalNow – anàleg de la funció El TDATA (ARA) a Microsoft Excel:
Després de fer clic OK hauríeu d'acabar amb una columna bonica com aquesta (no us oblideu d'establir el format de data i hora amb la icona de la capçalera de la columna):
Si voleu, per a la placa carregada al full d'aquesta columna, podeu establir el format de data i hora amb segons per a una major precisió (haureu d'afegir dos punts i "ss" al format estàndard):
Pas 2: consulteu dades antigues
Ara creem una altra consulta que actuarà com a memòria intermèdia que desa les dades antigues abans d'actualitzar-les. Seleccionant qualsevol cel·la de la taula resultant del fitxer Receptor, seleccioneu a la pestanya dades Comando De Taula/Range (Dades: de la taula/interval) or Amb fulles (Del full):
No fem res amb la taula carregada a Power Query, anomenem la consulta, per exemple, dades antigues i premi Inici — Tancar i carregar — Tancar i carregar a... — Només per crear connexió (Inici — Tanca i càrrega — Tanca i càrrega a... — Només crea connexió).
Pas 3. Unir dades antigues i noves
Ara tornem a la nostra consulta original Sol·licitud i afegiu-hi des de sota les dades antigues de la sol·licitud de memòria intermèdia anterior amb l'ordre Inici — Afegeix sol·licituds (Inici — Afegiu consultes):
Això és tot!
Queda per tornar a Excel a través Inici — Tanca i baixa (Inici — Tancar i carregar) i proveu un parell de vegades d'actualitzar tota la nostra estructura amb el botó Actualitza-ho tot llengüeta dades (Dades — Actualitza-ho tot). Amb cada actualització, les dades noves no substituiran les antigues, sinó que les enviaran a continuació, conservant tot l'historial d'actualitzacions:
Es pot utilitzar un truc similar quan s'importa des de qualsevol font externa (llocs d'Internet, bases de dades, fitxers externs, etc.) per mantenir els valors antics per a l'historial si ho necessiteu.
- Taula dinàmica en diversos intervals de dades
- Muntatge de taules a partir de diferents fitxers mitjançant Power Query
- Recollida de dades de tots els fulls del llibre en una taula