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:

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.

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.

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.

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!' :

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.

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.

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.

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
nullhave 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
nullværdier.

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.

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

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.
