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.

ADDCOLUMNSGENERATEALLPRODUCTXTOPN
AVERAGEXGEOMEANXRANKXTOPNSKIP
CONCATENATEXLASTNONBLANKSAMPLEVARX.P
COUNTAXMAXXSELECTCOLUMNSVARX.S
COUNTXMEDIANXSTDEVX.PXIRR
FILTERMINXSTEDVX.SXNPV
FIRSTNONBLANKPRECENTILEX.EXCSUBSTITUTEWITHINDEX
GENERATEPRECENTILEX.INCSUMX

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.