error-funktioiden asianmukainen käyttö
Kun kirjoitat tietomallintajana DAX lauseketta, joka saattaa aiheuttaa arvioinnintimeerror, voit harkita kahden hyödyllisen DAX funktion käyttämistä.
- ISERROR-funktio palauttaa yksittäisen lausekkeen and palauttaa TRUEif lausekkeen tuloksena on error.
- IFERROR-funktiota käytetään kahdessa lausekkeessa. Jos first -lausekkeen tulos on error, second-lausekkeen value palautetaan. Se on fact optimoidumpaa toteutusta ISERROR-funktion upotuksena IF-funktioon.
Vaikka näistä funktioista voi olla hyötyä and ne voivat auttaa kirjoittamaan helposti ymmärrettäviä lausekkeita, ne voivat myös heikentää laskutoimitusten suoritustehoa merkittävästi. Näin voi käydä, koska nämä funktiot lisäävät tarvittavien säilömoduulitarkistusten määrää.
Useimmat arviointi-time virheet johtuvat odottamattomista tyhjistä arvoista, or nolla values, or virheellinen tietotyyppimuunnos.
Suosituksia
On parempi välttää ISERRORandIFERROR funktioiden käyttämistä. Käytä sen sijaan puolustusstrategioita kehittäessäsi mallia and lausekkeiden kirjoittamista. Strategioita voivat olla esimerkiksi seuraavat:
Varmista, että malliin ladatut tiedot ovat korkealaatuisia: Määritä oikeat tietotyypit orsubstitute virheelliset or puuttuvat valuesandPower kyselyjen avulla. Power kyselymuunnosta voidaan käyttää myös rivien filter, kun virheitä ilmenee, kuten virheellinen tietojen muuntaminen.
Tietojen laatua voidaan myös hallita asettamalla mallisarakkeen Is Nullable -ominaisuuden arvoksi Off, jolloin tietojen päivittäminen epäonnistuu, jos siinä on tyhjiä kohtia. If tämä virhe ilmenee, onnistuneen päivityksen tuloksena ladatut tiedot säilyvät taulukoissa.
IF-funktion käyttäminen:IF funktion loogisen testin lausekkeella voidaan selvittää, esiintyykö error tulos. Huomaa, että ISERRORandIFERROR tavoin tämä funktio voi aiheuttaa lisää säilömoduulitarkistuksia, mutta se todennäköisesti toimii niitä paremmin, koska error ei tarvitse korottaa.
käyttämällä error-suvaitsevaisia funktioita: Jotkin DAX funktiot testaavat and kompensoivat error ehtoja. Näiden funktioiden avulla voit antaa vaihtoehtoisen tuloksen, joka palautetaan sen sijaan. DIVIDE on yksi tällainen esimerkki. Lisäohjeita tästä funktiosta on artikkelissa DAX: DIVIDE funktio ja divide operaattori (/).
Esimerkki
Seuraava measure-lauseke testaa, annetaanko error. Se palauttaa tässä esiintymässä BLANK (kuten silloin, kun not annat IF-funktiolle value–if–false -lausekkeen).
Profit Margin
= IF(ISERROR([Profit] / [Sales]))
Tätä measure-lausekkeen next versiota on parannettu käyttämällä IFERROR-funktiota IFandISERROR-funktioiden sijasta.
Profit Margin
= IFERROR([Profit] / [Sales], BLANK())
tämä measure-lausekkeen lopullinen versio saavuttaa saman tuloksen, mutta tehokkaammin and tyylikkäämmin.
Profit Margin
= DIVIDE([Profit], [Sales])
sisällön Related
- Learning path: Use DAX in Power BI Desktop
- Kysymyksiä? Voit esittää kysymyksiä Power BI -yhteisön
- Ehdotuksia? Kerro ideoita Power BI - parantamiseksi