Turinys

Kartais būna situacijų, kai iš anksto tiksliai nežinoma, kiek ir kokių eilučių reikia importuoti iš pirminių duomenų. Tarkime, kad turime įkelti duomenis iš tekstinio failo į „Power Query“, o tai, iš pirmo žvilgsnio, nesukelia didelių problemų. Sunkumas yra tas, kad failas yra reguliariai atnaujinamas, o rytoj jame gali būti kitoks eilučių skaičius su duomenimis, trijų, o ne dviejų eilučių antraštė ir pan.:

Slankiojo fragmento importavimas naudojant Power Query

Tai yra, negalime iš anksto tiksliai pasakyti, nuo kurios eilutės ir kiek tiksliai eilučių reikia importuoti. Ir tai yra problema, nes šie parametrai yra užkoduoti užklausos M-kode. O jei pateiksite užklausą pirmam failui (importuosite 5 eilutes pradedant nuo 4), tada su antruoju jis nebeveiks tinkamai.

Būtų puiku, jei mūsų užklausa pati galėtų nustatyti importuojamo „plaukiojančio“ teksto bloko pradžią ir pabaigą.

Sprendimas, kurį noriu pasiūlyti, yra pagrįstas idėja, kad mūsų duomenyse yra keletas raktinių žodžių arba reikšmių, kurios gali būti naudojamos kaip mums reikalingo duomenų bloko pradžios ir pabaigos žymekliai (ypatybės). Mūsų pavyzdyje pradžia bus eilutė, prasidedanti žodžiu Prekės kodas, o pabaiga yra eilutė su žodžiu VISO. Šį eilutės patvirtinimą lengva įdiegti Power Query naudojant sąlyginį stulpelį – funkcijos analogą IF (JEI) naudojant „Microsoft Excel“.

Pažiūrėkime, kaip tai padaryti.

Pirmiausia įkelkime tekstinio failo turinį į „Power Query“ standartiniu būdu – per komandą Duomenys – Gauti duomenis – Iš failo – Iš teksto / CSV failo (Duomenys – gauti duomenis – iš failo – iš teksto / CSV failo). Jei Power Query įdiegėte kaip atskirą priedą, atitinkamos komandos bus skirtuke „Power Query“:

Slankiojo fragmento importavimas naudojant Power Query

Kaip visada, importuodami galite pasirinkti stulpelių skyriklio simbolį (mūsų atveju tai yra skirtukas), o po importavimo galite pašalinti automatiškai pridėtą veiksmą modifikuotas tipas (Pakeistas tipas), nes dar per anksti priskirti duomenų tipus stulpeliams:

Slankiojo fragmento importavimas naudojant Power Query

Dabar su komanda Stulpelio pridėjimas – sąlyginis stulpelis (Pridėti stulpelį – sąlyginis stulpelis)pridėkime stulpelį, kuriame patikrinamos dvi sąlygos – bloko pradžioje ir pabaigoje – ir kiekvienu atveju pateikiamos skirtingos reikšmės (pvz., skaičiai 1 и 2). Jei netenkinama nė viena iš sąlygų, tada išveskite null:

Slankiojo fragmento importavimas naudojant Power Query

Spustelėję OK gauname tokį paveikslėlį:

Slankiojo fragmento importavimas naudojant Power Query

Dabar eikime į skirtuką. Transformacija ir pasirinkti komandą Užpildymas – žemyn (Transformuoti – užpildyti – žemyn) – mūsų vienetai ir du nusidrieks koloną:

Slankiojo fragmento importavimas naudojant Power Query

Na, tada, kaip galite atspėti, galite tiesiog filtruoti vienetus sąlyginiame stulpelyje – ir čia yra mūsų trokštama duomenų dalis:

Slankiojo fragmento importavimas naudojant Power Query

Belieka komandą pakelti pirmąją eilutę į antraštę Naudokite pirmąją eilutę kaip antraštes kortelė Pagrindinis (Pagrindinis – naudokite pirmąją eilutę kaip antraštes) ir pašalinkite nereikalingą labiau sąlyginį stulpelį dešiniuoju pelės mygtuku spustelėdami jo antraštę ir pasirinkę komandą Ištrinti stulpelį (Ištrinti stulpelį):

Problema išspręsta. Dabar, keičiant duomenis šaltinio teksto faile, užklausa dabar savarankiškai nustatys mums reikalingų duomenų „plaukiojančio“ fragmento pradžią ir pabaigą ir kiekvieną kartą importuos teisingą eilučių skaičių. Žinoma, šis metodas veikia ir importuojant XLSX, o ne TXT failus, taip pat importuojant visus failus iš aplanko iš karto su komanda Duomenys – Gauti duomenis – Iš failo – Iš aplanko (Duomenys – gauti duomenis – iš failo – iš aplanko).

  • Lentelių surinkimas iš skirtingų failų naudojant Power Query
  • Kryžminio skirtuko pertvarkymas į plokščią naudojant makrokomandas ir „Power Query“.
  • Projekto Ganto diagramos kūrimas naudojant Power Query

Palikti atsakymą