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 ja hallita virheitä oman logiikan mukaan.
Muistiinpano
Tässä artikkelissa käytetään tämän käsitteen havainnollistamiseen Excel-työkirjaa tietolähteenä. 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 opit korvaamaan virheen toisella arvolla. Lisäksi opit ottamaan virheen kiinni ja käyttämään sitä omaan logiikkaasi.
Tässä tapauksessa tavoitteena on luoda uusi Final Rate -sarake, joka käyttää Standard Rate -sarakkeen arvoja. Jos virheitä on, se käyttää kirjeenvaihtajan Special Rate - sarakkeen arvoa.
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.
Yllä oleva kaava yrittää arvioida Standard Rate -sarakkeen 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 käytännössä näet vain yhden virhearvon virhekomponentit kerrallaan. Tässä 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, sekä oikean arvon tai virhetietueen.
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ässä sarakkeessa 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ässä sarakkeessa 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
Lisää resursseja
Palaute
https://aka.ms/ContentUserFeedback.
Tulossa pian: Vuoden 2024 aikana poistamme asteittain GitHub Issuesin käytöstä sisällön palautemekanismina ja korvaamme sen uudella palautejärjestelmällä. Lisätietoja on täällä:Lähetä ja näytä palaute kohteelle