Slik lager du kalkulerte kolonner i Power BI

Lær å lage kalkulerte kolonner i Power BI med DAX. Radkontekst, praktiske eksempler og når du bør bruke measures i stedet.

Salgstabellen din har kolonnene "Antall" og "Enhetspris", men ingen kolonne for totalbeløp per linje. Du kunne gjort denne beregningen i kildefilen, men da må du gjøre det på nytt hver gang dataene oppdateres. En kalkulert kolonne i Power BI løser dette permanent.

Hva er en kalkulert kolonne?

En kalkulert kolonne er en ny kolonne du legger til i en eksisterende tabell ved hjelp av en DAX-formel. Power BI evaluerer formelen rad for rad når dataene lastes inn eller oppdateres. Resultatet lagres i datamodellen akkurat som en vanlig importert kolonne.

For å lage en kalkulert kolonne høyreklikker du på tabellen i feltlisten og velger New Column. Formellinjen dukker opp, og du skriver DAX-uttrykket. Eksempel:

Linjetotal = Salg[Antall] * Salg[Enhetspris]

Kolonnen "Linjetotal" dukker opp i tabellen med en verdi for hver rad. Du kan bruke den i visualiseringer, filtre og sortering akkurat som en hvilken som helst annen kolonne.

Radkontekst forklart

Kalkulerte kolonner opererer i det DAX kaller radkontekst. Det betyr at formelen evalueres for en rad om gangen, og du har tilgang til verdiene i alle kolonner på den aktuelle raden. Når du skriver Salg[Antall] * Salg[Enhetspris], henter Power BI antall og enhetspris fra samme rad.

Dette skiller seg fundamentalt fra measures, som opererer i filterkontekst. Et measure ser på alle rader som passer med gjeldende filtre og aggregerer resultatet. En kalkulert kolonne ser bare en rad om gangen og produserer en verdi per rad.

Denne forskjellen er grunnen til at du ikke kan bruke aggregeringsfunksjoner som SUM direkte i en kalkulert kolonne uten å spesifisere hvilken kontekst de skal evalueres i. Skriver du SUM(Salg[Beloep]) i en kalkulert kolonne, får du totalen for hele tabellen i hver eneste rad, fordi det ikke finnes noen filterkontekst som begrenser resultatet.

Praktiske eksempler

Sette sammen fornavn og etternavn:

Fullt Navn = Kunder[Fornavn] & " " & Kunder[Etternavn]

Beregne fortjenestemargin per salgsrad:

Margin = DIVIDE(Salg[Fortjeneste], Salg[Omsetning], 0)

Kategorisere kunder basert på kjøpsbeløp:

Kundesegment = IF(Salg[Beloep] > 10000, "Premium", IF(Salg[Beloep] > 5000, "Standard", "Basis"))

Det siste eksempelet viser en vanlig bruk av kalkulerte kolonner: å lage kategorier du kan filtrere og gruppere på i rapporten. Du får en ny kolonne med verdiene "Premium", "Standard" eller "Basis" som du kan bruke i slicere og diagramakser.

Når skal du bruke kalkulerte kolonner?

Kalkulerte kolonner passer best i tre situasjoner. For det første når du trenger en verdi per rad som skal brukes til filtrering, sortering eller gruppering. For det andre når beregningen kombinerer verdier fra flere kolonner på samme rad. For det tredje når du trenger en kolonne for å bygge relasjoner mellom tabeller.

Et typisk eksempel på det siste er å lage en sammensatt nøkkel. Kanskje du har en tabell der kombinasjonen av år og måned er unik, men ingen enkeltkolonne fungerer som nøkkel:

AarMaaned = Dato[Aar] * 100 + Dato[Maaned]

Denne kolonnen gir deg en verdi som 202601 for januar 2026, som du kan bruke til å koble tabeller sammen.

Kalkulerte kolonner vs. measures

Valget mellom kalkulert kolonne og measure er en av de viktigste beslutningene du tar i DAX. Her er den korte versjonen: Hvis verdien skal reagere på filtre i rapporten, bruk et measure. Hvis verdien er fast per rad og skal brukes til å gruppere eller filtrere, bruk en kalkulert kolonne.

Et vanlig eksempel som illustrerer forskjellen: Du vil vise fortjenestemargin. Hvis du lager en kalkulert kolonne, får du marginen per salgsrad. Det fungerer fint i en detaljert tabell, men i et diagram som viser margin per kategori gir det feil resultat, fordi Power BI bare aggregerer kolonnens enkeltverdier.

Med et measure beregner du margin basert på summert fortjeneste og summert omsetning innenfor filterkonteksten. Da får du riktig margin per kategori, per region eller per hvilken som helst annen gruppering brukeren velger.

Ytelse og lagring

Kalkulerte kolonner tar opp plass i datamodellen fordi verdiene lagres. Har du en tabell med ti millioner rader og legger til fem kalkulerte kolonner, øker minnebruken merkbart. Measures tar ikke opp ekstra plass fordi de beregnes på forespørsel.

En tommelfingerregel: Kan du oppnå det samme med et measure, velg measuret. Kalkulerte kolonner bør reserveres for situasjoner der du faktisk trenger en fast verdi per rad, typisk for filtrering og gruppering.

En annen ytelsesdetalj er at kalkulerte kolonner beregnes ved dataoppdatering. Har du tunge beregninger, som komplekse IF-nesting eller RELATED-oppslag på tvers av store tabeller, kan det øke oppdateringstiden. Vurder om beregningen kan gjøres i Power Query i stedet, der du har bedre kontroll over optimaliseringen.

Kalkulerte kolonner vs. Power Query

Mange beregninger som kan gjøres med kalkulerte kolonner kan også gjøres i Power Query under dataimport. Tekstsammenslåinger, enkel matematikk og kategoriseringer er gode eksempler. Power Query-beregninger er generelt raskere fordi de kjører under import og ikke belaster DAX-motoren.

Bruk kalkulerte kolonner når beregningen avhenger av relasjoner i datamodellen (for eksempel RELATED-funksjonen for å hente verdier fra en relatert tabell) eller når du trenger DAX-spesifikke funksjoner som ikke finnes i Power Query.

Bruk RELATED for oppslag

RELATED-funksjonen lar deg hente verdier fra en relatert tabell. Har du en salgstabell med en ProduktID og en produkttabell med kategorinavn, kan du legge til kategorien direkte i salgstabellen:

Kategori = RELATED(Produkt[Kategorinavn])

Forutsetningen er at det finnes en relasjon mellom tabellene. RELATED følger relasjonen fra mange-siden til en-siden, akkurat som et VLOOKUP i Excel. Denne teknikken er nyttig når du trenger å gruppere eller filtrere salgstabellen på egenskaper som ligger i en annen tabell.

Kom i gang

Kalkulerte kolonner er et kraftig verktøy når de brukes riktig. Kombiner dem med measures for å bygge visualiseringer som er både fleksible og ytelsessterke. Husk hovedregelen: measures for dynamiske beregninger, kalkulerte kolonner for faste radverdier.

For en komplett oversikt over DAX-funksjoner som fungerer i kalkulerte kolonner, se Microsofts DAX-referanse.

Vil du se kalkulerte kolonner og measures i praksis? Power BI-kurset viser deg steg for steg når du bør velge det ene fremfor det andre, med reelle datasett og oppgaver du kan løse selv.