Små korte – men vigtige indsigter.
Best Practice
Modelering
Oprettes en, en til mange eller mange til en relation mellem tabeller med automatisk dannede dato hierarkier bevares hierarkiet kun i den tabel der er på én siden af relationen.
Oprettes en 1:1 relation mellem to tabeller med automatisk dannede dato hierarkier, bevares hierarkiet i den tabel relationen trækkes til (den der er nederst i vinduet til relations oprettelse).
DAX
Iteratorer evaluere udtryk en linje ad gangen. DAX indeholder nedenstående iteratorer. De fleste iterator funktioner er navngivet som X-funktioner. Det er værd at bemærke at den ofte bruget funktion FILTER er en iterator samt at og beregnede kolonner virke som iterator.
ADDCOLUMNS | GENERATEALL | PRODUCTX | TOPN |
AVERAGEX | GEOMEANX | RANKX | TOPNSKIP |
CONCATENATEX | LASTNONBLANK | SAMPLE | VARX.P |
COUNTAX | MAXX | SELECTCOLUMNS | VARX.S |
COUNTX | MEDIANX | STDEVX.P | XIRR |
FILTER | MINX | STEDVX.S | XNPV |
FIRSTNONBLANK | PRECENTILEX.EXC | SUBSTITUTEWITHINDEX | |
GENERATE | PRECENTILEX.INC | SUMX |
Det er ikke god praksis at have indlejrede (nested) iteratorer.
Mål eller beregnet kolonne?
Selv om mål (measures) og beregnede kolonner på mange måder minder om hinanden, og i nogen situationer kan begge benyttes, så er der betydelige forskelle. Beregnede kolonner beregnes når data opdateres, den enkelte række er konteksten og beregnede kolonner er uafhængige af bruger handlinger i rapporterne.
Et mål virker på aggregerede data afhængig af den aktuelle kontekst defineret udfra aktuelle filtreringer. Et mål beregnes løbende og ændres af brugerens valg af filtreringer m.v. i rapporterne.
Brug beregnet kolonne når:
- Resultatet skal anvendes i et udsnitsvørktæj (slicer)
- Resultatet skal vises som dimensioner i en tabel eller et diagram.
- Resultatet skal anvendes som filterbetingelse i et DAX udtryk.
- Hvis der defineres et udtryk der er bundet dirrekte til kolonnerne f.eks. pris * mængde.
- Der skal indeles i intevaller f.eks. aldersintervaller 0-18, 19-30 osv.
Brug mål (measure) når:
- Når der skal vises en beregning der er resultat af brugerens interaktive valg.
Se også: Calculated Columns vs Measures, Calculated Columns and Measures in DAX
Power Query – if sætninger.
Fejl, også som resultat af if-sætninger, kan håndteres med “try” – “otherwise”.
If-sætninger der tester flere gange på samme værdi evalueres i den rækkefølger de står, og linjer der er fundet sande evalueres ikke igen. Det betyder fx at hvis værdier skal grupperes efter størrelse skal if-sætningerne komme i stigende rækkefølge, x>100, x>1.000, x>10.000 osv., x>1.000, x>10.000, x>100 vil give et forkert resultat.