A hibakezelő függvények megfelelő használata

Adatmodellezőként, amikor olyan DAX-kifejezést ír, amely kiértékelési idő hibát okozhat, érdemes lehet két hasznos DAX-függvényt használni.

  • Az I Standard kiadás RROR függvény, amely egyetlen kifejezést vesz igénybe, és IGAZ értéket ad vissza, ha a kifejezés hibát eredményez.
  • Az IFERROR függvény, amely két kifejezést vesz igénybe. Ha az első kifejezés hibát eredményez, a második kifejezés értéke lesz visszaadva. Valójában az I Standard kiadás RROR függvény HA függvénybe való beágyazásának optimalizáltabb implementációja.

Bár ezek a függvények hasznosak lehetnek, és hozzájárulhatnak a könnyen érthető kifejezések írásához, jelentősen csökkenthetik a számítások teljesítményét. Ez azért fordulhat elő, mert ezek a függvények növelik a szükséges tárolómotor-vizsgálatok számát.

A kiértékelési idő legtöbb hibáját váratlan BLANK-ok, nulla értékek vagy érvénytelen adattípus-átalakítás okozza.

Javaslatok

Érdemes elkerülni az I Standard kiadás RROR és IFERROR függvények használatát. Ehelyett alkalmazzon védekező stratégiákat a modell fejlesztésekor és a kifejezések írásakor. A stratégiák a következők lehetnek:

  • A minőségi adatok betöltésének biztosítása a modellbe: A Power Query-átalakításokkal eltávolíthatja vagy helyettesítheti az érvénytelen vagy hiányzó értékeket, és beállíthatja a megfelelő adattípusokat. A Power Query-átalakítással sorokat is szűrhet, ha hibák lépnek fel, például érvénytelen adatkonvertálás.

    Az adatminőség úgy is szabályozható, hogy a Modell oszlop Null értékű tulajdonsága Ki értékre van állítva, ami sikertelen lesz az adatfrissítés során, ha BLANK-ok lépnek fel. Ha ez a hiba történik, a sikeres frissítés eredményeként betöltött adatok a táblákban maradnak.

  • A HA függvény használata: A HA függvény logikai tesztkifejezése meg tudja állapítani, hogy hiba következne-e be. Vegye figyelembe, hogy az I Standard kiadás RROR és AZ IFERROR függvényekhez hasonlóan ez a függvény további tárolómotor-vizsgálatokat is eredményezhet, de valószínűleg jobb teljesítményt nyújt, mivel nem kell hibát okozni.

  • Hibatűrő függvények használata: Egyes DAX-függvények tesztelik és kompenzálják a hibafeltételeket. Ezek a függvények lehetővé teszik egy alternatív eredmény megadását, amelyet a rendszer ehelyett visszaad. A DIVIDE függvény egy ilyen példa. A függvényről további útmutatást a DAX: DIVIDE függvény és az osztás operátor (/) című cikkben talál.

Példa

Az alábbi mértékkifejezés azt ellenőrzi, hogy hiba merülne-e fel. Ebben a példában ÜRES értéket ad vissza (ez akkor fordul elő, ha nem adja meg a HA függvényt egy érték-ha-hamis kifejezéssel).

Profit Margin
= IF(ISERROR([Profit] / [Sales]))

A mértékkifejezés következő verziója a HA és az I Standard kiadás RROR függvény helyett az IFERROR függvény használatával lett továbbfejlesztve.

Profit Margin
= IFERROR([Profit] / [Sales], BLANK())

A mértékkifejezés ezen végső verziója azonban ugyanazt az eredményt éri el, még hatékonyabban és elegánsabban.

Profit Margin
= DIVIDE([Profit], [Sales])