Du har en salgstabell med tusenvis av rader og vil vise total omsetning i en rapport. Du drar kolonnen "Beloep" inn i en visualisering, og Power BI summerer automatisk. Det fungerer, men du har nettopp laget et implisitt measure uten å vite det. Problemet oppstår når du trenger mer kontroll.
Implisitte vs. eksplisitte measures
Når du drar en tallkolonne inn i en visualisering, lager Power BI et implisitt measure bak kulissene. Det bruker en standardaggregering, som regel SUM. Du kan endre den til gjennomsnitt, minimum eller maksimum via en rullegardinmeny, men det er omtrent alt du kan gjøre.
Et eksplisitt measure er en DAX-formel du skriver selv. Du bestemmer nøyaktig hva som beregnes, og du kan gjenbruke measuret på tvers av visualiseringer og rapportsider. Eksplisitte measures gir deg full kontroll, og du bør bruke dem som standard i alle rapporter som går utover enkel utforsking.
Lage et measure
Høyreklikk på tabellen i feltlisten og velg New Measure. Formellinjen dukker opp øverst, og du skriver DAX-formelen din der. Det enkleste eksempelet:
Total Salg = SUM(Salg[Beloep])
Measuret dukker opp i feltlisten med et lite kalkulatorsymbol. Du kan nå dra det inn i hvilken som helst visualisering. Til forskjell fra en kolonne lagres ikke verdien i tabellen. Measuret beregnes på nytt hver gang rapporten filtreres eller oppdateres.
Du kan også lage measuret fra fanen Modeling i toppmenyen ved å klikke New Measure. Resultatet er det samme, men høyreklikk-metoden plasserer measuret direkte i riktig tabell.
Filterkontekst er nøkkelen
Det som gjør measures virkelig nyttige er filterkonteksten. Når du legger measuret "Total Salg" i en tabell med produktkategorier på radene, beregner Power BI summen for hver kategori automatisk. Legger du til en slicer for år, oppdateres tallene igjen. Measuret tilpasser seg konteksten det evalueres i.
Denne oppførselen er ikke magi. Hver visualisering i Power BI definerer en filterkontekst basert på feltene som brukes. Measuret mottar denne konteksten og evaluerer formelen innenfor de gitte filtrene. Forstår du denne mekanismen, forstår du kjernen i DAX.
Prøv dette: Lag measuret Total Salg og legg det i et kortvisualisering uten filtre. Du ser totalen for hele datasettet. Legg så til en slicer for region. Velger du "Nord", viser kortet bare salg for region Nord. Samme measure, helt forskjellig resultat.
Praktiske eksempler
Et measure for gjennomsnittlig ordrestørrelse:
Snitt Ordre = AVERAGE(Salg[Beloep])
Et measure som teller unike kunder:
Antall Kunder = DISTINCTCOUNT(Salg[KundeID])
Et measure for fortjenestemargin i prosent:
Margin % = DIVIDE(SUM(Salg[Fortjeneste]), SUM(Salg[Omsetning]), 0)
Legg merke til at DIVIDE brukes i stedet for vanlig deling. Det er fordi DIVIDE håndterer divisjon med null uten å gi feilmelding. Det tredje argumentet (0) er verdien som returneres hvis nevneren er null.
CALCULATE gir measures superkrefter
CALCULATE lar deg endre filterkonteksten et measure evalueres i. Det åpner for beregninger som ellers ville vært umulige. Vil du se salg bare for en bestemt produktkategori, uavhengig av hva brukeren har filtrert på?
Salg Elektronikk = CALCULATE([Total Salg], Produkt[Kategori] = "Elektronikk")
Her refererer [Total Salg] til measuret du allerede har laget. CALCULATE overprøver eventuelle kategorifiltre og tvinger beregningen til bare å se på elektronikk. Andre filtre, som år eller region, gjelder fortsatt.
Du kan også bruke CALCULATE til å fjerne filtre med ALL-funksjonen:
Andel av Total = DIVIDE([Total Salg], CALCULATE([Total Salg], ALL(Produkt[Kategori])))
Denne formelen deler salget i gjeldende kategori på totalt salg for alle kategorier. Resultatet er prosentandelen. ALL fjerner filteret på kategori, slik at nevneren alltid viser totalen.
Organisere measures i mapper
Etter hvert som du lager flere measures, blir feltlisten uoversiktlig. Power BI lar deg organisere measures i visningsmapper. Velg measuret, og skriv inn et mappenavn under Display folder i egenskapspanelet. Vanlige mapper er "Salg", "Kunder" og "Tidsintelligens".
En god praksis er å samle alle measures i en egen tom tabell kalt "Measures" eller "Beregninger". Du lager den ved å skrive inn en enkel tabell i DAX: Beregninger = {BLANK()}. Flytt deretter alle measures dit. Tabellen fungerer bare som en organisatorisk beholder og påvirker ikke ytelsen.
Measures vs. kalkulerte kolonner
Measures og kalkulerte kolonner er begge DAX, men de fungerer helt forskjellig. Et measure beregnes dynamisk og reagerer på filterkontekst. En kalkulert kolonne beregnes ved dataimport og lagres i tabellen som en vanlig kolonne.
Bruk measures når resultatet skal endre seg basert på filtre i rapporten. Bruk kalkulerte kolonner når du trenger en fast verdi per rad, for eksempel en kategorisering eller en beregning som kombinerer verdier fra samme rad.
En tommelfingerregel: Hvis beregningen skal vises i verdier-brønnen av en visualisering, lag et measure. Hvis den skal brukes til å filtrere, sortere eller gruppere, vurder en kalkulert kolonne.
Formatering og beste praksis
Gi measures beskrivende navn. "Total Salg" er bedre enn "Measure1". Bruk mellomrom i navnet for lesbarhet. Formater lange formler med linjeskift slik at CALCULATE-filtrene er lette å lese.
Sett riktig dataformat på measuret. Høyreklikk og velg format: valuta for pengebeløp, prosent for andeler, heltall for antall. Formateringen følger measuret uansett hvilken visualisering det brukes i.
Unngå å referere til kolonner direkte i visualiseringer når du har et measure som gjør det samme. Implisitte measures kan oppføre seg uforutsigbart når datamodellen har flere relasjoner. Eksplisitte measures gir alltid konsistente resultater.
Bygg videre
Med measures på plass kan du begynne å utforske visualiseringer som virkelig utnytter dynamiske beregninger. Slicere, krysskoblede diagrammer og drilldown-rapporter blir først nyttige når beregningene bak reagerer riktig på brukernes valg.
Microsofts DAX-referanse er et godt oppslagsverk når du vil utforske flere funksjoner.
Vil du mestre measures med praktiske øvelser? Power BI-kurset gir deg trinnvise videoer der du bygger measures fra enkle summeringer til avanserte CALCULATE-mønstre, med et reelt datasett du kan jobbe med selv.




