Blir DAX-modellen din i Power BI eller Microsoft Fabric stadig mer kompleks? Kanskje du ender opp med å lage nesten identiske mål for ulike tidsperioder (som fjoråret, hittil i år) eller for ulike valutaer? Da er Calculation Groups en funksjon du absolutt bør kjenne til!

Hos TrendMe ser vi ofte at Calculation Groups kan revolusjonere hvordan bedrifter bygger og vedlikeholder sine datamodeller. I dette innlegget forklarer vi hva de er, hvorfor de er så kraftfulle, og hvordan du kommer i gang.

Calculation Groups i Power BI Model View som viser Time Intelligence
Calculation Groups lar deg organisere og gjenbruke beregningslogikk.

Problemet Calculation Groups Løser: "Mål-eksplosjonen"

Etter hvert som en datamodell vokser, oppstår ofte behovet for å se de samme grunnleggende målene (f.eks. Salg, Kostnad, Antall) på forskjellige måter:

  • Sammenlignet med forrige år (Year-over-Year, YOY)
  • Akkumulert hittil i år (Year-to-Date, YTD)
  • Konvertert til en annen valuta
  • Justert for inflasjon
  • ...og så videre.

Den tradisjonelle måten å løse dette på er å lage separate mål for hver eneste kombinasjon: Salg YOY, Salg YTD, Kostnad YOY, Kostnad YTD, Antall YOY, Antall YTD, osv. Dette fører raskt til:

  • Enorme mengder mål: Modellen blir uoversiktlig og vanskelig å navigere i.
  • Repetitiv DAX-kode: Samme logikk (f.eks. YOY-beregningen) kopieres og limes inn i mange mål.
  • Vedlikeholdsmareritt: Hvis logikken for YOY må endres, må du oppdatere alle YOY-målene.
  • Inkonsistens: Risiko for små feil eller ulikheter når man kopierer kode.

Calculation Groups tilbyr en mye smartere løsning.

Hva er Egentlig en Calculation Group?

Tenk på en Calculation Group som en samling av gjenbrukbare beregningsformler (eller formateringer) som kan brukes på alle eksisterende mål i modellen din.

I stedet for å lage Salg YOY og Kostnad YOY separat, lager du:

  1. Dine grunnleggende mål: [Salg] og [Kostnad] (som du sannsynligvis allerede har).
  2. Én Calculation Group (f.eks. kalt "Tidsberegninger").
  3. Inne i denne gruppen lager du "Calculation Items", som YOY og YTD. Hver av disse inneholder DAX-logikken for hvordan den respektive tidsberegningen skal gjøres.

Magien ligger i en spesiell DAX-funksjon: SELECTEDMEASURE(). Når du definerer Calculation Item for YOY, bruker du SELECTEDMEASURE() som en plassholder for det målet brukeren har valgt i rapporten (f.eks. [Salg] eller [Kostnad]). Calculation Item-et tar dette målet, utfører YOY-logikken på det, og returnerer resultatet.

De Store Fordelene (Hvorfor du bør bruke dem):

  • Drastisk reduksjon i antall mål: Dette er hovedgevinsten! I stedet for N * M mål (N grunnmål * M beregningstyper), trenger du bare N + M (N grunnmål + M calculation items). Modellen blir mye renere og enklere.
  • Enklere vedlikehold: Trenger du å justere YOY-logikken? Du endrer den kun på ett sted (i YOY Calculation Item), og endringen gjelder automatisk for alle mål den brukes på.
  • Konsistent logikk: Sikrer at f.eks. YTD beregnes på nøyaktig samme måte for Salg, Kostnad, og Antall.
  • Dynamisk Formatering: Du kan definere formatstrenger (f.eks. prosent, valuta) som en del av et Calculation Item. YOY% kan automatisk vises som en prosent, uavhengig av formatet til det underliggende målet.
  • Fleksibilitet for brukere: Brukere kan enkelt velge hvilken beregning (f.eks. YOY, YTD, vanlig verdi) de vil se for et mål ved hjelp av en slicer eller filter i rapporten.

Hvordan Sette Opp en Calculation Group (Enkel Oversikt):

Du oppretter Calculation Groups i Model View i Power BI Desktop eller når du redigerer datamodellen i Fabric-tjenesten:

  1. Gå til Model View.
  2. Klikk på Calculation group-knappen i båndet (Ribbon) under "Calculations"-gruppen.
  3. (Du blir kanskje bedt om å aktivere "Discourage implicit measures". Dette er anbefalt og nødvendig for Calculation Groups. Si ja til dette.)
  4. En ny "tabell" dukker opp i Data-panelet. Gi den et godt navn (f.eks. "Time Intelligence", "Valutakonvertering").
  5. Standard får den én kolonne (ofte kalt "Name"). Gi denne kolonnen et beskrivende navn som skal vises i rapporter (f.eks. "Tidsberegning", "Vis som").
  6. Standard får den ett Calculation Item (ofte kalt "Calculation"). Gi dette et meningsfylt navn (f.eks. "Current" eller "Faktisk Verdi"). DAX-uttrykket for denne er vanligvis bare SELECTEDMEASURE(), som betyr "vis målet som det er".
  7. Lag nye Calculation Items: Høyreklikk på "Calculation Items"-mappen under gruppen din og velg "New calculation item". Gi dem navn (f.eks. "YOY", "YTD").
  8. Skriv DAX-koden: For hvert nye item, skriv DAX-logikken. Bruk SELECTEDMEASURE() der du normalt ville referert til det spesifikke målet. Eksempel (veldig forenklet YOY):
    CALCULATE(
        SELECTEDMEASURE(),
        SAMEPERIODLASTYEAR('Date'[Date]) -- Husk å bruke DITT datotabellnavn!
    )
  9. (Valgfritt) Dynamisk Formatstreng: Velg et Calculation Item og slå på "Dynamic format string" i Properties-panelet for å overstyre standard formatering (f.eks. sett til "#,##0.00%" for YOY%).
  10. (Valgfritt) Prioritet (Precedence): Hvis du har flere Calculation Groups, kan du bestemme rekkefølgen de anvendes i via "Calculation group precedence" i Properties for selve gruppen.

Hvordan Bruke Calculation Groups i Rapporter:

Når gruppen er laget, bruker du den slik:

  • I Matriser/Tabeller: Dra den navngitte kolonnen fra Calculation Group (f.eks. "Tidsberegning") til "Columns"-feltet i en matrise. Dra deretter dine vanlige mål (f.eks. [Salg], [Kostnad]) til "Values"-feltet. Vips, så ser du målene brutt ned etter Calculation Items!
  • I Slicere: Dra Calculation Group-kolonnen inn i en Slicer. Brukerne kan da velge om de vil se "Current", "YOY", "YTD", etc. for alle målene i tilknyttede visualiseringer.
  • I Andre Mål (mindre vanlig for å redusere antall): Du kan også "tvinge" et mål til å bruke et spesifikt Calculation Item ved hjelp av CALCULATE. Eksempel:
    Salg YOY% =
    CALCULATE(
        [Salg],
        'Time Intelligence'[Tidsberegning] = "YOY%" -- Bruk DITT gruppe- og kolonnenavn
    )
    Dette er nyttig hvis du alltid vil vise en spesifikk beregning i et KPI-kort e.l., men det reduserer ikke antall mål like mye som de andre metodene.

Når Bør Du Vurdere Calculation Groups?

De er spesielt nyttige for:

  • Standardisert tidintelligence (YOY, MTD, YTD, QTD, osv.).
  • Valutakonvertering.
  • Scenarioanalyse (f.eks. vise "Budsjett", "Prognose", "Faktisk").
  • Ulike formateringsbehov for samme mål (f.eks. vise som tall, prosent av total, eller rangering).

La TrendMe Hjelpe Deg Med Calculation Groups

Calculation Groups er et kraftig verktøy, men det krever litt innsikt å sette dem opp optimalt. Hos TrendMe har vi solid erfaring med å implementere Calculation Groups for å forenkle og forbedre Power BI- og Fabric-løsninger.

Trenger du hjelp til å rydde opp i mål-kaoset eller ønsker å utnytte potensialet i Fabric og Power BI fullt ut? Ta kontakt med oss i TrendMe for en prat om hvordan vi kan bistå!

Følg med videre for flere tips og triks om dataanalyse med Microsofts verktøy!