Hantera fel i Power Query
I Power Query kan du stöta på två typer av fel:
- Fel på stegnivå
- Fel på cellnivå
Den här artikeln innehåller förslag på hur du åtgärdar de vanligaste felen som du kan hitta på varje nivå och beskriver felorsaken, felmeddelandet och felinformationen för var och en.
Ett fel på stegnivå hindrar frågan från att läsas in och visar felkomponenterna i ett gult fönster.
- Felorsak: Det första avsnittet före kolonet. I exemplet ovan är felorsaken Expression.Error.
- Felmeddelande: Avsnittet direkt efter orsaken. I exemplet ovan är felmeddelandet Kolumnen Kolumn i tabellen hittades inte.
- Felinformation: Avsnittet direkt efter strängen Information: . I exemplet ovan är felinformationen Kolumn.
I samtliga fall rekommenderar vi att du tar en närmare titt på felorsaken, felmeddelandet och felinformationen för att förstå vad som orsakar felet. Du kan välja knappen Gå till fel om det är tillgängligt för att visa det första steget där felet inträffade.
Det här felet uppstår ofta när datakällan inte är tillgänglig för användaren, användaren inte har rätt autentiseringsuppgifter för att komma åt datakällan eller om källan har flyttats till en annan plats.
Exempel: Du har en fråga från en textpanel som fanns på enhet D och skapades av användaren A. Användare A delar frågan med användare B, som inte har åtkomst till enhet D. När den här personen försöker köra frågan får de ett DataSource.Error eftersom det inte finns någon enhet D i deras miljö.
Möjliga lösningar: Du kan ändra filsökvägen för textfilen till en sökväg som båda användarna har åtkomst till. Som användare B kan du ändra filsökvägen till en lokal kopia av samma textfil. Om knappen Redigera inställningar är tillgänglig i felfönstret kan du välja den och ändra filsökvägen.
Det här felet utlöses ofta när ett steg gör en direkt referens till ett kolumnnamn som inte finns i frågan.
Exempel: Du har en fråga från en textfil där ett av kolumnnamnen var Kolumn. I din fråga har du ett steg som byter namn på kolumnen till Datum. Men det skedde en ändring i den ursprungliga textfilen och den har inte längre en kolumnrubrik med namnet Kolumn eftersom den ändrades manuellt till Datum. Power Query kan inte hitta en kolumnrubrik med namnet Kolumn, så den kan inte byta namn på några kolumner. Det visar felet som visas i följande bild.
Möjliga lösningar: Det finns flera lösningar för det här fallet, men alla är beroende av vad du vill göra. I det här exemplet, eftersom rätt datumkolumnrubrik redan kommer från textfilen, kan du bara ta bort steget som byter namn på kolumnen. Detta gör att frågan kan köras utan det här felet.
När du kombinerar eller sammanfogar data mellan flera datakällor kan du få ett Formula.Firewall-fel , till exempel det som visas i följande bild.
Det här felet kan orsakas av ett antal orsaker, till exempel datasekretessnivåer mellan datakällor eller hur dessa datakällor kombineras eller sammanfogas. Mer information om hur du diagnostiserar det här problemet finns i Brandvägg för datasekretess.
Ett fel på cellnivå hindrar inte frågan från att läsas in, men visar felvärden som Fel i cellen. Om du väljer det tomma utrymmet i cellen visas felfönstret under dataförhandsgranskningen.
Anteckning
Dataprofileringsverktygen kan hjälpa dig att enklare identifiera fel på cellnivå med kolumnkvalitetsfunktionen. Mer information: Verktyg för dataprofilering
När det uppstår fel på cellnivå tillhandahåller Power Query en uppsättning funktioner för att hantera dem antingen genom att ta bort, ersätta eller behålla felen.
För nästa avsnitt använder de angivna exemplen samma exempelfråga som startpunkten. I den här frågan har du en sales-kolumn som har en cell med ett fel som orsakas av ett konverteringsfel. Värdet i cellen var NA, men när du omvandlade kolumnen till ett heltal kunde Power Query inte konvertera NA till ett tal, så det visar följande fel.
Om du vill ta bort rader med fel i Power Query väljer du först den kolumn som innehåller fel. På fliken Start går du till gruppen Minska rader och väljer Ta bort rader. I den nedrullningsbara menyn väljer du Ta bort fel.
Resultatet av den åtgärden ger dig den tabell som du letar efter.
Om du i stället för att ta bort rader med fel vill ersätta felen med ett fast värde kan du också göra det. Om du vill ersätta rader med fel väljer du först den kolumn som innehåller fel. På fliken Transformera går du till gruppen Valfri kolumn och väljer Ersätt värden. I den nedrullningsbara menyn väljer du Ersätt fel.
I dialogrutan Ersätt fel anger du värdet 10 eftersom du vill ersätta alla fel med värdet 10.
Resultatet av den åtgärden ger dig den tabell som du letar efter.
Power Query kan fungera som ett bra granskningsverktyg för att identifiera eventuella rader med fel även om du inte åtgärdar felen. Det är här Behåll fel kan vara till hjälp. Om du vill behålla rader som har fel väljer du först den kolumn som innehåller fel. På fliken Start går du till gruppen Minska rader och väljer Behåll rader. I den nedrullningsbara menyn väljer du Behåll fel.
Resultatet av den åtgärden ger dig den tabell som du letar efter.
Precis som med eventuella fel på stegnivå rekommenderar vi att du tar en närmare titt på felorsakerna, felmeddelandena och felinformationen på cellnivå för att förstå vad som orsakar felen. I följande avsnitt beskrivs några av de vanligaste felen på cellnivå i Power Query.
Utlöses ofta när du ändrar datatypen för en kolumn i en tabell. Vissa värden som hittades i kolumnen kunde inte konverteras till önskad datatyp.
Exempel: Du har en fråga som innehåller en kolumn med namnet Försäljning. En cell i den kolumnen har NA som ett cellvärde, medan resten har heltal som värden. Du bestämmer dig för att konvertera datatypen för kolumnen från text till heltal, men cellen med NA-värdet orsakar ett fel.
Möjliga lösningar: När du har identifierat raden med felet kan du antingen ändra datakällan så att den återspeglar rätt värde i stället för NA, eller så kan du använda en ersätt-felåtgärd för att ange ett värde för alla NA-värden som orsakar ett fel.
När du försöker tillämpa en åtgärd som inte stöds, till exempel att multiplicera ett textvärde med ett numeriskt värde, uppstår ett fel.
Exempel: Du vill skapa en anpassad kolumn för din fråga genom att skapa en textsträng som innehåller frasen "Total försäljning: " sammanfogad med värdet från kolumnen Försäljning . Ett fel uppstår eftersom sammanfogningsåtgärden endast stöder textkolumner och inte numeriska.
Möjliga lösningar: Innan du skapar den här anpassade kolumnen ändrar du datatypen för kolumnen Försäljning till text.
När du arbetar med data som innehåller kapslade strukturerade värden (till exempel tabeller, listor eller poster) kan det ibland uppstå följande fel:
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.
Dessa fel uppstår vanligtvis av två orsaker:
- När datasekretessbrandväggen buffrar en datakälla konverteras kapslade icke-skalära värden automatiskt till fel.
- När en kolumn som definierats med
Any
datatypen innehåller icke-skalära värden rapporteras sådana värden som fel vid inläsning (till exempel i en arbetsbok i Excel eller datamodellen i Power BI Desktop).
Möjliga lösningar:
- Ta bort kolumnen som innehåller felet eller ange en icke-datatyp
Any
för en sådan kolumn. - Ändra sekretessnivåerna för de berörda datakällorna till en som gör att de kan kombineras utan att buffrads.
- Platta ut tabellerna innan du gör en sammanslagning för att eliminera kolumner som innehåller kapslade strukturerade värden (till exempel tabell, post eller lista).