Passende brug af fejlfunktioner
Som dataudformer kan du overveje at bruge to nyttige DAX-funktioner, når du skriver et DAX-udtryk, som muligvis udløser en fejl af typen evalueringstid.
- Funktionen ER.FEJL, som kræver et enkelt udtryk og returnerer SAND, hvis det pågældende udtryk resulterer i en fejl.
- Funktionen HVIS.FEJL, som kræver to udtryk. Hvis det første udtryk resulterer i en fejl, returneres værdien for det andet udtryk. Det er faktisk en mere optimeret implementering af indlejring af funktionen ER.FEJL inde i en HVIS-funktion.
Men selvom disse funktioner kan være nyttige og kan bidrage til at skrive udtryk, der er nemme at forstå, kan de også degradere ydeevnen af beregninger markant. Dette kan ske, fordi disse funktioner øger antallet af påkrævede scanninger af lagringsprogrammet.
De fleste fejl af typen evalueringstid skyldes uventede TOMME VÆRDIER eller nulværdier eller ugyldig konvertering af datatypen.
Anbefalinger
Det er bedre at undgå at bruge funktionerne ER.FEJL og HVIS.FEJL. Anvend i stedet defensive strategier, når du udvikler modellen og skriver udtryk. Strategierne kan omfatte:
Sørg for, at kvalitetsdata indlæses i modellen: Brug Power Query-transformationer til at fjerne eller erstatte ugyldige eller manglende værdier og til at angive korrekte datatyper. En Power Query-transformation kan også bruges til at filtrere rækker, når der opstår fejl, f.eks. ugyldig datakonvertering.
Datakvaliteten kan også styres ved at angive egenskaben Kan være nul for kolonnen i modellen til Fra, hvorved dataopdateringen mislykkes, hvis der opleves TOMME VÆRDIER. Hvis denne fejl opstår, forbliver de data, der indlæses som følge af en vellykket opdatering, i tabellerne.
Brug af HVIS-funktionen: Det logiske testudtryk med HVIS-funktionen kan afgøre, om der opstår et fejlresultat. Bemærk! Ligesom funktionerne ER.FEJL og HVIS.FEJL kan denne funktion resultere i yderligere scanninger af lagringsprogrammet, men den vil sandsynligvis have en bedre ydeevne end dem, da der ikke skal udløses nogen fejl.
Brug af fejltolerante funktioner: Nogle DAX-funktioner tester og kompenserer for fejltilstande. Disse funktioner gør det muligt for dig at angive et alternativt resultat, som bliver returneret i stedet. Funktionen DIVIDER er præcist sådan et eksempel. Hvis du har brug for yderligere vejledning om denne funktion, kan du læse artiklen DAX: DIVIDER-funktion vs. divisionsoperator (/).
Eksempel
Følgende målingsudtryk tester, om der skal udløses en fejl. Den returnerer TOMME VÆRDIER i denne forekomst (hvilket er tilfældet, når du ikke angiver funktionen HVIS med et udtryk af typen værdi-hvis-falsk).
Profit Margin
= IF(ISERROR([Profit] / [Sales]))
Denne næste version af målingsudtrykket er blevet forbedret ved hjælp af funktionen HVIS.FEJL i stedet for funktionerne HVIS og ER.FEJL.
Profit Margin
= IFERROR([Profit] / [Sales], BLANK())
Denne endelige version af målingsudtrykket opnår samme resultat, men på en mere effektiv og elegant måde.
Profit Margin
= DIVIDE([Profit], [Sales])
Se også
- Læringsforløb: Brug DAX i Power BI Desktop
- Har du spørgsmål? Prøv at spørge Power BI-community'et
- Forslag? Få ideer til at forbedre Power BI