Contents [show]

Kadangkala terdapat situasi apabila tidak diketahui dengan tepat berapa banyak dan baris mana yang perlu diimport daripada data sumber. Katakan kita perlu memuatkan data daripada fail teks ke dalam Power Query, yang, pada pandangan pertama, tidak menimbulkan masalah besar. Kesukarannya ialah fail sentiasa dikemas kini, dan esok ia mungkin mempunyai bilangan baris yang berbeza dengan data, pengepala tiga, bukan dua baris, dsb.:

Mengimport Serpihan Terapung dalam Power Query

Iaitu, kita tidak boleh mengatakan terlebih dahulu dengan pasti, bermula dari baris mana dan berapa banyak baris yang perlu diimport. Dan ini adalah masalah, kerana parameter ini dikodkan keras dalam kod-M permintaan. Dan jika anda membuat permintaan untuk fail pertama (mengimport 5 baris bermula dari ke-4), maka ia tidak lagi berfungsi dengan betul dengan yang kedua.

Alangkah baiknya jika pertanyaan kami sendiri boleh menentukan permulaan dan penghujung blok teks "terapung" untuk diimport.

Penyelesaian yang ingin saya cadangkan adalah berdasarkan idea bahawa data kami mengandungi beberapa kata kunci atau nilai yang boleh digunakan sebagai penanda (ciri) permulaan dan akhir blok data yang kami perlukan. Dalam contoh kami, permulaan akan menjadi baris yang bermula dengan perkataan SKU, dan penghujungnya ialah baris dengan perkataan Jumlah. Pengesahan baris ini mudah dilaksanakan dalam Power Query menggunakan lajur bersyarat – analog fungsi IF (JIKA) dalam Microsoft Excel.

Mari lihat bagaimana melakukannya.

Mula-mula, mari muatkan kandungan fail teks kami ke dalam Power Query dengan cara standard – melalui arahan Data – Dapatkan data – Dari fail – Dari fail teks/CSV (Data – Dapatkan Data – Dari fail – Dari fail teks/CSV). Jika anda telah memasang Power Query sebagai tambahan yang berasingan, maka arahan yang sepadan akan berada pada tab Kuasa Kuasa:

Mengimport Serpihan Terapung dalam Power Query

Seperti biasa, apabila mengimport, anda boleh memilih aksara pemisah lajur (dalam kes kami, ini ialah tab), dan selepas mengimport, anda boleh mengalih keluar langkah yang ditambah secara automatik jenis yang diubah suai (Jenis Ditukar), kerana terlalu awal untuk kami menetapkan jenis data kepada lajur:

Mengimport Serpihan Terapung dalam Power Query

Sekarang dengan arahan Menambah Lajur – Lajur Bersyarat (Tambah Lajur — Lajur Bersyarat)mari tambah lajur dengan menyemak dua syarat – pada permulaan dan akhir blok – dan memaparkan sebarang nilai berbeza dalam setiap kes (contohnya, nombor 1 и 2). Jika tiada syarat yang dipenuhi, maka keluarkan sifar:

Mengimport Serpihan Terapung dalam Power Query

Selepas mengklik OK kita dapat gambar berikut:

Mengimport Serpihan Terapung dalam Power Query

Sekarang mari pergi ke tab. Transformasi dan pilih pasukan Isi - Bawah (Ubah – Isi – Bawah) – satu dan dua kami akan meregangkan lajur:

Mengimport Serpihan Terapung dalam Power Query

Oleh itu, seperti yang anda fikirkan, anda boleh menapis unit dalam lajur bersyarat – dan berikut ialah sekeping data yang kami dambakan:

Mengimport Serpihan Terapung dalam Power Query

Apa yang tinggal ialah menaikkan baris pertama ke pengepala dengan arahan Gunakan baris pertama sebagai tajuk tab Laman Utama (Laman Utama – Gunakan Baris Pertama sebagai Pengepala) dan keluarkan lajur bersyarat yang tidak perlu dengan mengklik kanan pada pengepalanya dan memilih arahan Padam lajur (Padam Lajur):

Masalah selesai. Kini, apabila menukar data dalam fail teks sumber, pertanyaan kini secara bebas akan menentukan permulaan dan penghujung serpihan "terapung" data yang kami perlukan dan mengimport bilangan baris yang betul setiap kali. Sudah tentu, pendekatan ini juga berfungsi dalam kes mengimport XLSX, bukan fail TXT, serta apabila mengimport semua fail dari folder sekaligus dengan arahan Data – Dapatkan data – Dari fail – Dari folder (Data — Dapatkan Data — Dari fail — Dari folder).

  • Memasang jadual daripada fail berbeza menggunakan Power Query
  • Mereka bentuk semula tab silang kepada rata dengan makro dan Power Query
  • Membina Carta Gantt Projek dalam Power Query

Sila tinggalkan balasan anda