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.

Poznámka

Na znázornenie tohto konceptu bude tento článok používať ako zdroj údajov excelový zošit. 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.

Vzorové údaje z Excelu.

Táto tabuľka z excelového zošita obsahuje excelové chyby, ako napríklad #NULL!, #REF!, a #DIV/0! v stĺpci Standard Rate (Štandardná rýchlosť ). Keď importujete túto tabuľku do editora Power Query, nasledujúci obrázok znázorňuje, ako bude vyzerať.

Ukážková tabuľka v doplnku 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 dozviete aj to, ako chytiť chybu a použiť ju pre vlastnú špecifickú logiku.

V tomto prípade je cieľom vytvoriť nový stĺpec Final Rate (Konečná sadzba ), ktorý bude používať hodnoty zo stĺpca Standard Rate (Štandardná sadzba ). Ak sú nejaké chyby, použije sa hodnota zo stĺpca korešpondenta Special Rate (Špeciálna sadzba).

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

V tomto prípade je cieľom vytvoriť nový stĺpec Final Rate (Konečná sadzba) vo vzorovom zdroji údajov, ktorý bude používať hodnoty zo stĺpca Standard Rate (Štandardná sadzba ). Ak sa vyskytnú chyby, použije sa hodnota z príslušného stĺpca Special Rate (Špeciálna sadzba ).

Ak chcete vytvoriť nový vlastný stĺpec, prejdite do ponuky Pridať stĺpec a vyberte položku Vlastný stĺpec. V okne Vlastný stĺpec zadajte vzorec try [Standard Rate] otherwise [Special Rate]. Pomenujte tento nový stĺpec Final Rate (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.

Vzorec uvedený vyššie sa pokúsi vyhodnotiť stĺpec Standard Rate (Štandardná sadzba) a vyhodnotí jeho hodnotu, ak sa nenájdu žiadne chyby. Ak sa v stĺpci Standard Rate (Štandardná sadzba ) nájdu chyby, výstupom bude hodnota definovaná po otherwise príkaze, čo je v tomto prípade stĺpec Special Rate (Špeciálna sadzba ).

Nasledujúci obrázok zobrazuje, ako vyzerá finálna tabuľka po pridaní správnych typov údajov do všetkých stĺpcov v tabuľke.

Finálnu tabuľku skúste inak.

Poznámka

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žitie rovnakého vzorového zdroja údajov ako je predchádzajúca časť, novým cieľom je vytvoriť nový stĺpec pre Final Rate (Konečná sadzba). Ak hodnota štandardnej sadzby existuje, použije sa táto hodnota. V opačnom prípade sa použije hodnota zo stĺpca Special Rate (Špeciálna sadzba ), okrem riadkov s ľubovoľnou #REF! chybou.

Poznámka

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ď vyberiete prázdny znak vedľa chybovej hodnoty, 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 s vybratou chybou a chybovým hlásením v dolnej časti dialógového okna.

Naraz môžete vybrať len jednu bunku, takže sa vám naraz zobrazia iba komponenty chyby jednej chybovej hodnoty. Tu 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, prejdite do ponuky Pridať stĺpec a vyberte položku Vlastný stĺpec. V okne Vlastný stĺpec zadajte vzorec try [Standard Rate]. Dajte tomuto novému stĺpcu názov Všetky chyby.

Snímka obrazovky s otvoreným dialógovým oknom Vlastný stĺpec a zadaním vzorca vyskúšať do vlastného stĺpca.

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

Vyskúšajte hodnoty záznamu.

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ístupní tri nové polia:

  • All Errors.HasError – zobrazuje, či hodnota zo stĺpca Standard Rate (Štandardná rýchlosť ) vyskytla chybu alebo nie.
  • Všetky chyby.Hodnota – ak hodnota zo stĺpca Standard Rate (Štandardná sadzba ) nebola chybná, v tomto stĺpci sa zobrazí hodnota zo stĺpca Standard Rate (Štandardná sadzba ). Pre hodnoty s chybami toto pole nebude k dispozícii a počas operácie rozbalenia bude mať null tento stĺpec hodnoty.
  • All Errors.Error – ak hodnota zo stĺpca Standard Rate (Štandardná sadzba ) mala chybu, v tomto stĺpci sa zobrazí záznam chyby pre hodnotu stĺpca Standard Rate (Štandardná sadzba ). Pre hodnoty bez chýb toto pole nebude k dispozícii a počas operácie rozbalenia bude mať 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í v dolnej časti tabuľky.

Na ďalšie skúmanie môžete rozbaliť stĺpec All Errors.Error a získať tri súčasti záznamu chyby:

  • Dôvod chyby
  • Chybové hlásenie
  • Podrobnosti o chybe

Po vykonaní operácie rozbalenia sa v poli All Errors.Error.Message zobrazí konkrétne chybové hlásenie, ktoré vám povie, aká chyba v Exceli sa vyskytla v každej bunke. Chybové hlásenie je odvodené od poľa Chybové hlásenie záznamu chyby.

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

Teraz, keď sa v novom stĺpci zobrazí každé chybové hlásenie, môžete vytvoriť nový podmienený stĺpec s názvom Final Rate (Konečná sadzba ) a nasledujúcimi klauzulami:

  • Ak sa hodnota v stĺpci All Errors.Errors.Message rovná null, výstupom bude hodnota zo stĺpca Standard Rate (Štandardná sadzba ).
  • Inak, ak sa hodnota v stĺpci All Errors.Errors.Message nerovná Invalid cell value '#REF!'., výstupom bude hodnota zo stĺpca Špeciálna sadzba .
  • Inak, hodnota 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 Account (Konto), Standard Rate (Štandardná sadzba), Special Rate (Špeciálna sadzba) a Final Rate (Konečná sadzba) a pridaní správneho typu údajov pre každý stĺpec, nasledujúci obrázok znázorňuje, ako vyzerá finálna tabuľka.

Konečná tabuľka s 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

Dialógové okno Vlastný stĺpec s novým vzorcom zobrazujúce syntax

Ďalšie zdroje