Håndtering af fejl

På samme måde Excel daX-sproget har en funktion, har Power Query sin egen syntaks til IFERROR at teste og finde fejl.

Som nævnt i artiklen om arbejde med fejl i Power Querykan fejl vises enten på trin- eller celleniveau. I denne artikel fokuseres der på, hvordan du kan finde og administrere fejl baseret på vores egen specifikke logik.

Bemærk

For at demonstrere dette koncept bruger denne artikel en Excel projektmappe som datakilde for den. De begreber, der præsenteres her, gælder for alle værdier i det Power Query og ikke kun dem, der kommer fra en Excel projektmappe.

Anvendelse af betinget logik baseret på fejl

Eksempeldatakilden til denne demonstration er en Excel projektmappe med følgende tabel:

Eksempeldata fra Excel.

Denne tabel fra en Excel projektmappe indeholder Excel fejl som f.eks. #NULL!, #REF! og #DIV/0! i kolonnen Standard rate. Når du importerer denne tabel i Power Query, kan du på følgende billede se, hvordan den vil se ud.

Eksempeltabel i Power Query.

Bemærk, hvordan fejlene fra Excel projektmappe vises med [Error] værdien i hver af cellerne.

I dette tilfælde er målet at oprette en ny kolonne for Den endelige rate, som skal bruge værdierne fra kolonnen Standardfrekvens. Hvis der er fejl, bruges værdien fra den korresponente kolonne Special Rate.

Tilføj brugerdefineret kolonne med og try otherwise syntaks

Hvis du vil oprette en ny brugerdefineret kolonne, skal du gå til menuen Tilføj kolonne og vælge Brugerdefineret kolonne. Angiv formlen i vinduet Brugerdefineret try [Standard Rate] otherwise [Special Rate] kolonne. Navngive denne nye kolonne Final Rate.

prøv ellers brugerdefineret kolonne.

Ovenstående formel forsøger at evaluere kolonnen Standard rate og returnerer dens værdi, hvis der ikke findes nogen fejl. Hvis der er fundet fejl i kolonnen Standard rate, er outputtet den værdi, der er defineret efter sætningen, som i otherwise dette tilfælde er kolonnen Special Rate.

Når du har føjet de korrekte datatyper til alle kolonnerne i tabellen, kan du på følgende billede se, hvordan den færdige tabel ser ud.

Prøv i modsat fald den endelige tabel.

Anvendelse af en fejl med try og anvendelse af brugerdefineret betinget logik

Ved hjælp af den samme datakilde med eksemplet som i det forrige afsnit er det nye mål at oprette en ny kolonne for Den endelige hastighed. Hvis værdien fra Standardsatsen findes, bruges denne værdi. Ellers bruges værdien fra kolonnen Special Rate med undtagelse af rækkerne med #REF! eventuelle fejl.

Bemærk

Det eneste formål med at udelade #REF! fejlen er til demonstrationsformål. Med de koncepter, der vises i denne artikel, kan du se en hvilken som helst fejlårsager, meddelelser eller detaljer efter eget valg.

Når du vælger et af mellemrum foran fejlværdien, får du vist detaljeruden nederst på skærmen. Detaljeruden indeholder både fejlårsagen DataFormat.Error , og fejlmeddelelsen, Invalid cell value '#REF!' :

Eksempelfejl.

Du kan kun vælge én celle ad gangen, så du kan reelt kun se fejlkomponenterne for én fejlværdi ad gangen. Det er her, du skal oprette en ny brugerdefineret kolonne og bruge try udtrykket.

Tilføj brugerdefineret kolonne med try syntaks

Hvis du vil oprette en ny brugerdefineret kolonne, skal du gå til menuen Tilføj kolonne og vælge Brugerdefineret kolonne. Angiv formlen i vinduet Brugerdefineret try [Standard Rate] kolonne. Navngive denne nye kolonne Alle fejl.

Brug prøv i en brugerdefineret kolonne.

Udtrykket konverterer værdier og fejl til en postværdi, der angiver, om udtrykket håndterede en fejl eller ej, samt den korrekte værdi try try eller fejlposten.

Prøv at registrere værdier.

Du kan udvide denne nyligt oprettede kolonne med postværdier og se på de tilgængelige felter, der skal udvides, ved at vælge ikonet ud for kolonneoverskriften.

Udvid postværdier.

Denne handling viser tre nye felter:

  • Alle Errors.HasError — viser, om værdien fra kolonnen Standardfrekvens havde en fejl eller ej.
  • Alle Errors.Value — Hvis værdien fra kolonnen Standard rate ikke havde nogen fejl, vises værdien fra kolonnen Standardfrekvens i denne kolonne. For værdier med fejl er dette felt ikke tilgængeligt, og under udvidelseshandlingen vil denne kolonne null have værdier.
  • Alle Errors.Error — Hvis værdien fra kolonnen Standardfrekvens indeholder en fejl, vises fejlposten for værdien fra kolonnen Standardfrekvens i denne kolonne. For værdier uden fejl er dette felt ikke tilgængeligt, og under udvidelseshandlingen vil denne kolonne have null værdier.

prøv Udvidede felter.

Til yderligere undersøgelse kan du udvide kolonnen All Errors.Error for at få de tre komponenter i fejlposten:

  • Fejlårsagen
  • Fejlmeddelelse
  • Oplysninger om fejl

Når du har gjort handlingen Udvid, viser feltet All Errors.Error.Message den specifikke fejlmeddelelse, der fortæller dig præcist, Excel fejlen hver celle har. Fejlmeddelelsen afledes af feltet Error Message i fejlposten.

Specifik fejlmeddelelse.

Tilføj en betinget kolonne

Nu, hvor hver fejlmeddelelse er i en ny kolonne, kan du oprette en ny betinget kolonne med navnet Endelige hastighed og følgende delsætninger:

  • Hvis værdien i kolonnen All Errors.Errors.Message er lig med , vil outputtet være værdien null fra kolonnen Standardfrekvens.
  • Ellers vil outputtet være værdien fra kolonnen Special Rate, hvis værdien i kolonnen All Errors.Errors.Message er lig med Invalid cell value '#REF!'. .
  • Ellers null.

Betinget kolonne fra fejlmeddelelse.

Når du kun har beholde kolonnerne Konto, Standardfrekvens, Særlig hastighed og Endelig rate og tilføjet den korrekte datatype for hver kolonne, kan du på følgende billede se, hvordan den endelige tabel ser ud.

Endelig tabel med datatyper.

Flere ressourcer