Del via


Håndtering af fejl i Power Query

I Power Query kan du støde på to typer fejl:

  • Fejl på trinniveau
  • Fejl på celleniveau

Denne artikel indeholder forslag til, hvordan du løser de mest almindelige fejl, du kan finde på hvert niveau, og beskriver fejlårsagen, fejlmeddelelsen og fejldetaljerne for hvert enkelt niveau.

Fejl på trinniveau

En fejl på trinniveau forhindrer, at forespørgslen indlæses, og fejlkomponenterne vises i en gul rude.

Skærmbillede af en fejl på trinniveau, hvor en kolonne ikke blev fundet.

  • Fejlårsag: Den første sektion før kolonet. I det forrige eksempel er fejlårsagen Expression.Error.
  • Fejlmeddelelse: Sektionen umiddelbart efter årsagen. I det forrige eksempel er fejlmeddelelsen Kolonnen 'Kolonne' i tabellen blev ikke fundet.
  • Fejldetaljer: Sektionen direkte efter strengen Details: . I det forrige eksempel er fejldetaljerne Kolonne.

Power Query Online viser lidt forskellige detaljer. Fejldetaljerne er stadig Column, men onlinefejlmeddelelsen indeholder også fejlårsagen (Expression.Error) og fejlkoden (10224).

Skærmbillede af en onlinefejl på trinniveau, hvor en kolonne ikke blev fundet.

Almindelige fejl på trinniveau

I alle tilfælde anbefaler vi, at du kigger nærmere på fejlårsagen, fejlmeddelelsen og fejldetaljerne for at forstå, hvad der forårsager fejlen. Du kan vælge knappen Vis detaljer , hvis den er tilgængelig, for at få vist flere oplysninger om fejlen.

Skærmbillede af en fejlmeddelelse, hvor knappen Vis detaljer er fremhævet.

Kilden blev ikke fundet – DataSource.NotFound

Denne fejl opstår ofte, når brugeren ikke har adgang til datakilden, brugeren ikke har de korrekte legitimationsoplysninger til at få adgang til datakilden, eller kilden er flyttet til et andet sted.

Eksempel: Du har en forespørgsel fra et tekstfelt, der blev placeret i drev D og oprettet af bruger A. Bruger A deler forespørgslen med bruger B, som ikke har adgang til drev D. Når denne person forsøger at udføre forespørgslen, får vedkommende en DataSource.NotFound , fordi der ikke er noget drev D i deres miljø.

Skærmbillede af en datakildefejl, der ikke kunne finde filen, fordi der ikke er noget drev D i det aktuelle miljø.

Mulige løsninger: Du kan ændre filstien for tekstfilen til en sti, som begge brugere har adgang til. Som bruger B kan du ændre filstien til at være en lokal kopi af den samme tekstfil.

Kolonnen i tabellen blev ikke fundet

Denne fejl udløses ofte, når et trin henviser direkte til et kolonnenavn, der ikke findes i forespørgslen.

Eksempel: Du har en forespørgsel fra en tekstfil, hvor et af kolonnenavnene var Column. I din forespørgsel har du et trin, der omdøber kolonnen til Dato. Men der var en ændring i den oprindelige tekstfil, og den har ikke længere en kolonneoverskrift med navnet Kolonne , fordi den blev ændret manuelt til Dato. Power Query kan ikke finde en kolonneoverskrift med navnet Kolonne, så den kan ikke omdøbe nogen kolonner. Den viser den fejl, der vises på følgende billede.

Skærmbillede af en udtryksfejl, hvor kolonnen i tabellen ikke blev fundet, fordi kolonnenavnet blev ændret manuelt.

Mulige løsninger: Der er flere løsninger til denne sag, men de afhænger alle af, hvad du gerne vil gøre. I dette eksempel kan du blot fjerne det trin, der omdøber kolonnen, fordi den korrekte kolonneoverskrift Dato allerede kommer fra tekstfilen. Denne ændring gør det muligt for din forespørgsel at køre uden denne fejl.

Andre almindelige fejl på trinniveau

Når du kombinerer eller fletter data mellem flere datakilder, får du muligvis vist en Formula.Firewall-fejl som den, der vises på følgende billede.

Skærmbillede af en formel Firewallfejl, der angiver, at forespørgslen refererer til andre forespørgsler eller trin, så den har muligvis ikke direkte adgang til en datakilde.

Denne fejl opstår af forskellige årsager, f.eks. niveauerne for beskyttelse af personlige oplysninger mellem datakilder eller den måde, som disse datakilder kombineres eller flettes på. Du kan finde flere oplysninger om, hvordan du diagnosticerer dette problem, ved at gå til Firewall til beskyttelse af personlige oplysninger.

Fejl på celleniveau

En fejl på celleniveau forhindrer ikke, at forespørgslen indlæses, men viser fejlværdier som Error i cellen. Hvis du vælger blanktegn i cellen, vises fejlruden under dataeksemplet.

Skærmbillede, der demonstrerer visning af fejlmeddelelsen ved at vælge mellemrum i en tabelcelle, der indeholder en fejl.

Notat

Værktøjerne til dataprofilering kan hjælpe dig med nemmere at identificere fejl på celleniveau med funktionen kolonnekvalitet. Du kan få flere oplysninger ved at gå til Værktøjer til dataprofilering.

Håndtering af fejl på celleniveau

Når du støder på fejl på celleniveau, indeholder Power Query et sæt funktioner, der kan håndtere dem enten ved at fjerne, erstatte eller bevare fejlene.

I de næste afsnit bruger de angivne eksempler den samme eksempelforespørgsel som startpunktet. I denne forespørgsel har du en kolonne af typen Sales , der har én celle med en fejl, der skyldes en konverteringsfejl. Værdien i cellen var NA, men da du transformerede kolonnen til et heltal, kunne Power Query ikke konvertere NA til et tal, så den viser følgende fejl.

Skærmbillede, der viser dataformatfejlen, som indeholder fejlen kunne ikke konverteres til datatypen i fejlruden.

Fjern fejl

Hvis du vil fjerne rækker med fejl i Power Query, skal du først vælge den kolonne, der indeholder fejl. Vælg Fjern rækker i gruppen Reducer rækker under fanen Hjem. Vælg Fjern fejl i rullemenuen.

Skærmbillede af knappen Fjern fejl under fanen Hjem.

Resultatet af denne handling giver dig følgende tabel.

Skærmbillede af tabellen, der tidligere indeholdt fem rækker, har nu den række, der indeholdt fejlen, fjernet, hvilket efterlader fire rækker i tabellen.

Erstat fejl

Hvis du i stedet for at fjerne rækker med fejl vil erstatte fejlene med en fast værdi, kan du også gøre det. Hvis du vil erstatte rækker med fejl, skal du først vælge den kolonne, der indeholder fejl. Vælg Erstat værdier i gruppen Enhver kolonne under fanen Transformér. Vælg Erstat fejl i rullemenuen.

Skærmbillede af knappen Erstat fejl under fanen Transformér.

I dialogboksen Erstat fejl skal du angive værdien 10 , fordi du vil erstatte alle fejl med værdien 10.

Skærmbillede af dialogboksen Erstat fejl, hvor værdien er angivet til 10.

Resultatet af denne handling giver dig følgende tabel.

Skærmbillede af den tabel, hvor den tredje række indeholdt en fejl i kolonnen Sales, hvor fejlen nu er erstattet med værdien 10.

Bevar fejl

Power Query kan fungere som et godt overvågningsværktøj til at identificere rækker med fejl, selvom du ikke retter fejlene. I denne situation kan Keep-fejl være nyttige. Hvis du vil bevare rækker med fejl, skal du først vælge den kolonne, der indeholder fejl. Under fanen Hjem i gruppen Reducer rækker skal du vælge Bevar rækker. Vælg Bevar fejl i rullemenuen.

Skærmbillede af knappen Bevar fejl under fanen Hjem.

Resultatet af denne handling giver dig følgende tabel.

Skærmbillede af den endelige tabel, der kun indeholder rækker, der indeholder fejl.

Almindelige fejl på celleniveau

Som med enhver fejl på trinniveau anbefaler vi, at du kigger nærmere på de fejlårsager, fejlmeddelelser og fejloplysninger, der er angivet på celleniveau, for at forstå, hvad der forårsager fejlene. I følgende afsnit beskrives nogle af de hyppigste fejl på celleniveau i Power Query.

Konverteringsfejl for datatype

Udløses ofte, når datatypen for en kolonne ændres i en tabel. Nogle af de værdier, der blev fundet i kolonnen, kunne ikke konverteres til den ønskede datatype.

Eksempel: Du har en forespørgsel, der indeholder en kolonne med navnet Sales. Én celle i denne kolonne har NA som en celleværdi, mens resten har heltal som værdier. Du beslutter at konvertere kolonnens datatype fra tekst til heltal, men cellen med NA-værdien medfører en fejl.

Skærmbillede, der viser oplysninger om fejl i datatypen, der ikke kunne konverteres.

Mulige løsninger: Når du har identificeret rækken med fejlen, kan du enten ændre datakilden, så den afspejler den korrekte værdi i stedet for NA, eller du kan anvende fejlhandlingen Erstat for at angive en værdi for de NA-værdier , der forårsager en fejl.

Handlingsfejl

Når du forsøger at anvende en handling, der ikke understøttes, f.eks. multiplicering af en tekstværdi med en numerisk værdi, opstår der en fejl.

Eksempel: Du vil oprette en brugerdefineret kolonne til forespørgslen ved at oprette en tekststreng, der indeholder udtrykket "Samlet salg: "sammenkædet med værdien fra kolonnen Sales . Der opstår en fejl, fordi sammenkædningshandlingen kun understøtter tekstkolonner og ikke numeriske kolonner.

Skærmbillede af udtryksfejlen i fejlruden, der skyldes, at du forsøger at anvende operatoren And på tekst og et tal fra kolonnen Sales.

Mulige løsninger: Før du opretter denne brugerdefinerede kolonne, skal du ændre datatypen for kolonnen Sales til tekst.

Skærmbillede af tabellen, hvor kolonnen Sales er konverteret fra et tal til en teksttype, og en ny kolonne, der indeholder begge udtryk.

Indlejrede værdier, der vises som fejl

Når du arbejder med data, der indeholder indlejrede strukturerede værdier (f.eks. tabeller, lister eller poster), kan der nogle gange opstå følgende fejl:

Skærmbillede af en fejl for indlejrede værdier, der udløses af formelfirewallen.

Expression.Error: We cannot return a value of type {value} in this context

Details: In the past we would have returned a text value of {value}, but we now return this error. Please see https://go.microsoft.com/fwlink/?linkid=2099726 for more information.

Disse fejl opstår normalt af to årsager:

  • Når Data Privacy Firewall gemmer en datakilde i buffer, konverteres indlejrede ikke-calære værdier automatisk til fejl.
  • Når en kolonne, der er defineret med Any datatypen , indeholder ikke-calarværdier, rapporteres sådanne værdier som fejl under indlæsning (f.eks. i en projektmappe i Excel eller datamodellen i Power BI Desktop).

Mulige løsninger:

  • Fjern den kolonne, der indeholder fejlen, eller angiv en ikke-datatypeAny for en sådan kolonne.
  • Skift niveauerne for beskyttelse af personlige oplysninger for de involverede datakilder til en, der gør det muligt at kombinere dem uden at blive bufferlagret.
  • Fladgør tabellerne, før du fletter for at fjerne kolonner, der indeholder indlejrede strukturerede værdier (f.eks. tabel, post eller liste).