Jaa


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.

Näyttökuva Excel-työkirjan mallitiedoista, jotka sisältävät kolme virhettä.

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ää.

Näyttökuva Power Queryen ladatusta mallitaulukosta.

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.

Näyttökuva, jossa Mukautettu sarake -valintaikkuna on avoinna ja mukautettuun sarakkeeseen on syötetty kaava Kokeile muulla tavalla.

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ää.

Näyttökuva taulukosta, jossa vakioprosenttivirheet on korvattu Final Rate -sarakkeen erikoishinnalla.

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.Errorvirhesanoman Invalid cell value '#REF!':

Näyttökuva valitusta virheestä, virhesanoma valintaikkunan alareunassa.

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.

Näyttökuva, jossa Mukautettu sarake -valintaikkuna on avoinna ja mukautettuun sarakkeeseen on syötetty try-kaava.

try Lauseke muuntaa arvot ja virheet tietuearvoksi, joka ilmaisee, käsittelikö try lauseke virhettä vai ei, ja oikeaksi arvoksi tai virhetietueeksi.

Näyttökuva taulukosta, johon on lisätty Kaikki virheet -sarake ja virheet tietueina.

Voit laajentaa juuri luodun sarakkeen tietuearvoilla ja tarkastella laajennettavissa olevia kenttiä valitsemalla sarakeotsikon vieressä olevan kuvakkeen.

Näyttökuva Kaikki virheet -sarakkeesta, jossa on korostettu laajennuskuvake sekä valittuna HasError-, Value- ja Error-ruudut.

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.

Näyttökuva taulukosta, jossa uudet kentät ovat sarakkeissa, yksi All.Errors.Error-arvo valittuna ja virhesanomat taulukon alla.

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ä .

Näyttökuva, jossa näkyvät tietyt virhesanomat.

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.

Näyttökuva Lisää ehdollinen sarake -valintaikkunasta, jossa kaikki virheehdot on määritetty uudelle sarakkeelle.

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ää.

Näyttökuva lopullisesta taulukosta, jossa on jäljellä olevat sarakkeet, joissa on oikeat tietotyypit.

Mukautetun logiikan käyttäminen try ja catch käyttäminen

Vaihtoehtoisesti voit myös luoda uuden mukautetun sarakkeen -ja catch -tryavainsanoilla.

try [Standard Rate] catch (r)=> if r[Message] <> "Invalid cell value '#REF!'." then [Special Rate] else null

Mukautettu sarake -valintaikkuna, jossa on uusi kaava, joka esittelee kokeile ja ottaa kiinni -syntaksimenetelmän.

Lisää resursseja