Contact us

Pošlji
povpraševanje

Zakladnica znanja

  • Predzanje

  • Kategorije

May 18, 2020

Dinamično odstranjevanje vrstic v Power Query

Avtor: Branka Trifunović

V članku je uporabljen Power BI Desktop verzije 2.76.5678.782 (januar 2020).

Pogosto se zgodi, da so v podatkovnih datotekah na vrhu dodani metapodatki kot so čas, kraj nastanka, avtor in podobno. Ti podatki zasedajo zgornjih nekaj vrstic in jih običajno ne potrebujemo. V urejevalniku Power Query jih lahko preprosto odstranimo z izbiro ukaza Remove Rows > Remove Top Rows. Odpre se nam vnosno okno, kamor vnesemo želeno število vrstic. Ogledali si bomo, kako ustvarimo poizvedbo, ki sama poišče ustrezno število vrstic za odstranitev.

Primer: odstranjevanje vrstic iz tekstovne datoteke

V našem primeru bomo uporabili .csv seznam vseh potnikov Titanika. V Power BI izberemo Get Data in izberemo datoteko. V predogledu dobimo naslednjo sliko.

Kot Delimiter izberemo Comma oz. vejico in odpremo Power Query urejevalnik z Transform Data. Prvi oz. aktualni korak v Applied Steps podvojimo in ga poimenujemo Osnova. Nanj se bomo sklicevali kasneje.

Tabeli dodamo nov stolpec za indeks: izberemo Add Column, Index Column, From 1. Nov stolpec še premaknemo skrajno levo na začetek tabele, da ga lažje opazujemo.

Vedeti želimo, v kateri vrstici se nahaja prva celica podatkovne tabele, v našem primeru je to celica, v kateri se nahaja besedilo PassangerId. Z desnim klikom na drugem stolpcu izberemo: filter, Text Filters > Equals. V polje vpišemo PassangerId in potrdimo z Ok. Tabela se filtrira, ostane nam samo ena vrstica. Z desnim klikom na polje v prvem stolpcu izberemo Drill Down. Izpiše se vrednost polja, v našem primeru 5.

Našli smo vrednost, ki nam pove koliko vrstic moramo izbrisati. Zdaj prikličemo prvotno tabelo tako, da dodamo nov korak z desnim klikom, Insert Step After, in v vrstico za formulo vpišemo ime Osnova.

V tabeli odstranimo prvih nekaj vrstic z izbiro Remove Rows, Remove Top Rows. V vnosno polje vnesemo poljubno število, npr. 7, in potrdimo z Ok. V vnosni vrstici za formulo nato to vrednost popravimo, namesto 7 vpišemo Index-1 (Index moramo odšteti za ena, ker smo v prejšnjem koraku dobili številko vrstice, kjer se naša tabela začne in to vrstico potrebujemo).

Korak je zdaj postal dinamičen: vedno bo odstranil toliko vrstic, kot se jih nahaja pred poljem ki vsebuje besedilo PassangerId. Za konec še uporabimo prvo vrstico za imena stolpcev z ukazom Use First Row As Headers.

Funkcija za dinamično odstranjevanje vrstic

V naslednjem članku si bomo ogledali kako korake, ki smo jih izvedli v zgornjem primeru, shranimo kot funkcijo. Funkcijo nato uporabimo na poljubni datoteki ali na vseh datotekah, ki se nahajajo v določeni mapi. Funkcija izvede postopek na vseh datotekah in jih združi v eno veliko tabelo. Članek najdemo na Dinamično odstranjevanje vrstic v Power Query za vse datoteke v mapi.

 

Kazalo