Sisu

Vahel tuleb ette olukordi, kus ei ole täpselt ette teada, kui palju ja milliseid ridu tuleb lähteandmetest importida. Oletame, et peame laadima andmed tekstifailist Power Querysse, mis esmapilgul ei kujuta endast suurt probleemi. Raskus seisneb selles, et faili värskendatakse regulaarselt ja homme võib sellel olla erinev arv ridu andmetega, kolmest, mitte kahest reast koosnev päis jne:

Ujuva fragmendi importimine Power Querysse

See tähendab, et me ei saa kindlalt ette öelda, millisest realt alustades ja kui palju ridu täpselt importida tuleb. Ja see on probleem, sest need parameetrid on päringu M-koodis kõvasti kodeeritud. Ja kui teete päringu esimese faili jaoks (impordite 5 rida alates 4-ndast), siis teisega see enam õigesti ei tööta.

Oleks tore, kui meie päring suudaks ise määrata importimiseks „ujuva” tekstiploki alguse ja lõpu.

Lahendus, mida ma tahan välja pakkuda, põhineb ideel, et meie andmed sisaldavad mõningaid märksõnu või väärtusi, mida saab kasutada meile vajaliku andmeploki alguse ja lõpu markeritena (funktsioonidena). Meie näites on algus rida, mis algab sõnaga SKU, ja lõpp on sõnaga rida Summa. Seda rea ​​valideerimist on Power Querys lihtne rakendada tingimusliku veeru abil, mis on funktsiooni analoog IF (KUI) Microsoft Excelis.

Vaatame, kuidas seda teha.

Kõigepealt laadime oma tekstifaili sisu Power Querysse tavapärasel viisil – käsu kaudu Andmed – hangi andmed – failist – teksti-/CSV-failist (Andmed – hangi andmed – failist – teksti-/CSV-failist). Kui teil on Power Query installitud eraldi lisandmoodulina, on vastavad käsud vahekaardil Toite päring:

Ujuva fragmendi importimine Power Querysse

Nagu ikka, saab importimisel valida veerueraldusmärgi (meie puhul on see vahekaart) ja peale importimist saab automaatselt lisatud sammu eemaldada muudetud tüüp (Muudetud tüüp), kuna meil on veel liiga vara andmetüüpe veergudele määrata:

Ujuva fragmendi importimine Power Querysse

Nüüd käsuga Veeru lisamine – tingimuslik veerg (Lisa veerg – tingimuslik veerg)lisame veeru, kus kontrollitakse kahte tingimust – ploki alguses ja lõpus – ning kuvatakse igal juhul erinevad väärtused (näiteks numbrid 1 и 2). Kui ükski tingimus ei ole täidetud, siis väljund tühjaks:

Ujuva fragmendi importimine Power Querysse

Pärast klõpsamist nupul OK saame järgmise pildi:

Ujuva fragmendi importimine Power Querysse

Nüüd läheme vahekaardile. Transformation ja vali meeskond Täida – alla (Teisenda – Täida – alla) – meie ühed ja kahed venivad veerus alla:

Ujuva fragmendi importimine Power Querysse

Noh, siis, nagu võite arvata, saate tingimusliku veeru ühikuid lihtsalt filtreerida – ja siin on meie ihaldatud andmed:

Ujuva fragmendi importimine Power Querysse

Jääb vaid tõsta esimene rida käsuga päisesse Kasutage esimest rida päistena tab Avaleht (Avaleht – kasutage esimest rida päistena) ja eemaldage tarbetu tingimuslikum veerg, paremklõpsates selle päisel ja valides käsu Kustuta veerg (Kustuta veerg):

Probleem lahendatud. Nüüd, lähteteksti failis andmeid muutes, määrab päring nüüd iseseisvalt meile vajalike andmete "ujuva" fragmendi alguse ja lõpu ning impordib iga kord õige arvu ridu. Muidugi toimib selline lähenemine ka XLSX, mitte TXT failide importimisel, samuti kõigi failide importimisel kaustast korraga käsuga Andmed – hangi andmed – failist – kaustast (Andmed — hangi andmed — failist — kaustast).

  • Tabelite kokkupanek erinevatest failidest Power Query abil
  • Risttabeli ümberkujundamine tasaseks makrode ja Power Query abil
  • Projekti Gantti diagrammi koostamine Power Querys

Jäta vastus