Spracovanie chýb

Podobne ako majú IFERROR Excel a jazyk DAX funkciu, Power Query má svoju vlastnú syntax na testovanie a zachytenie chýb.

Ako je uvedené v článku o riešení chýb v doplnku Power Query, chyby sa môžu zobraziť buď na úrovni kroku, alebo v bunke. Tento článok sa zameriava na to, ako môžete chytiť a spravovať chyby na základe vlastnej špecifickej logiky.

Note

Na znázornenie tohto konceptu tento článok používa ako zdroj údajov zošit programu Excel. Predstavované koncepty sa vzťahujú na všetky hodnoty v Power Query a nielen tie, ktoré pochádzajú z excelového zošita.

Vzorovým zdrojom údajov pre túto ukážku je excelový zošit s nasledujúcou tabuľkou.

Snímka obrazovky znázorňujúca vzorové údaje z excelového zošita obsahujúce tri chyby.

Táto tabuľka z Excel zošita obsahuje v stĺpci štandardnej rýchlosti chyby v Exceli ako #NULL!, #REF! a #DIV/0!. Keď importujete túto tabuľku do editora Power Query, nasledujúci obrázok znázorňuje, ako vyzerá.

Snímka obrazovky s ukážkovou tabuľkou načítanú do Power Query.

Všimnite si, ako sa chyby z excelového zošita zobrazujú s hodnotou [Error] v jednotlivých bunkách.

V tomto článku sa dozviete, ako nahradiť chybu inou hodnotou. Okrem toho sa tiež naučíte, ako chytiť chybu a použiť ju pre svoju vlastnú špecifickú logiku.

Poskytnutie alternatívnej hodnoty pri hľadaní chýb

V tomto prípade je cieľom vytvoriť nový stĺpec Konečná sadzba v vzorkovom dátovom zdroji, ktorý využíva hodnoty zo stĺpca Štandardná sadzba . Ak sa vyskytnú chyby, použije hodnotu z príslušného stĺpca Špeciálna sadzba .

Ak chcete vytvoriť nový vlastný stĺpec, choďte do ponuky Pridať stĺpec a vyberte Vlastný stĺpec. V okne Vlastný stĺpec zadajte vzorec try [Standard Rate] otherwise [Special Rate]. Nazvite tento nový stĺpec Konečná sadzba.

Snímka obrazovky s otvoreným dialógovým oknom Vlastný stĺpec a skúsiť inak zadaný vzorec vo vlastnom stĺpci.

Tento vzorec sa snaží vyhodnotiť stĺpec Štandardná rýchlosť a v prípade nájdenia chýb vyprodukuje jeho hodnotu. Ak sa v stĺpci Štandardná sadzba nájdu chyby, výstup je hodnota definovaná po vyhlásení otherwise , čo je v tomto prípade stĺpec Špeciálna sadzba .

Po pridaní správnych typov údajov do všetkých stĺpcov v tabuľke, nasledujúci obrázok znázorňuje, ako vyzerá finálna tabuľka.

Snímka obrazovky tabuľky so štandardnými chybami sadzby nahradenými špeciálnou sadzbou v stĺpci Final Rate (Konečná sadzba).

Note

Ako alternatívny prístup môžete zadať aj vzorec try [Standard Rate] catch ()=> [Special Rate], ktorý je ekvivalentom predchádzajúceho vzorcu, ale pomocou kľúčového slova catch (úlovok) s funkciou, ktorá nevyžaduje žiadne parametre.

Kľúčové catch slovo bolo predstavené v doplnku Power Query v máji 2022.

Zadanie vlastnej logiky podmienenej chyby

Použitím rovnakého vzorkového dátového zdroja ako v predchádzajúcej sekcii je novým cieľom vytvoriť nový stĺpec pre konečnú sadzbu. Ak existuje hodnota zo štandardnej sadzby , použije sa táto hodnota. Inak sa používa hodnota zo stĺpca Špeciálna sadzba , okrem riadkov s nejakou #REF! chybou.

Note

Výhradný účel vylúčenia #REF! chyby je na účely demonštrácie. Vďaka konceptom uvedeným v tomto článku môžete do záznamu chýb zacieliť všetky polia podľa svojho výberu.

Keď vedľa chybovej hodnoty vyberiete ľubovoľný prázdny znak, zobrazí sa tabla s podrobnosťami v dolnej časti obrazovky. Tabla podrobností obsahuje dôvod DataFormat.Errorchyby aj chybové hlásenie: Invalid cell value '#REF!'

Snímka obrazovky vybratej chyby s chybovým hlásením v dolnej časti dialógového okna.

Naraz môžete vybrať len jednu bunku, takže môžete efektívne preskúmať iba komponenty chyby jednej chybovej hodnoty. Práve v tomto bode vytvoríte nový vlastný stĺpec a použijete try výraz.

Použitie try s vlastnou logikou

Ak chcete vytvoriť nový vlastný stĺpec, choďte do ponuky Pridať stĺpec a vyberte Vlastný stĺpec. V okne Vlastný stĺpec zadajte vzorec try [Standard Rate]. Pomenujte tento nový stĺpec Všetky chyby.

Snímka obrazovky s otvoreným dialógovým oknom Vlastný stĺpec a zadaním vzorca vyskúšať vo vlastnom stĺpci.

Výraz try konvertuje hodnoty a chyby na hodnotu záznamu, ktorá označuje, či try sa s výrazom zaobchádzalo alebo nie, a na správnu hodnotu alebo záznam chyby.

Snímka obrazovky tabuľky s pridaným stĺpcom Všetky chyby a chybami zobrazenými ako Záznamy.

Tento novovytvorený stĺpec môžete rozbaliť pomocou hodnôt záznamu a pozrieť sa na dostupné polia, ktoré sa majú rozbaliť, výberom ikony vedľa hlavičky stĺpca.

Snímka obrazovky stĺpca Všetky chyby s ikonou rozbalenia zvýraznenou a vybratými poľami HasError, Value a Error.

Táto operácia sprístupňuje tri nové polia:

  • All Errors.HasError—ukazuje, či hodnota zo stĺpca Standard Rate obsahovala chybu alebo nie.
  • All Errors.Value – ak hodnota zo stĺpca Standard Rate neobsahovala chybu, tento stĺpec zobrazuje hodnotu zo stĺpca Standard Rate . Pre hodnoty s chybami toto pole nie je k dispozícii a počas operácie rozbalenia má null tento stĺpec hodnoty.
  • All Errors.Error—ak hodnota zo stĺpca Standard Rate obsahovala chybu, tento stĺpec zobrazuje záznam chyby pre hodnotu zo stĺpca Standard Rate . Pre hodnoty bez chýb nie je toto pole k dispozícii a počas operácie rozbalenia má null tento stĺpec hodnoty.

Snímka obrazovky tabuľky s novými poľami v stĺpcoch s vybratou hodnotou All.Errors.Error a zobrazením chybových hlásení pod tabuľkou.

Pre ďalšie skúmanie môžete rozšíriť stĺpec Všetky chyby.Chyba a získať tri komponenty záznamu chýb:

  • Dôvod chyby
  • Chybové hlásenie
  • Detail chyby

Po vykonaní operácie rozbalenia pole Všetky chyby.Chyba.Správa zobrazí konkrétnu chybovú správu, ktorá presne hovorí, akú chybu v Exceli má každá bunka. Chybová správa je odvodená z poľa Chybová správa v chybovom zázname.

Snímka obrazovky so zobrazenými konkrétnymi chybovými správami.

Teraz s každou chybovou správou v novom stĺpci môžete vytvoriť nový podmienený stĺpec s názvom Konečná rýchlosť a nasledujúcimi klauzulami:

  • Ak je hodnota v stĺpci Všetky chyby.Chyba.Správa rovná null, potom výstupom je hodnota zo stĺpca Štandardná rýchlosť .
  • Inak, ak hodnota v stĺpci All Errors.Error.Message nezodpovedá Invalid cell value '#REF!'., výstup je hodnota zo stĺpca Special Rate .
  • Inak null.

Snímka obrazovky dialógového okna Pridať podmienený stĺpec so všetkými podmienkami chyby nastavenými pre nový stĺpec.

Po zachovaní iba stĺpcov Účet, Štandardná sadzba, Špeciálna sadzba a Konečná sadzba a pridaní správneho dátového typu pre každý stĺpec, nasledujúci obrázok ukazuje, ako vyzerá finálna tabuľka.

Snímka obrazovky konečnej tabuľky so zostávajúcimi stĺpcami so správnymi typmi údajov.

Použitie try vlastnej logiky a catch s vlastnou logikou

Prípadne môžete vytvoriť nový vlastný stĺpec aj pomocou try kľúčových slov a catch .

try [Standard Rate] catch (r)=> if r[Message] <> "Invalid cell value '#REF!'." then [Special Rate] else null

Snímka obrazovky dialógového okna vlastného stĺpca s novým vzorcom zobrazujúca syntax vyskúšania a zachytenia.