Les på engelsk

Del via


Feilhåndtering

I likhet med hvordan Excel og DAX-språket har en IFERROR funksjon, har Power Query sin egen syntaks for å teste og fange opp feil.

Som nevnt i artikkelen om håndtering av feil i Power Query, kan feil vises enten på trinn- eller cellenivå. Denne artikkelen fokuserer på hvordan du kan fange opp og behandle feil basert på din egen spesifikke logikk.

Obs!

Denne artikkelen bruker en Excel-arbeidsbok som datakilde for å demonstrere dette konseptet. Konseptene som vises her gjelder for alle verdier i Power Query, og ikke bare de som kommer fra en Excel-arbeidsbok.

Eksempeldatakilden for denne demonstrasjonen er en Excel-arbeidsbok med tabellen nedenfor.

Skjermbilde av eksempeldata fra en Excel-arbeidsbok som inneholder tre feil.

Denne tabellen fra en Excel-arbeidsbok inneholder Excel-feil, for eksempel #NULL!, #REF!, og #DIV/0! i kolonnen Standardsats . Når du importerer denne tabellen til redigeringsprogrammet for Power Query, viser bildet nedenfor hvordan den ser ut.

Skjermbilde av eksempeltabellen som er lastet inn i Power Query.

Legg merke til hvordan feilene fra Excel-arbeidsboken vises med [Error] verdien i hver av cellene.

I denne artikkelen lærer du hvordan du erstatter en feil med en annen verdi. I tillegg lærer du også hvordan du får en feil og bruker den til din egen spesifikke logikk.

Angi en alternativ verdi når du finner feil

I dette tilfellet er målet å opprette en ny sluttsatskolonne i eksempeldatakilden som bruker verdiene fra kolonnen Standardsats . Hvis det er noen feil, bruker den verdien fra den tilsvarende spesialsatskolonnen .

Hvis du vil opprette en ny egendefinert kolonne, går du til Legg til kolonne-menyen og velger Egendefinert kolonne. Skriv inn formelen try [Standard Rate] otherwise [Special Rate]i vinduet Egendefinert kolonne . Gi navn til den nye kolonnen Sluttsats.

Skjermbilde med dialogboksen Egendefinert kolonne åpen, og prøv ellers en formel som er angitt i den egendefinerte kolonnen.

Denne formelen prøver å evaluere kolonnen Standardsats og sender ut verdien hvis det ikke blir funnet noen feil. Hvis det blir funnet feil i kolonnen Standardsats , er utdataene verdien som er definert etter otherwise setningen, som i dette tilfellet er kolonnen Spesialsats .

Når du har lagt til de riktige datatypene i alle kolonnene i tabellen, viser bildet nedenfor hvordan den endelige tabellen ser ut.

Skjermbilde av tabellen med standard rentefeil erstattet av spesialsatsen i Kolonnen Sluttsats.

Obs!

Som en alternativ fremgangsmåte kan du også skrive inn formelen try [Standard Rate] catch ()=> [Special Rate], som tilsvarer den forrige formelen, men bruke nøkkelordet for fangst med en funksjon som ikke krever noen parametere.

Nøkkelordet catch ble introdusert i Power Query i mai 2022.

Angi din egen betingede feillogikk

Ved å bruke samme eksempeldatakilde som forrige del, er det nye målet å opprette en ny kolonne for sluttsatsen. Hvis verdien fra standardsatsen finnes, brukes denne verdien. Ellers brukes verdien fra kolonnen Spesialsats , bortsett fra radene med eventuelle #REF! feil.

Obs!

Det eneste formålet med å #REF! ekskludere feilen er for demonstrasjonsformål. Med konseptene som vises i denne artikkelen, kan du målrette mot alle feltene du ønsker fra feilposten.

Når du velger en av mellomrom ved siden av feilverdien, får du detaljruten nederst på skjermen. Detaljruten inneholder både feilårsaken og DataFormat.Errorfeilmeldingen: Invalid cell value '#REF!'

Skjermbilde av den valgte feilen, med en feilmelding nederst i dialogboksen.

Du kan bare merke én celle om gangen, slik at du effektivt bare kan undersøke feilkomponentene i én feilverdi om gangen. Det er nå du oppretter en ny egendefinert kolonne og bruker try uttrykket.

Bruk try med egendefinert logikk

Hvis du vil opprette en ny egendefinert kolonne, går du til Legg til kolonne-menyen og velger Egendefinert kolonne. Skriv inn formelen try [Standard Rate]i vinduet Egendefinert kolonne . Gi navn til den nye kolonnen Alle feil.

Skjermbilde med dialogboksen Egendefinert kolonne åpen og en prøveformel angitt i den egendefinerte kolonnen.

Uttrykket try konverterer verdier og feil til en postverdi som angir om try uttrykket håndterte en feil eller ikke, og den riktige verdien eller feilposten.

Skjermbilde av tabellen med Kolonnen Alle feil lagt til og feilene som vises som poster.

Du kan utvide denne nyopprettede kolonnen med postverdier og se på de tilgjengelige feltene som skal utvides ved å velge ikonet ved siden av kolonneoverskriften.

Skjermbilde av Alle feil-kolonnen med utvid-ikonet uthevet, og boksene HasError, Verdi og Feil valgt.

Denne operasjonen viser tre nye felt:

  • All Errors.HasError – viser om verdien fra standardpriskolonnen hadde en feil eller ikke.
  • Alle errors.value – hvis verdien fra kolonnen Standardsats ikke hadde noen feil, viser denne kolonnen verdien fra kolonnen Standardsats . For verdier med feil er ikke dette feltet tilgjengelig, og under utvidingsoperasjonen har null denne kolonnen verdier.
  • Alle feil.Feil – hvis verdien fra Kolonnen Standardsats hadde en feil, viser denne kolonnen feilposten for verdien fra kolonnen Standardsats . For verdier uten feil er ikke dette feltet tilgjengelig, og under utvidingsoperasjonen har null denne kolonnen verdier.

Skjermbilde av tabellen med de nye feltene i kolonner, med én All.Errors.Error-verdi valgt, og viser feilmeldingene under tabellen.

For videre undersøkelser kan du utvide kolonnen Alle feil.Feil for å hente de tre komponentene i feilposten:

  • Feilårsak
  • Error message
  • Feildetaljer

Når du har gjort utvidelsesoperasjonen, viser Feltet Alle feil.Feil.Melding den bestemte feilmeldingen som forteller deg nøyaktig hvilken Excel-feil hver celle har. Feilmeldingen er avledet fra feilmeldingsfeltet i feilposten.

Skjermbilde med bestemte feilmeldinger vist.

Nå med hver feilmelding i en ny kolonne, kan du opprette en ny betinget kolonne med navnet Endelig rente og følgende setninger:

  • Hvis verdien i kolonnen Alle feil.Feil.Melding er lik null, er utdataene verdien fra kolonnen Standardsats .
  • Hvis verdien i kolonnen Alle feil.Feil.Melding ikke er lik Invalid cell value '#REF!'., er utdataene verdien fra kolonnen Spesialsats .
  • Ellers null.

Skjermbilde av dialogboksen Legg til betinget kolonne med alle feilbetingelsene som er angitt for den nye kolonnen.

Når du bare har beholdt kolonnene Konto, Standardsats, Spesialsats og Sluttsats , og lagt til riktig datatype for hver kolonne, viser bildet nedenfor hvordan den endelige tabellen ser ut.

Skjermbilde av den endelige tabellen med de gjenværende kolonnene med de riktige datatypene.

Bruk try og catch med egendefinert logikk

Du kan også opprette en ny egendefinert kolonne ved hjelp av try og catch nøkkelord.

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

Dialogboksen Egendefinert kolonne med en ny formel som viser hvordan du prøver å fange syntaks.

Flere ressurser