Sdílet prostřednictvím


Řešení chyb v Power Query

V Power Query můžete narazit na dva typy chyb:

  • Chyby na úrovni kroku
  • Chyby na úrovni buněk

Tento článek obsahuje návrhy, jak opravit nejběžnější chyby, které můžete najít na jednotlivých úrovních, a popisuje důvod chyby, chybovou zprávu a podrobnosti o chybách pro každou z nich.

Chyba na úrovni jednotlivých kroků

Chyba na úrovni kroku brání načtení dotazu a zobrazení komponent chyb ve žlutém podokně.

Snímek obrazovky s chybou při kroku, kdy nebyl nalezen sloupec

  • Důvod chyby: První oddíl před dvojtečkou. V předchozím příkladu je důvodem chyby Výraz.Error.
  • Chybová zpráva: Oddíl přímo za důvodem. V předchozím příkladu je chybová zpráva sloupec 'Sloupec' tabulky nebyl nalezen.
  • Podrobnosti o chybě: Oddíl přímo za řetězcem Details: V předchozím příkladu je podrobnost o chybě Sloupec.

Power Query Online zobrazuje mírně odlišné podrobnosti. Podrobnosti o chybě jsou stále ve sloupci, ale online chybová zpráva obsahuje také důvod chyby (Expression.Error) a kód chyby (10224).

Snímek obrazovky s online chybou na úrovni kroku, kdy nebyl nalezen sloupec

Běžné chyby na úrovni kroku

Ve všech případech doporučujeme podívat se na důvod chyby, chybovou zprávu a podrobnosti o chybě, abyste pochopili, co je příčinou chyby. Pokud je k dispozici, můžete vybrat tlačítko Zobrazit podrobnosti a zobrazit další podrobnosti o chybě.

Snímek obrazovky s chybovou zprávou se zvýrazněným tlačítkem Zobrazit podrobnosti

Zdroj nejde najít – DataSource.NotFound

K této chybě obvykle dochází, když je zdroj dat nepřístupný uživatelem, uživatel nemá správné přihlašovací údaje pro přístup ke zdroji dat nebo se zdroj přesunul na jiné místo.

Příklad: Máte dotaz z textové dlaždice, která byla umístěna v jednotce D a vytvořená uživatelem A. Uživatel A sdílí dotaz s uživatelem B, který nemá přístup k jednotce D. Když se tato osoba pokusí spustit dotaz, získá DataSource.NotFound , protože ve svém prostředí není žádná jednotka D.

Snímek obrazovky s chybou zdroje dat, která soubor nenašla, protože v aktuálním prostředí není žádná jednotka D

Možná řešení: Můžete změnit cestu k textovému souboru na takovou, ke které mají přístup oba uživatelé. Jako uživatel B můžete změnit cestu k souboru tak, aby byla místní kopií stejného textového souboru.

Sloupec tabulky nebyl nalezen.

Tato chyba se obvykle aktivuje, když krok provede přímý odkaz na název sloupce, který v dotazu neexistuje.

Příklad: Máte dotaz z textového souboru, kde jeden z názvů sloupců byl Sloupec. V dotazu máte krok, který tento sloupec přejmenuje na Datum. V původním textovém souboru ale došlo ke změně a už nemá záhlaví sloupce s názvem Sloupec , protože se změnilo na Datum ručně. Power Query nemůže najít záhlaví sloupce s názvem Sloupec, takže nemůže přejmenovat žádné sloupce. Zobrazí chybu zobrazenou na následujícím obrázku.

Snímek obrazovky s chybou v zadání výrazu, kde se sloupec tabulky nenašel, protože se název sloupce změnil ručně.

Možná řešení: V tomto případě existuje několik řešení, ale všechny závisejí na tom, co chcete udělat. V tomto příkladu, protože správné záhlaví sloupce Date už pochází z textového souboru, stačí odebrat krok, který sloupec přejmenuje. Tato změna umožňuje spuštění dotazu bez této chyby.

Další běžné chyby na úrovni kroku

Při kombinování nebo slučování dat mezi více zdroji dat se může zobrazit chyba Formula.Firewall , například chyba zobrazená na následujícím obrázku.

Snímek obrazovky s chybou Firewallu pro vzorec uvádějící, že dotaz odkazuje na jiné dotazy nebo kroky, takže nemusí přímo přistupovat ke zdroji dat.

K této chybě dochází z různých důvodů, jako jsou úrovně ochrany osobních údajů mezi zdroji dat nebo způsob kombinování nebo slučování těchto zdrojů dat. Další informace o diagnostice tohoto problému najdete v firewalu ochrany osobních údajů.

Chyba na úrovni buňky

Chyba na úrovni buňky nezabrání načtení dotazu, ale zobrazí chybové hodnoty jako Chyba v buňce. Výběrem prázdného místa v buňce se pod náhledem dat zobrazí podokno chyb.

Snímek obrazovky znázorňující zobrazení chybové zprávy výběrem prázdných znaků v buňce tabulky obsahující chybu

Poznámka:

Nástroje pro profilaci dat vám můžou pomoct snadněji identifikovat chyby na úrovni buněk pomocí funkce kvality sloupce. Další informace najdete v nástrojích pro profilaci dat.

Zpracování chyb na úrovni buňky

Když narazíte na jakékoli chyby na úrovni buněk, Power Query poskytuje sadu funkcí pro jejich zpracování odebráním, nahrazením nebo udržováním chyb.

V dalších částech používají uvedené příklady stejný ukázkový dotaz jako počáteční bod. V tomto dotazu máte sloupec Prodej , který obsahuje jednu buňku s chybou způsobenou chybou převodu. Hodnota uvnitř této buňky byla NA, ale když jste tento sloupec transformovali na celé číslo, Power Query nemohl převést NA na číslo, takže zobrazí následující chybu.

Snímek obrazovky zobrazující chybu formátu dat obsahující chybu typu Nejde převést na datový typ v podokně chyb

Odstranit chyby

Pokud chcete odebrat řádky s chybami v Power Query, nejprve vyberte sloupec, který obsahuje chyby. Na kartě Domů ve skupině Zmenšit řádky vyberte Odebrat řádky. V rozevírací nabídce vyberte Odebrat chyby.

Snímek obrazovky s tlačítkem pro odstranění chyb na kartě Domů.

Výsledek této operace vám poskytne následující tabulku.

Snímek obrazovky tabulky, která dříve obsahovala pět řádků, teď obsahuje řádek, který obsahoval odstraněnou chybu, přičemž v tabulce jsou čtyři řádky.

Nahraďte chyby

Pokud místo odebrání řádků s chybami chcete nahradit chyby pevnou hodnotou, můžete to udělat i vy. Pokud chcete nahradit řádky s chybami, nejprve vyberte sloupec, který obsahuje chyby. Na kartě Transformace ve skupině Libovolný sloupec vyberte Nahradit hodnoty. V rozevírací nabídce vyberte Nahradit chyby.

Snímek obrazovky tlačítka Opravit chyby na záložce Transformace

V dialogovém okně Nahradit chyby zadejte hodnotu 10 , protože chcete nahradit všechny chyby hodnotou 10.

Snímek obrazovky dialogového okna pro nahrazení chyb s hodnotou nastavenou na 10.

Výsledek této operace vám poskytne následující tabulku.

Snímek obrazovky tabulky, ve které třetí řádek obsahoval chybu ve sloupci Sales (Prodej) má nyní chybu nahrazenou hodnotou 10.

Zachovat chyby

Power Query může sloužit jako dobrý nástroj pro auditování, který identifikuje všechny řádky s chybami, i když chyby neopravíte. V této situaci mohou být Keep errors užitečné. Pokud chcete zachovat řádky s chybami, nejprve vyberte sloupec, který obsahuje chyby. Na kartě Domů ve skupině Snížit řádky vyberte Zachovat řádky. V rozevírací nabídce zvolte Zachovat chyby.

Snímek obrazovky tlačítka

Výsledek této operace vám poskytne následující tabulku.

Snímek obrazovky s konečnou tabulkou, která uchovává pouze řádky obsahující chyby

Běžné chyby na úrovni buněk

Stejně jako u jakékoli chyby na úrovni kroku doporučujeme se podrobněji podívat na příčiny chyb, chybové zprávy a podrobnosti o chybách uvedené na úrovni buňky, abyste pochopili, co chyby způsobuje. V následujících částech najdete některé z nejčastějších chyb na úrovni buněk v Power Query.

Chyby převodu datových typů

Běžně se aktivuje při změně datového typu sloupce v tabulce. Některé hodnoty nalezené ve sloupci nelze převést na požadovaný datový typ.

Příklad: Máte dotaz, který obsahuje sloupec s názvem Prodej. Jedna buňka v daném sloupci má hodnotu NA jako hodnotu buňky, zatímco zbytek má celá čísla jako hodnoty. Rozhodnete se převést datový typ sloupce z textu na celé číslo, ale buňka s hodnotou NA způsobí chybu.

Snímek obrazovky zobrazující podrobnosti o chybě s textem

Možná řešení: Po identifikaci řádku s chybou můžete zdroj dat upravit tak, aby odrážel správnou hodnotu místo na, nebo můžete použít chybovou operaci Nahradit a zadat hodnotu pro všechny hodnoty NA , které způsobují chybu.

Chyby operací

Při pokusu o použití operace, která není podporována, například vynásobení textové hodnoty číselnou hodnotou, dojde k chybě.

Příklad: Chcete vytvořit vlastní sloupec pro dotaz vytvořením textového řetězce, který obsahuje frázi "Total Sales: " zřetězený s hodnotou ze sloupce Sales . K chybě dochází, protože operace zřetězení podporuje pouze textové sloupce, nikoli číselné.

Snímek obrazovky s chybou výrazu v podokně chyb způsobeným pokusem o použití operátoru And na text a číslo ze sloupce Sales

Možná řešení: Před vytvořením tohoto vlastního sloupce změňte datový typ sloupce Sales na text.

Snímek obrazovky tabulky se sloupcem sales převedeným z čísla na typ textu a novým sloupcem obsahujícím oba výrazy

Vnořené hodnoty zobrazené jako chyby

Při práci s daty obsahujícími vnořené strukturované hodnoty (například tabulky, seznamy nebo záznamy) se někdy může zobrazit následující chyba:

Snímek obrazovky chyby pro vnořené hodnoty způsobené činností brány firewall vzorců

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.

K těmto chybám obvykle dochází ze dvou důvodů:

  • Když brána firewall ochrany osobních údajů ukládá zdroj dat do vyrovnávací paměti, vnořené neskalární hodnoty se automaticky převedou na chyby.
  • Pokud sloupec definovaný s datovým typem Any obsahuje nekalarní hodnoty, tyto hodnoty se během načítání oznamují jako chyby (například v sešitu v Excelu nebo datovém modelu v Power BI Desktopu).

Možná řešení:

  • Odeberte sloupec, který obsahuje chybu, nebo pro tento sloupec nastavte jiný než Any datový typ.
  • Změňte úrovně ochrany osobních údajů příslušných zdrojů dat na úroveň, která umožňuje jejich kombinování bez uložení do vyrovnávací paměti.
  • Zploštěte tabulky před sloučením, abyste vyloučili sloupce obsahující vnořené strukturované hodnoty (například tabulku, záznam nebo seznam).