Omgaan met fouten in Power Query
In Power Query kunt u twee typen fouten tegenkomen:
- Fouten op stapniveau
- Fouten op celniveau
Dit artikel bevat suggesties voor het oplossen van de meest voorkomende fouten die u op elk niveau kunt vinden en beschrijft de foutreden, het foutbericht en de foutdetails voor elke fout.
Fout op stapniveau
Met een fout op stapniveau voorkomt u dat de query wordt geladen en worden de foutonderdelen in een geel deelvenster weergegeven.
- Foutreden: De eerste sectie vóór de dubbele punt. In het bovenstaande voorbeeld is de foutreden Expression.Error.
- Foutbericht: De sectie direct na de reden. In het bovenstaande voorbeeld is het foutbericht de kolom Kolom van de tabel niet gevonden.
- Foutdetails: De sectie direct na de details: tekenreeks. In het bovenstaande voorbeeld is de foutdetails Kolom.
Veelvoorkomende fouten op stapniveau
In alle gevallen raden we u aan de foutreden, het foutbericht en de foutdetails goed te bekijken om te begrijpen wat de fout veroorzaakt. U kunt de knop Ga naar fout selecteren, indien beschikbaar, om de eerste stap weer te geven waarin de fout is opgetreden.
Kan de bron niet vinden - DataSource.Error
Deze fout treedt meestal op wanneer de gegevensbron niet toegankelijk is door de gebruiker, de gebruiker niet over de juiste referenties beschikt om toegang te krijgen tot de gegevensbron of als de bron is verplaatst naar een andere locatie.
Voorbeeld: U hebt een query van een teksttegel die zich in station D bevindt en die is gemaakt door gebruiker A. Gebruiker A deelt de query met gebruiker B, die geen toegang heeft tot station D. Wanneer deze persoon de query probeert uit te voeren, krijgt deze een DataSource.Error omdat er geen station D in hun omgeving is.
Mogelijke oplossingen: U kunt het bestandspad van het tekstbestand wijzigen in een pad waartoe beide gebruikers toegang hebben. Als gebruiker B kunt u het bestandspad wijzigen in een lokale kopie van hetzelfde tekstbestand. Als de knop Instellingen bewerken beschikbaar is in het foutvenster, kunt u deze selecteren en het bestandspad wijzigen.
De kolom van de tabel is niet gevonden
Deze fout wordt meestal geactiveerd wanneer een stap een directe verwijzing maakt naar een kolomnaam die niet bestaat in de query.
Voorbeeld: U hebt een query uit een tekstbestand waarin een van de kolomnamen Kolom was. In uw query hebt u een stap die de naam van die kolom wijzigt in Date. Er is echter een wijziging aangebracht in het oorspronkelijke tekstbestand en er is geen kolomkop meer met de naam Kolom , omdat het handmatig is gewijzigd in Date. Power Query kan geen kolomkop met de naam Kolom vinden, zodat de naam van kolommen niet kan worden gewijzigd. De fout wordt weergegeven in de volgende afbeelding.
Mogelijke oplossingen: Er zijn meerdere oplossingen voor dit geval, maar ze zijn allemaal afhankelijk van wat u wilt doen. In dit voorbeeld kunt u, omdat de juiste kolomkop Date al afkomstig is uit het tekstbestand, de stap verwijderen waarmee de naam van de kolom wordt gewijzigd. Hierdoor kan uw query zonder deze fout worden uitgevoerd.
Andere veelvoorkomende fouten op stapniveau
Wanneer u gegevens combineert of samenvoegt tussen meerdere gegevensbronnen, krijgt u mogelijk een Formula.Firewall-fout , zoals de fout die wordt weergegeven in de volgende afbeelding.
Deze fout kan worden veroorzaakt door een aantal redenen, zoals de privacyniveaus voor gegevens tussen gegevensbronnen of de manier waarop deze gegevensbronnen worden gecombineerd of samengevoegd. Ga naar de firewall voor gegevensprivacy voor meer informatie over het vaststellen van dit probleem.
Fout op celniveau
Een fout op celniveau voorkomt niet dat de query wordt geladen, maar geeft foutwaarden weer als Fout in de cel. Als u de witruimte in de cel selecteert, wordt het foutvenster onder het voorbeeld van de gegevens weergegeven.
Notitie
Met de hulpprogramma's voor gegevensprofilering kunt u gemakkelijker fouten op celniveau identificeren met de functie kolomkwaliteit. Meer informatie: Hulpprogramma's voor gegevensprofilering
Fouten op celniveau afhandelen
Wanneer er fouten op celniveau optreden, biedt Power Query een set functies om ze te verwerken door de fouten te verwijderen, te vervangen of te behouden.
Voor de volgende secties gebruiken de opgegeven voorbeelden dezelfde voorbeeldquery als het beginpunt. In deze query hebt u een kolom Verkoop met één cel met een fout die wordt veroorzaakt door een conversiefout. De waarde in die cel was NA, maar toen u die kolom transformeerde naar een geheel getal kon Power Query geen NB converteren naar een getal, wordt de volgende fout weergegeven.
Fouten verwijderen
Als u rijen met fouten in Power Query wilt verwijderen, selecteert u eerst de kolom die fouten bevat. Selecteer Op het tabblad Start in de groep Rijen verminderen de optie Rijen verwijderen. Selecteer fouten verwijderen in de vervolgkeuzelijst.
Het resultaat van deze bewerking geeft u de tabel die u zoekt.
Fouten vervangen
Als u in plaats van rijen met fouten te verwijderen, de fouten wilt vervangen door een vaste waarde, kunt u dit ook doen. Als u rijen met fouten wilt vervangen, selecteert u eerst de kolom die fouten bevat. Selecteer op het tabblad Transformeren in de kolomgroep Elke kolom de optie Waarden vervangen. Selecteer fouten vervangen in de vervolgkeuzelijst.
Voer in het dialoogvenster Fouten vervangen de waarde 10 in omdat u alle fouten wilt vervangen door de waarde 10.
Het resultaat van deze bewerking geeft u de tabel die u zoekt.
Fouten behouden
Power Query kan fungeren als een goed controleprogramma om rijen met fouten te identificeren, zelfs als u de fouten niet oplost. Dit is waar fouten bijhouden nuttig kunnen zijn. Als u rijen met fouten wilt behouden, selecteert u eerst de kolom die fouten bevat. Selecteer Op het tabblad Start in de groep Rijen beperken de optie Rijen behouden. Selecteer Fouten behouden in de vervolgkeuzelijst.
Het resultaat van deze bewerking geeft u de tabel die u zoekt.
Veelvoorkomende fouten op celniveau
Net als bij een fout op stapniveau wordt u aangeraden de foutredenen, foutberichten en foutdetails op celniveau nader te bekijken om te begrijpen wat de fouten veroorzaken. In de volgende secties worden enkele van de meest voorkomende fouten op celniveau in Power Query besproken.
Conversiefouten gegevenstype
Dit wordt meestal geactiveerd bij het wijzigen van het gegevenstype van een kolom in een tabel. Sommige waarden in de kolom kunnen niet worden geconverteerd naar het gewenste gegevenstype.
Voorbeeld: U hebt een query met een kolom met de naam Sales. Eén cel in die kolom heeft NA als celwaarde, terwijl de rest gehele getallen als waarden heeft. U besluit het gegevenstype van de kolom te converteren van tekst naar een geheel getal, maar de cel met de N.V.- waarde veroorzaakt een fout.
Mogelijke oplossingen: Nadat u de rij met de fout hebt geïdentificeerd, kunt u de gegevensbron wijzigen zodat deze overeenkomt met de juiste waarde in plaats van N.V. of u kunt een vervangfoutbewerking toepassen om een waarde op te geven voor alle NA-waarden die een fout veroorzaken.
Bewerkingsfouten
Wanneer u een bewerking probeert toe te passen die niet wordt ondersteund, zoals het vermenigvuldigen van een tekstwaarde met een numerieke waarde, treedt er een fout op.
Voorbeeld: U wilt een aangepaste kolom voor uw query maken door een tekenreeks te maken die de woordgroep 'Totale verkoop: ' bevat die is samengevoegd met de waarde uit de kolom Verkoop . Er treedt een fout op omdat de samenvoegbewerking alleen tekstkolommen en niet numerieke kolommen ondersteunt.
Mogelijke oplossingen: Voordat u deze aangepaste kolom maakt, wijzigt u het gegevenstype van de kolom Verkoop in tekst.
Geneste waarden weergegeven als fouten
Wanneer u werkt met gegevens die geneste gestructureerde waarden bevatten (zoals tabellen, lijsten of records), kan het voorkomen dat de volgende fout optreedt:
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.
Deze fouten treden meestal om twee redenen op:
- Wanneer de Data Privacy Firewall een gegevensbron buffert, worden geneste niet-scalaire waarden automatisch geconverteerd naar fouten.
- Wanneer een kolom die is gedefinieerd met het
Any
gegevenstype niet-scalaire waarden bevat, worden deze waarden gerapporteerd als fouten tijdens het laden (zoals in een werkmap in Excel of het gegevensmodel in Power BI Desktop).
Mogelijke oplossingen:
- Verwijder de kolom die de fout bevat of stel een niet-gegevenstype
Any
in voor een dergelijke kolom. - Wijzig de privacyniveaus van de betrokken gegevensbronnen in een gegevensbron waarmee ze kunnen worden gecombineerd zonder dat ze worden gebufferd.
- Maak de tabellen plat voordat u een samenvoegbewerking uitvoert om kolommen te verwijderen die geneste gestructureerde waarden bevatten (zoals tabel, record of lijst).