Transformaties in Power Query

Een gegevenslijst moet correct gestructureerd zijn om bruikbaar te zijn voor verdere analyse. In de Power BI Desktop kan je data importeren van vele bestandsformaten, zolang er maar ergens een tabelstructuur in zit.

Wel moet je de structuur dus in orde brengen en bovendien de "ruis" (titels, tekst buiten de gegevenstabel, afbeeldingen, ...) verwijderen vooraleer je een datastructuur in de Desktop kan inladen. Daarvoor dient Power Query.

DOE Download de multitabellenversie van case Outdoor, transformeer ze in de Query en importeer ze in Power BI Desktop.

Om het gebruik van Power Query te demonstreren, gebruiken we een nieuwe versie van case Outdoor.

  1. Download Outdoor2.xlsx en sla op in een makkelijk te onthouden map.
  2. Als je wil, kan je het bestand even bekijken in Excel, maar sluit Excel daarna terug.
  3. Start Power BI Desktop en begin een Leeg Rapport.
  4. Klik op de groene knop, Gegevens Uit Excel Importeren, navigeer naar de map waar je het bestand opsloeg en dubbelklik erop.
  5. In de Navigator zet je vinkjes aan de 7 tabellen: Categorie, Factuurinfo (= factuurhoofding, met algemene info), Klanten, Leveranciers, Personeel, Producten, Verkopen (= producten per factuur).
  6. Klik onderaan op Gegevens Transformeren en je komt in een apart venster terecht, de Power Query Editor.
toe open

Zolang je in de Power Query Editor werkt, zal je 'query's' aanpassen en dat worden je 'tabellen' na het opladen in de Desktop.

Veldnamen en gegevenstypes controleren

Wat je in elke query zeker moet controleren zijn de veldnamen en de gegevenstypes.

  1. Bekijk query Verkopen: de veldnamen zijn factuur-id, product, hoeveelheid en links ervan staat het datatype 123, geheel getal.
  2. Verkopen bevat erg veel rijen. Wat als er nu eens een lege tussenzit? Klik op het driehoekje aan knop Rijen Verwijderen en kies optie Lege Rijen Verwijderen, dat kan nooit kwaad.
  3. Klik op query Categorie: in plaats van de eigenlijke veldnamen staat er 'Column1' en 'Column2' en de veldnamen staan eronder. Klik op de knop De Eerste Rij Als Veldnamen Gebruiken om dit te corrigeren.
  4. Bekijk dan query Personeel: boven de 1e kolom staat als type 'ABC123' d.w.z. de kolom bevat waarden van verschillende datatypes. Probleem: in Excel stond titel "Personeel" boven de tabel. Ook hier staan de eigenlijke veldnamen op de rij eronder, dus: De Eerste Rij Als Veldnamen Gebruiken.
  5. Controleer de gegevenstypes: hier heb je behalve datatype Tekst en Geheel Getal ook 2x Datum en een kolom Waar/Onwaar.
  6. Ook bij Factuurinfo staat er een datum tussen. Bij Producten staan prijzen, dat zijn decimale getallen.

De inhoud aanpassen

  1. Controleer query Leveranciers: veldnamen en datatypes zijn in orde. Kolom Fax hebben we niet nodig. Ofwel rechtsklik je op de veldnaam en kies je Verwijderen ofwel klik je op het lint op Kolommen Kiezen en vink je kolom Fax uit. Als je achteraf de data vernieuwt, wordt in het eerste geval de kolom opnieuw verwijderd na het laden, in het tweede geval wordt ze gewoon niet meer mee geïmporteerd.
  2. Bij Factuurinfo zijn er lege kolommen mee geïmporteerd: de inhoud is null, computertaal voor "leeg". Kolommen Kiezen en die niet meer inladen.
  3. Dan nog query Klanten, hier zitten lege velden (null) in de kolom Voornaam. Tja, een bedrijf heeft nu eenmaal geen 'voornaam', dus kunnen we deze lege velden niet vermijden.
  4. De gemeenten staan volledig in hoofdletters, ik wil de naam in kleine letters en beginnend met een hoofdletter. Rechtsklik op veldnaam Gemeente en kies Transformeren – Elk Woord Met Een Hoofdletter.
  5. Wat als er nu eens spaties teveel voor of na de familienamen getypt zijn? Dat zie je niet. Uit veiligheid aanpassen maar: rechtsklik op veldnaam Naam en kies Transformeren – Omloopspaties Wissen.
  6. Veld Land: soms staat er een punt na BE, soms niet. Aanpassen: rechtsklik op veldnaam Land en kies Waarden Vervangen. Typ een punt in het zoekvak en niets in het vervangvak. OK.
  7. Verwijder kolom Fax via Kolommen Kiezen.

Een kolom uit een andere tabel toevoegen samenvoegen

In query Categorie staan enkel de categoriecode en de omschrijving. We voegen die omschrijving toe aan de productentabel, dan hebben we query Categorie niet meer apart nodig.

  1. Activeer query Categorie. De inhoud onder veldnaam Code bestaat uit 3 letters.
  2. Activeer query Producten. De 3 letters van de categoriecodes staan hier onder veldnaam Categorie.
  3. Klik op het lint bij Start aan de rechterkant op het driehoekje aan Query's Samenvoegen.
  4. Kies Query's Samenvoegen.
  5. De tweede tabel is Categorie, de tabel waaruit we een kolom willen overnemen.
  6. De relatie tussen beide tabellen, de overeenkomende gegevens, staan bij Producten in kolom Categorie en bij tabel Categorie in kolom Code. Klik op die veldnamen.
  7. Onderaan staat nu een groen vinkje dat de overeenkomst in orde is. OK.
  8. Aan query Producten is nu een kolom Categorie.1 toegevoegd. Klik op het symbooltje rechts van de veldnaam:
kolom
  1. Klik het vinkje aan Alle Kolommen Selecteren uit, we willen enkel kolom Omschrijving. De oorspronkelijke kolomnaam is niet nodig. OK.
  2. Dubbelklik op veldnaam Omschrijving en vervang door Categorienaam.
  3. De originele query Categorie moet nu niet meer ingeladen worden: rechtsklik op querynaam Categorie en klik het vinkje aan Laden Inschakelen uit. De querynaam wordt nu cursief getoond.
  4. Alles in orde? Klik op de knop Sluiten En Toepassen.

Even geduld... Als alle meldingen verdwenen zijn, activeer je de tabelweergave: rechts kan je een tabelnaam aanklikken en dan zie je links de gegevens.
Sla op. De volgende stap is het datamodel.

Opmerking: wil je later terug van de Desktop naar de Query Editor?
Kies in rapportweergave op het lint bij Start – Gegevens Transformeren.