Power BI – tietolähdevirheiden käsittely Power Queryssa (M kieli)

Päätin jatkojalostaa Liiga-dataani aloitusdatalla, koska erään blogin mukaan aloituksien määrällä on positiivinen korrelaatio maalimääriin. Käytin taas web scraping menetelmää tietojen hankintaan, mutta sitten iski ongelma. Aloitustiedot eivät olleet aina samassa taulukossa. Nollapelien osalta taulukoita oli nettisivulla vähemmän.

Normaalisti tiedot haetaan aina taulukosta yksi (table1), mutta nollapelien osalta siellä olikin maalivahtien torjunnat. Tämän takia lataukseen piti rakentaa virheenkäsittelylogiikka, koska koko lataus jämähti aina ensimmäiseen virheeseen.

Ratkaisun etsimiseen ja eri testeihin meni yllättävän paljon aikaa, vaikka itse ratkaisu oli lopulta erittäin simppeli. Alla käyttämäni funktio (kysely) ja keltaisella alleviivattu lisäämäni kohdat.

error handling.JPG

Normaalisti kysely tuottaa ulos vain yhden sarakkeen taulun, jonka nimi on A (aloitukset). Ensin lisäsin vaihtoehtoisen Outputin (AltOutput), joka on muotoa taulu, jossa on yksi sarake (A), joka on numeerinen ja jolle annetaan arvo 60.

Sitten testaan (TestForError) poikkeustapauksissa ongelman aiheuttanut kohtaa. Huomaa try-funktion käyttö. Koodista olisi voinut saada jopa lyhyemmän try – otherwise konstruktiolla, mutta en heti saanut toimimaan, joten valitsin pienimmän riesan tien.

Lopuksi valitaan mitä kirjoitetaan ulos. Eli jos virheen testaus palauttaa virheilmoituksen, niin palautetaankin vaihtoehtoinen taulukko (AltOutput), mutta jos kaikki ok, niin palautetaan alkuperäinen taulukko.

Jälkikirjoitus – korrelaatioanalyysin perusteella voin vahvistaa alkuperäisen väitteen eli aloituksien ja maalien määrällä on tämän kauden osalta 0,22 suuruinen positiivinen korrelaatio.