Curabis

DAX (1. del – operatorer)

Hvad kan DAX?

Du kender sikkert en projektmappe i Excel. Med Excel kan du også bygge videre på dine data i dit regneark. Men hvis du skal analysere data på tværs af en kompleks datamodel, hvor informationerne kommer fra flere forskellige tabeller, som oven i købet har relationer til hinanden, så kommer Excel til kort.

 

Her kommer DAX ind i billedet. DAX-funktionerne er netop målrettet til at understøtte denne form for analyse. Men for at kunne arbejde med DAX, skal vi se lidt nærmere på syntaksen i DAX. 

Jeg tager udgangspunkt i en enkel datamodel, hvor jeg har to kolonner for hhv. Kostbeløb og Salgsbeløb. Jeg vil gerne tilføje en ny kolonne, hvor jeg beregner mit Dækningsbidrag.

 

Formlen skal udføres således: 

DB = [Salgsbeløb] - [Kostbeløb]

DB beskriver den nye kolonnes navn
= starter selve DAX funktionen
[Salgsbeløb] relaterer til kolonnen Salgsbeløb i tabellen - er den matematiske operator for en subtraktion
[Kostbeløb] relaterer til kolonnen Kostbeløb i tabellen

DAX Operator

Vi har nu tilføjet en ny række til en datamodel, som beregnes på baggrund fra to andre felter i datamodellen. Andre aritmetiske operatorer i DAX er

   + (addere)

   * (multiplicere)

   / (dividere) samt

  ^ (eksponentialfunktion).


En anden type operatorer kan anvendes til sammenligning. Her anvendes følgende tegn:

  = (lige med) – anvendes fx til filtrering af en bestemt Region som: Region=”Fyn”

  > (større end) – anvendes ofte i forbindelse med datofiltrering: Salgsdato > 31-12-2017

  < (mindre end) – anvendes fx i forbindelse med Dækningsbidragsanalyser: DB < 20%

  >= (større eller lige med) – fx Beløb >=1000 <= (mindre eller lige med) – fx Beløb <= 1000

  <> (forskellig fra) – fx Sælger <> ”Knud”

 

Derudover findes logiske operatorer. Disse operatorer kombinerer ofte flere betingelser til et enkelt udtryk:

   && (og) bygger en fast betingelse mellem to, eller flere udtryk, hvor det enkelte udtryk returnerer et boolsk (ja/nej) resultat. Fx ([Region]=”Fyn”) && ([Kundetype]=”A+”) – vil returnere et ja for alle kunder, som er lokaliseret på Fyn og segmenteret som A+ i kundetype.

  || (eller) bygger en fast betingelse mellem to eller flere udtryk, hvor de enkelte udtryk returnerer et boolsk resultat. Fx ([Køn]=”Mand”)||([Alder]>60) vil returnere ja til alle rækker i tabellen, som enten er Mand, eller over 60.

   IN (eller) bygger en logisk ”eller” betingelse, hvor der kan sammenlignes mod et felt i tabellen.
Fx [Kundetype] IN {”A+”,”A”,”B”} – Læg mærk til at den opbyggede tabel, som sammenlignes imod skal placeres i tuborgparenteser (krøllede klammer)

Man kan også anvende en operator til sammenkædning af tekster. Dette sammenkædning kan fx anvendes hvis for og efternavn er adskilt i datamodellen, men skal repræsenteres i et sammenkædet felt.

& (ampersand) sammenkæder to tekstkolonner til et. Fx [Fornavn] & ” ” & [Efternavn] vil returnere de to felter sammensat og adskilt via det mellemrum i midten.

Drop en besked