Menyimpan sejarah kemas kini pertanyaan Power Query

Pada hampir setiap latihan Power Query, apabila kita sampai kepada cara mengemas kini pertanyaan yang dibuat dan orang melihat cara data baharu menggantikan data lama semasa mengemas kini, salah seorang pendengar bertanya kepada saya: “adakah mungkin untuk memastikan bahawa semasa mengemas kini, data lama adalah juga di suatu tempat telah disimpan dan keseluruhan sejarah kemas kini dapat dilihat?

Idea ini bukan baharu dan jawapan standard untuknya ialah “tidak” – Power Query dikonfigurasikan secara lalai untuk menggantikan data lama dengan yang baharu (yang diperlukan dalam kebanyakan kes). Walau bagaimanapun, jika anda benar-benar mahu, anda boleh mengatasi had ini. Dan kaedahnya, seperti yang akan anda lihat nanti, sangat mudah.

Pertimbangkan contoh berikut.

Mari kita anggap bahawa kita mempunyai fail daripada klien sebagai data input (mari kita panggilnya, katakan, Source) dengan senarai produk yang ingin dibelinya dalam bentuk jadual dinamik "pintar" bernama Kesesuaian:

Menyimpan sejarah kemas kini pertanyaan Power Query

Dalam fail lain (mari kita panggil dengan analogi Penerima) kami mencipta pertanyaan mudah untuk mengimport jadual dengan produk daripada Sumber melalui Data – Dapatkan Data – Dari Fail – Dari Buku Kerja Excel (Data — Dapatkan data — Dari fail — Dari buku kerja Excel) dan muat naik jadual yang terhasil ke helaian:

Menyimpan sejarah kemas kini pertanyaan Power Query

Jika pada masa hadapan pelanggan memutuskan untuk membuat perubahan pada perintah dalam failnya Source, kemudian selepas mengemas kini permintaan kami (dengan mengklik kanan atau melalui Data – Muat semula Semua) kita akan melihat data baharu dalam fail Penerima - semua standard.

Sekarang mari kita pastikan bahawa semasa mengemas kini, data lama tidak digantikan dengan yang baharu, tetapi yang baharu dilampirkan pada yang lama – dan dengan penambahan tarikh-masa, supaya ia dapat dilihat apabila perubahan khusus ini dibuat. dibuat.

Langkah 1. Menambah tarikh-masa pada pertanyaan asal

Jom buka permintaan Kesesuaianmengimport data kami dari Source, dan tambah lajur dengan tarikh-masa kemas kini padanya. Untuk melakukan ini, anda boleh menggunakan butang Lajur tersuai tab Menambah lajur (Tambah lajur — Lajur tersuai), dan kemudian masukkan fungsi DateTime.LocalNow – analog fungsi TDATA (SEKARANG) dalam Microsoft Excel:

Menyimpan sejarah kemas kini pertanyaan Power Query

Selepas mengklik OK anda sepatutnya mempunyai lajur yang cantik seperti ini (jangan lupa untuk menetapkan format tarikh-masa untuknya dengan ikon dalam pengepala lajur):

Menyimpan sejarah kemas kini pertanyaan Power Query

Jika anda mahu, maka untuk plat yang dimuat naik ke helaian untuk lajur ini, anda boleh menetapkan format tarikh-masa dengan saat untuk ketepatan yang lebih tinggi (anda perlu menambah titik bertindih dan "ss" pada format standard):

Menyimpan sejarah kemas kini pertanyaan Power Query

Langkah 2: Pertanyaan untuk data lama

Sekarang mari kita buat pertanyaan lain yang akan bertindak sebagai penimbal yang menyimpan data lama sebelum mengemas kini. Memilih mana-mana sel jadual yang terhasil dalam fail Penerima, pilih pada tab Tarikh Perintah Daripada Jadual/Julat (Data — Daripada jadual/julat) or Dengan daun (Dari helaian):

Menyimpan sejarah kemas kini pertanyaan Power Query

Kami tidak melakukan apa-apa dengan jadual yang dimuatkan dalam Power Query, kami memanggil pertanyaan, sebagai contoh, data lama dan tekan Laman Utama — Tutup dan muat — Tutup dan muatkan ke… — Buat sambungan sahaja (Laman Utama — Tutup&Muat — Tutup&Muat ke… — Buat sambungan sahaja).

Langkah 3. Menyertai data lama dan baharu

Sekarang kembali kepada pertanyaan asal kami Kesesuaian dan tambahkannya dari bawah data lama dari permintaan penimbal sebelumnya dengan arahan Laman Utama — Tambah Permintaan (Laman Utama — Tambah Pertanyaan):

Menyimpan sejarah kemas kini pertanyaan Power Query

Itu sahaja!

Ia kekal untuk kembali ke Excel melalui Laman Utama — Tutup dan muat turun (Laman Utama — Tutup&Muatkan) dan cuba beberapa kali untuk mengemas kini keseluruhan struktur kami dengan butang Kemaskini semua tab Tarikh (Data — Muat semula Semua). Dengan setiap kemas kini, data baharu tidak akan menggantikan data lama, tetapi akan menolaknya ke bawah, mengekalkan keseluruhan sejarah kemas kini:

Menyimpan sejarah kemas kini pertanyaan Power Query

Helah serupa boleh digunakan apabila mengimport daripada mana-mana sumber luaran (tapak Internet, pangkalan data, fail luaran, dll.) untuk mengekalkan nilai lama untuk sejarah jika anda memerlukannya.

  • Jadual pangsi merentas berbilang julat data
  • Memasang jadual daripada fail berbeza menggunakan Power Query
  • Mengumpul data daripada semua helaian buku ke dalam satu jadual

Sila tinggalkan balasan anda