Ř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 kroku
Chyba na úrovni kroku brání načtení dotazu a zobrazení komponent chyb ve žlutém podokně.
- Důvod chyby: První oddíl před dvojtečku. V příkladu výše je důvodem chyby Expression.Error.
- Chybová zpráva: Oddíl přímo za důvodem. V předchozím příkladu se chybová zpráva označuje, že sloupec Sloupec tabulky nebyl nalezen.
- Podrobnosti o chybě: Oddíl přímo za řetězcem Details: V předchozím příkladu je podrobnosti o chybě 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 Přejít na chybu a zobrazit první krok, ve kterém došlo k chybě.
Zdroj nejde najít – DataSource.Error
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, zobrazí se mu DataSource.Error , protože ve svém prostředí není žádná jednotka D.
Možná řešení: Cestu k souboru textového souboru můžete změnit na cestu, 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. Pokud je tlačítko Upravit nastavení dostupné v podokně chyb, můžete ho vybrat a změnit cestu k 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.
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. Tím umožníte 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.
Příčinou této chyby může být celá řada důvodů, například úrovně ochrany osobních údajů dat mezi zdroji dat nebo způsob, jakým se tyto zdroje dat kombinují nebo slučují. Další informace o diagnostice tohoto problému najdete v bráně firewall ochrany osobních údajů dat.
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.
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: Nástroje pro profilaci dat
Zpracování chyb na úrovni buňky
Při výskytu chyb na úrovni buněk poskytuje Power Query sadu funkcí pro jejich zpracování odebráním, nahrazením nebo zachováním chyb.
V dalších částech budou uvedené příklady používat 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.
Odebrání chyb
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.
Výsledek této operace vám poskytne tabulku, kterou hledáte.
Chyby nahrazení
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.
V dialogovém okně Nahradit chyby zadejte hodnotu 10 , protože chcete nahradit všechny chyby hodnotou 10.
Výsledek této operace vám poskytne tabulku, kterou hledáte.
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. To je místo, kde můžou být užitečné chyby Keep. 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 vyberte Zachovat chyby.
Výsledek této operace vám poskytne tabulku, kterou hledáte.
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ého typu
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.
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é.
Možná řešení: Před vytvořením tohoto vlastního sloupce změňte datový typ sloupce Sales na text.
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:
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ů v datech ukládají zdroj dat do vyrovnávací paměti, vnořené hodnoty, které nejsou skalární, se automaticky převedou na chyby.
- Pokud sloupec definovaný s datovým typem
Any
obsahuje jiné než skalární hodnoty, budou tyto hodnoty během načítání hlášeny 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ý
Any
než 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).