Virheen käsittely
Samaan tapaan kuin Excelissä ja DAX-kielellä on funktio, Power Queryllä IFERROR
on oma syntaksi virheiden testaamiseen ja kiinniottamiseen.
Kuten artikkelissa Virheiden käsittely Power Queryssa on mainittu, virheet saattavat ilmetä joko vaihe- tai solutasolla. Tässä artikkelissa keskitytään siihen, miten voit saada kiinni ja hallita virheitä oman logiikkasi perusteella.
Muistiinpano
Tässä artikkelissa käytetään tietolähteenä Excel-työkirjaa. Tässä esitellyt käsitteet koskevat kaikkia Power Queryn arvoja, ei vain Excel-työkirjasta peräisin olevia.
Tämän esittelyn mallitietolähde on Excel-työkirja, jossa on seuraava taulukko.
Tässä Excel-työkirjan taulukossa on Excel-virheitä, kuten #NULL!, #REF!, ja #DIV/0! Standard Rate -sarakkeessa. Kun tuot tämän taulukon Power Query -editoriin, seuraavassa kuvassa näkyy, miltä se näyttää.
Huomaa, miten Excel-työkirjan virheet näkyvät kunkin solun arvolla [Error]
.
Tässä artikkelissa kerrotaan, miten voit korvata virheen toisella arvolla. Lisäksi opit myös ottamaan virheen kiinni ja käyttämään sitä omaan logiikkaasi.
Anna vaihtoehtoinen arvo löydettäessä virheitä
Tässä tapauksessa tavoitteena on luoda mallitietolähteeseen uusi Final Rate -sarake, joka käyttää Standard Rate -sarakkeen arvoja. Jos virheitä on, se käyttää vastaavan Special Rate - sarakkeen arvoa.
Jos haluat luoda uuden mukautetun sarakkeen , siirry Lisää sarake -valikkoon ja valitse Mukautettu sarake. Kirjoita Mukautettu sarake -ikkunaan kaava try [Standard Rate] otherwise [Special Rate]
. Anna uudelle sarakkeelle nimeksi Lopullinen suhde.
Tämä kaava yrittää arvioida Standard Rate - saraketta ja tulostaa sen arvon, jos virheitä ei löydy. Jos Standard Rate -sarakkeesta löytyy virheitä, tuloste on lausekkeen jälkeen otherwise
määritetty arvo, joka on tässä tapauksessa Special Rate -sarake.
Kun olet lisännyt oikeat tietotyypit kaikkiin taulukon sarakkeisiin, seuraava kuva näyttää, miltä lopullinen taulukko näyttää.
Muistiinpano
Vaihtoehtoisena menetelmänä voit myös syöttää kaavan try [Standard Rate] catch ()=> [Special Rate]
, joka vastaa edellistä kaavaa, mutta käyttää avainsanaa funktiolla, joka ei vaadi parametreja.
Avainsana catch
otettiin käyttöön Power Queryssa toukokuussa 2022.
Anna oma ehdollinen virhelogiikkasi
Käyttämällä samaa mallitietolähdettä kuin edellisessä osiossa, uusi tavoite on luoda uusi sarake Lopullinen suhde -prosentille. Jos vakiohinnan arvo on olemassa, kyseistä arvoa käytetään. Muussa tapauksessa käytetään Special Rate -sarakkeen arvoa lukuun ottamatta rivejä, joilla on virhe#REF!
.
Muistiinpano
Virheen poissulkemisen #REF!
ainoa tarkoitus on esittely. Tässä artikkelissa esiteltyjen käsitteiden avulla voit kohdentaa mitä tahansa valitsemiasi kenttiä virhetietueesta.
Kun valitset minkä tahansa virhearvon vieressä olevan välilyönnin, saat tiedot-ruudun näytön alareunaan. Tietoruutu sisältää sekä virheen syyn että DataFormat.Error
virhesanoman Invalid cell value '#REF!'
:
Voit valita vain yhden solun kerrallaan, joten voit tehokkaasti tarkastella vain yhden virhearvon virhekomponentteja kerrallaan. Tässä vaiheessa luot uuden mukautetun sarakkeen ja käytät lauseketta try
.
Käyttö try
mukautetun logiikan kanssa
Jos haluat luoda uuden mukautetun sarakkeen , siirry Lisää sarake -valikkoon ja valitse Mukautettu sarake. Kirjoita Mukautettu sarake -ikkunaan kaava try [Standard Rate]
. Anna tälle uudelle sarakkeelle nimeksi Kaikki virheet.
try
Lauseke muuntaa arvot ja virheet tietuearvoksi, joka ilmaisee, käsittelikö try
lauseke virhettä vai ei, ja oikeaksi arvoksi tai virhetietueeksi.
Voit laajentaa juuri luodun sarakkeen tietuearvoilla ja tarkastella laajennettavissa olevia kenttiä valitsemalla sarakeotsikon vieressä olevan kuvakkeen.
Tämä toiminto paljastaa kolme uutta kenttää:
- Kaikki Errors.HasError – näyttää, oliko Standard Rate -sarakkeen arvossa virhe vai ei.
- Kaikki Errors.Value – jos Standard Rate -sarakkeen arvolla ei ollut virhettä, tämä sarake näyttää Standard Rate -sarakkeen arvon. Virheitä sisältäville arvoille tämä kenttä ei ole käytettävissä, ja laajennustoiminnon aikana tällä sarakkeella on
null
arvoja. - Kaikki Errors.Error – jos Standard Rate -sarakkeen arvossa oli virhe, tämä sarake näyttää Standard Rate -sarakkeen arvon virhetietueen. Jos arvolla ei ole virheitä, tämä kenttä ei ole käytettävissä, ja laajennustoiminnon aikana tällä sarakkeella on
null
arvoja.
Tarkempaa tutkimusta varten voit laajentaa Kaikki virheet.Virhe-sarakkeen saadaksesi virhetietueen kolme osaa:
- Virheen syy
- Error message
- Virheen tiedot
Kun olet tehnyt laajennustoiminnon, Kaikki virheet.Error.Message-kenttä näyttää erityisen virhesanoman, joka kertoo tarkalleen, mikä Excel-virhe kullakin solulla on. Virhesanoma johdetaan virhetietueen Virhesanoma-kentästä .
Voit nyt luoda uuden ehdollisen sarakkeen, jonka nimi on Lopullinen korko ja seuraavat lausekkeet, lisäämällä kunkin virhesanoman uuteen sarakkeeseen:
- Jos Kaikki virheet.Errors.Message-sarakkeen arvo on yhtä suuri kuin
null
, tuloste on Standard Rate -sarakkeen arvo. - Muuten, jos Kaikki virheet.Errors.Message-sarakkeen arvo ei ole yhtä suuri kuin
Invalid cell value '#REF!'.
, tuloste on Special Rate -sarakkeen arvo. - Muuten, tyhjäarvo.
Kun olet säilyttäneet vain Account-, Standard Rate-, Special Rate- ja Final Rate -sarakkeet ja lisännyt oikean tietotyypin kullekin sarakkeelle, seuraava kuva osoittaa, miltä lopullinen taulukko näyttää.
Mukautetun logiikan käyttäminen try
ja catch
käyttäminen
Vaihtoehtoisesti voit myös luoda uuden mukautetun sarakkeen -ja catch
-try
avainsanoilla.
try [Standard Rate] catch (r)=> if r[Message] <> "Invalid cell value '#REF!'." then [Special Rate] else null