Delen via


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

Een fout op stapniveau voorkomt dat de query wordt geladen en geeft de foutonderdelen weer in een geel venster.

Schermopname van een fout op stapniveau waarin een kolom niet is gevonden.

  • Foutoorzaak: De eerste sectie vóór de dubbele punt. In het vorige voorbeeld is de reden van de fout Expression.Error.
  • Foutbericht: Het gedeelte dat direct na de reden komt. In het vorige voorbeeld is de foutmelding De kolom 'Column' van de tabel werd niet gevonden.
  • Foutdetails: Het gedeelte direct na de "Details" string. In het vorige voorbeeld is het foutdetail Kolom.

Power Query Online geeft iets andere details weer. De foutdetails zijn nog steeds Kolom, maar het onlinefoutbericht bevat ook de foutreden (Expression.Error) en de foutcode (10224).

Schermopname van een onlinefout op stapniveau waarbij een kolom niet is gevonden.

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 Details weergeven selecteren, indien beschikbaar, om meer informatie over de fout weer te geven.

Schermopname van een foutbericht met de knop Details weergeven benadrukt.

Kan de bron niet vinden - DataSource.NotFound

Deze fout treedt meestal op wanneer de gegevensbron niet toegankelijk is voor de gebruiker, de gebruiker niet over de juiste referenties beschikt om toegang te krijgen tot de gegevensbron of als de bron naar een andere locatie is verplaatst.

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.NotFound omdat er geen station D in hun omgeving is.

Schermopname van een gegevensbronfout die het bestand niet kon vinden omdat er geen station D in de huidige 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.

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.

Schermopname van een expressiefout waarbij de kolom van de tabel niet is gevonden omdat de kolomnaam handmatig is gewijzigd.

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. Met deze wijziging 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.

Schermopname van een formulefirewallfout waarin wordt aangegeven dat de query verwijst naar andere query's of stappen, zodat deze mogelijk niet rechtstreeks toegang heeft tot een gegevensbron.

Deze fout treedt om verschillende redenen op, 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. Door te klikken op de lege ruimte in de cel wordt het foutvenster onder het gegevensvoorbeeld weergegeven.

Schermopname van het weergeven van het foutbericht door witruimte te selecteren in een tabelcel met een fout.

Opmerking

Met de hulpprogramma's voor gegevensprofilering kunt u gemakkelijker fouten op celniveau identificeren met de functie kolomkwaliteit. Ga naar Hulpprogramma's voor gegevensprofilering voor meer informatie.

Fouten op celniveau afhandelen

Wanneer u fouten op celniveau tegenkomt, biedt Power Query een set functies om deze 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.

Schermopname waarop de fout in de gegevensindeling wordt weergegeven, met daarin de foutmelding 'kan niet naar gegevenstype worden geconverteerd' in het foutenvenster.

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.

Schermopname van de knop Fouten verwijderen op het tabblad Start.

Het resultaat van deze bewerking geeft u de volgende tabel.

Schermopname van de tabel die eerder vijf rijen bevatte, waarbij de rij met de fout is verwijderd, waardoor er vier rijen in de tabel overblijven.

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 kolomde optie Waarden vervangen. Selecteer fouten vervangen in de vervolgkeuzelijst.

Schermopname van de knop Fouten vervangen op het tabblad Transformeren.

Voer in het dialoogvenster Fouten vervangen de waarde 10 in omdat u alle fouten wilt vervangen door de waarde 10.

Screenshot van het dialoogvenster Replace Errors met de waarde ingesteld op 10.

Het resultaat van deze bewerking geeft u de volgende tabel.

Schermopname van de tabel waarin de derde rij een fout bevat in de kolom Verkoop heeft nu de fout vervangen door de waarde 10.

Fouten behouden

Power Query kan fungeren als een goed controleprogramma om rijen met fouten te identificeren, zelfs als u de fouten niet oplost. In deze situatie kunnen fouten bijhouden nuttig zijn. Als u rijen met fouten wilt behouden, selecteert u eerst de kolom die fouten bevat. Op het tabblad Start in de groep Rijen beperken selecteer de optie Rijen behouden. Selecteer Fouten behouden in de vervolgkeuzelijst.

Schermopname van de knop Fouten behouden op het tabblad Start.

Het resultaat van deze bewerking geeft u de volgende tabel.

Schermopname van de uiteindelijke tabel die alleen rijen bevat die fouten bevatten.

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.

Fouten bij conversie van gegevenstypen

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.

Schermopname met foutdetails: kon niet converteren naar gegevenstype.

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.

Schermopname van de expressiefout in het foutvenster dat wordt veroorzaakt door een operator And toe te passen op tekst en een getal uit de kolom Verkoop.

Mogelijke oplossingen: Voordat u deze aangepaste kolom maakt, wijzigt u het gegevenstype van de kolom Verkoop in tekst.

Schermopname van de tabel met de verkoopkolom geconverteerd van een getal naar een teksttype en een nieuwe kolom met beide expressies.

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:

Schermopname van een fout voor geneste waarden die door de formulebescherming worden geactiveerd.

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-calaire waarden automatisch geconverteerd naar fouten.
  • Wanneer een kolom die is gedefinieerd met het Any gegevenstype niet-calaire 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-gegevenstypeAny in voor een dergelijke kolom.
  • Wijzig de privacyniveaus van de betrokken gegevensbronnen naar een niveau dat hun combinatie zonder buffering mogelijk maakt.
  • Maak de tabellen plat voordat u een samenvoegbewerking uitvoert om kolommen te verwijderen die geneste gestructureerde waarden bevatten (zoals tabel, record of lijst).