Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Někdy se setkáte v Editoru Power Query s chybami (já osobně hodně často), jaké jsou, jak chyby najít, ošetřit, příapdně moje časté chyby, se kterými se setkávám. Tohle je předmětem tohoto článku.
Tento článek je rozdělen na kapitoly pro možnost vylepšování a doplňování informací:
V M-ku se mohou vyskytnout (z mého pohledu) dvě kategorie chyb:
Dotaz se vám bohužel nenačte a v Editoru Power Query se zobrazí hlášení o chybě, např.:
Dotaz se načte, ale zobrazí se upozornění, že se načetl s daným počtem chyb, a v Excel vám poskytne hypertextový odkaz, abyste viděli, jaké chyby se při načítání vyskytly. Klik vám (přenese vás do Editoru Power Query) je zobrazí.
V Power BI při aktualizaci (nebo po "uzavření Editoru Power Query).
Záleží o jakou chybu jde:
Pokud se jedná o chybu v kroku, je potřeba najít krok, který chybu obsahuje. Pokud jste v Editoru Power Query a chyba není na poslendím kroku, stačí klik na ikonu Přejít na chybu.
Jste přeneseni na krok, kde se chyba nachází, můžete opravit tak, že:
Pokud je chyba v hodnotě, v Excelu uvidíte možnost odskoku na seznam chyb. Nebo-li vsoupíte do Editoru Power Query, který vám vrátí řádky, které obsahují chybu.
Klikem na počet chyb ... se spustí Editor Power Query a v novém dotazu se objeví tabulka, které obsahuje chyby. Neboli řádky, které obsahují chyby.
Pokud je budete chtít odstranit, musíte se vrátit do tabulky ze které se chyby vyextrahovali. Tj. u ukázky Dotaz (Tabulka) Prodeje a z menu Domů - Odebrat řádky - Odebrat chyby. Případně projít předchozí kroky, zda neobsahují třeba chybu v nastavení typu atd.
Poznámka: V ukázce všechny řádky obsahují chybu. ;)
Podobně v Power BI, se proklikem dostanete do Editoru Power BI a chyby máte v samostatné složce.
Seznam chyb, které se mohou objevit v kroku:
Seznam chyb, který postupně rozšířím a dolním:
Pokud dojde k přesunutí souboru, který zpracováváte, dojde k chybě zdroje dat (Excel, Power BI danný soubor nenajde, má chybnou cestu k souboru).
V ukázce jste načítá-li ze sešitu tabulku jako tabulka které se jmenovala Tabulka2, bohužel byla přejmenována na Tabulka1. Pokud v kódu:
= Excel.CurrentWorkbook(){[Name="Tabulka2"]}[Content]
Na:
= Excel.CurrentWorkbook(){[Name="Tabulka1"]}[Content]
A budete mít opraveno.
Pokud upravujete/kopírujete kód, může nastat, že zapomenete na jeden znak (uvozovky u názvu, čárka za krokem, dvojtečka, dvě tečky u rozsahu, hranaté závodky, složené závorky), atd. Opět můžete obdržet chybu v kroku. Například chybný kód:
= Table.AddColumn(#"Změněný typ", "Vlastní, each [ID] & [Jméno])
Opravite-li na (bude fungovat), neboli Dodáte za "Vlastní uvozovky:
= Table.AddColumn(#"Změněný typ", "Vlastní", each [ID] & [Jméno])
Pokud jste v postupu odstraníte krok, může nastat problém. Máte-li tabulku, kde jste nejprve sloučily sloupce a sloučený sloupec přejmenovali/odstranili, nádledně pokud krok "Odebrat sloupce" odstraníte. Vše je vpořádku (odebírate poslední krok).
Odstranite-li ale místo posledního kroku, krok předposlední tj. Sloučené sloupce. Obdržíte chybu, protože poslední krok, odstaňuje sloučený sloupec, který už v použitém postupu není, takže poslední krok nemůže navázat (nemůže odstranit neexistující sloupec) a vznikne chyba.
Ano můžete ošetřit, ale to si nechám na samostatný článek.
MissingField.Ignore
Pokud tvoříte kód ručně, může dojít k duplicitnímu názvu. Například krok Dělení2 již jednou v použitém postupa máte.
Kdy se může v hodnotě objevit chyba:
Chyby obsahuje již zdroj dat. V Editoru Power Query odstraníte/nahradíte chybové řádky/hodnoty, nebo upozorníte autora (nebo sami) zdrojové tabulky, ať chybné údaje opraví.
Využít změnu typu, můžete k ošetření chyb (slučování, sčítání), nebo i vytvoření chyby.
Ošetření. Mějte sloupec, který obsahuje čísla a čísla formátované jako text. Pokud k číslům přičtete hodnotu u sloupce čísel formotavaných jako text obdržíte chybovou hodnotu. Pokud ale nejprve sloupci čísel formátovanýách jako text přiřadíte typ číslo, čísla v textovém formátu se převedou na "skutečná" čísla a následně můžete provést výpočet již bez problému.
Pokud jsou chybně zadány hodnoty, nebo jsou nevhodného typu, může být výsledkem chyba:
Pokud slučujete sloupec definovaný (typ) číslo a text obdržíte ve sloupci chybové hodnoty.
= Table.AddColumn(#"Změněný typ1", "Vlastní", each [Jméno]&[ID])
Stejný případ pokud k textu přičítá konstantu (Sloupec ID je typu text!):
= Table.AddColumn(#"Změněný typ", "Součet", each [ID]+1)
Potřebujete-li v M-ku dělit, může nastat případ, kdy dojde k dělení nulou. Z Excel víte, že dojde k vracení chybové hodnoty, v Editoru Power Query se vrací hodnota Infinity (nekonečno) případně -Infinity (mínus nekonečno).
= Table.AddColumn(#"Přeuspořádané sloupce", "dělení", each 500/[číslo])
Stejného výsledku dosáhnete pokud použijete funkci Value.Divide:
= Table.AddColumn(#"Přidané: Vlastní", "Dělení 2", each Value.Divide(500,[číslo]))
V dalších článcích se podíváme nejen jak ošetřit dělení nulou. Například:
Dělení = Table.AddColumn(#"Přidané: Vlastní2", "Vlastní.1", each if [dělení] = Number.PositiveInfinity then "dělení nulou" else [dělení] )
// NegativeInfinity
Související články o M-kódu:
Narazili jste na nějaké problémy, nesrovnalost? Máte tip na vylepšení nebo doplnění článku, můžete zmínit v komentářích (nebo na sociálních sí tích).
Článek byl aktualizován: 22.01.2022 08:51
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Můžete být prvními co zanechají smysluplný komentář.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2025 |