Cuprins

Uneori există situații în care nu se știe dinainte exact câte și ce rânduri trebuie importate din datele sursă. Să presupunem că trebuie să încărcăm date dintr-un fișier text în Power Query, ceea ce, la prima vedere, nu prezintă o mare problemă. Dificultatea este că fișierul este actualizat în mod regulat, iar mâine poate avea un număr diferit de linii cu date, un antet de trei, nu două linii etc.:

Importarea unui fragment flotant în Power Query

Adică nu putem spune în prealabil cu certitudine, începând de la ce linie și exact câte linii trebuie importate. Și aceasta este o problemă, deoarece acești parametri sunt codați în codul M al cererii. Iar daca faci o cerere pentru primul fisier (import 5 linii incepand cu al 4-lea), atunci nu va mai functiona corect cu al doilea.

Ar fi grozav dacă interogarea noastră ar putea determina ea însăși începutul și sfârșitul blocului de text „plutitor” pentru import.

Soluția pe care vreau să o propun se bazează pe ideea că datele noastre conțin niște cuvinte cheie sau valori care pot fi folosite ca markeri (funcții) ai începutului și sfârșitului blocului de date de care avem nevoie. În exemplul nostru, începutul va fi o linie care începe cu cuvântul SKU, iar sfârșitul este o linie cu cuvântul Total. Această validare de rând este ușor de implementat în Power Query folosind o coloană condiționată - un analog al funcției IF (DACĂ) • Microsoft Excel.

Hai să vedem cum se face.

Mai întâi, să încărcăm conținutul fișierului text în Power Query în modul standard - prin comandă Date – Obține date – Din fișier – Din fișier text/CSV (Date – Obține date – Din fișier – Din fișier text/CSV). Dacă aveți Power Query instalat ca supliment separat, atunci comenzile corespunzătoare vor fi pe filă Interogare de alimentare:

Importarea unui fragment flotant în Power Query

Ca întotdeauna, la import, puteți selecta caracterul separator de coloane (în cazul nostru, aceasta este o filă), iar după import, puteți elimina pasul adăugat automat tip modificat (Tipul schimbat), deoarece este prea devreme pentru a atribui tipuri de date coloanelor:

Importarea unui fragment flotant în Power Query

Acum cu comanda Adăugarea unei coloane – coloană condiționată (Adăugați coloană — coloană condiționată)să adăugăm o coloană cu verificarea a două condiții – la începutul și la sfârșitul blocului – și afișând orice valori diferite în fiecare caz (de exemplu, numere 1 и 2). Dacă niciuna dintre condiții nu este îndeplinită, atunci ieșire zero:

Importarea unui fragment flotant în Power Query

După ce faceți clic pe OK obținem următoarea imagine:

Importarea unui fragment flotant în Power Query

Acum să trecem la filă. Transformare și alegeți o echipă Completați (Transformare – Umplere – Jos) – cei doi și cei doi se vor întinde pe coloană:

Importarea unui fragment flotant în Power Query

Ei bine, așa cum ați putea ghici, puteți pur și simplu să filtrați unitățile din coloana condiționată - și iată râvnitele noastre date:

Importarea unui fragment flotant în Power Query

Tot ce rămâne este să ridici prima linie la antet cu comanda Utilizați prima linie ca antete fila Acasă (Acasă – Folosiți primul rând ca antete) și eliminați coloana mai condiționată inutilă făcând clic dreapta pe antetul acesteia și selectând comanda Ștergeți coloana (Șterge coloana):

Problema rezolvata. Acum, la modificarea datelor din fișierul text sursă, interogarea va determina acum în mod independent începutul și sfârșitul fragmentului „plutitor” al datelor de care avem nevoie și va importa de fiecare dată numărul corect de linii. Desigur, această abordare funcționează și în cazul importului fișierelor XLSX, nu TXT, precum și atunci când se importă toate fișierele dintr-un folder simultan cu comanda Date – Obține date – Din fișier – Din folder (Date — Obține date — Din fișier — Din folder).

  • Asamblarea tabelelor din diferite fișiere folosind Power Query
  • Reproiectarea unui tabel încrucișat la plat cu macrocomenzi și Power Query
  • Construirea unei diagrame Gantt de proiect în Power Query

Lasă un comentariu