Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Adatmodellezőként, amikor olyan DAX kifejezést ír, amely kiértékelési idő hibát okozhat, két hasznos DAX függvényt használhat.
- A ISERROR függvény, amely egyetlen kifejezést vesz igénybe, és akkor ad vissza, TRUE ha a kifejezés hibát eredményez.
- A 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 a ISERROR függvénynek a IF függvényen belül történő beágyazásának egy 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.
Ajánlások
Érdemes elkerülni a ISERROR é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 a modellbe való betöltésének biztosítása: 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 az Is Nullable tulajdonságot kikapcsoljuk a modell oszlopánál, ezáltal az adatfrissítés sikertelen lesz, ha üres értékekkel találkozik. Ha ez a hiba történik, a sikeres frissítés eredményeként betöltött adatok a táblákban maradnak.
IF A függvény használata: A IF függvény logikai tesztkifejezése meghatározhatja, hogy bekövetkezik-e hiba. Vegye figyelembe, hogy ez a függvény, a ISERROR és IFERROR függvényekhez hasonlóan, további tárolómotor-vizsgálatokat eredményezhet, de valószínűleg teljesítmény szempontjából jobban fog működni, mivel hibát nem szükséges jelezni.
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. Ilyen példa a DIVIDE függvény. A függvényre vonatkozó további útmutatásért olvassa el a DAX: DIVIDE függvény vs osztás operátor (/) cikket.
Példa
Az alábbi mértékkifejezés azt ellenőrzi, hogy hiba merülne-e fel. Ebben az esetben visszatér a BLANK (ami akkor fordul elő, ha nem ad meg értéket a IF függvény hamis-kifejezése esetén).
Profit Margin
= IF(ISERROR([Profit] / [Sales]))
A mértékkifejezés következő verzióját továbbfejlesztették azzal, hogy a IFERROR függvényt használták a IF és ISERROR függvények helyett.
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])
Kapcsolódó tartalom
- Képzési terv: DAX használata a Power BI Desktopban
- Kérdések? Próbálja meg megkérdezni a Power BI közösséget
- Javaslatok? Ötletek hozzáadása a Power BI fejlesztéséhez