Aggregasjoner er en måte å skjule, oppsummere eller gruppere data på. Når du starter med rådata fra tabeller eller andre datakilder, er dataene ofte flate, noe som betyr at det er mange detaljer, men de er ikke organisert eller gruppert på noen måte. Denne mangelen på sammendrag eller struktur kan gjøre det vanskelig å oppdage mønstre i dataene. En viktig del av datamodellering er å definere aggregasjoner som forenkler, abstrakte eller oppsummerer mønstre som svar på et bestemt forretningsspørsmål.
De fleste vanlige aggregasjoner, for eksempel de som bruker GJENNOMSNITT, ANTALL, DISTINCTCOUNT, MAX, MIN eller SUM , kan opprettes i et mål automatisk ved hjelp av Autosummer. Andre typer aggregasjoner, for eksempel AVERAGEX, COUNTX, COUNTROWS eller SUMX, returnerer en tabell og krever en formel som er opprettet ved hjelp av DAX (Data Analysis Expressions).
Forstå aggregasjoner i Power Pivot
Velge Grupper for aggregasjon
Når du aggregerer data, grupperer du data etter attributter som produkt, pris, område eller dato, og deretter definerer du en formel som fungerer på alle dataene i gruppen. Når du for eksempel oppretter en totalsum for et år, oppretter du en aggregasjon. Hvis du deretter oppretter et forhold mellom dette året og presenterer disse som prosenter, er det en annen type aggregasjon.
Beslutningen om hvordan du grupperer dataene er drevet av forretningsspørsmålet. Aggregasjoner kan for eksempel svare på følgende spørsmål:
Teller Hvor mange transaksjoner var det i løpet av en måned?
Gjennomsnitt Hva var gjennomsnittlig salg i denne måneden, etter selger?
Minimums- og maksimumsverdier Hvilke salgsdistrikter var de fem beste når det gjelder solgte enheter?
Hvis du vil opprette en beregning som svarer på disse spørsmålene, må du ha detaljerte data som inneholder tallene som skal telles eller summeres, og de numeriske dataene må på en eller annen måte være relatert til gruppene du skal bruke til å organisere resultatene.
Hvis dataene ikke allerede inneholder verdier som du kan bruke til gruppering, for eksempel en produktkategori eller navnet på det geografiske området der lageret er plassert, bør du introdusere grupper i dataene ved å legge til kategorier. Når du bygger grupper i Excel, må du manuelt skrive eller velge gruppene du vil bruke blant kolonnene i regnearket. I et relasjonssystem lagres imidlertid hierarkier som kategorier for produkter ofte i en annen tabell enn fakta- eller verditabellen. Vanligvis er kategoritabellen koblet til faktadataene etter en eller annen type nøkkel. Anta for eksempel at du finner ut at dataene inneholder produkt-ID-er, men ikke navnene på produkter eller deres kategorier. Hvis du vil legge til kategorien i et flatt Excel-regneark, må du kopiere i kolonnen som inneholdt kategorinavnene. Med Power Pivot kan du importere produktkategoritabellen til datamodellen, opprette en relasjon mellom tabellen med talldataene og produktkategorilisten, og deretter bruke kategoriene til å gruppere data. Hvis du vil ha mer informasjon, kan du se Opprett en relasjon mellom tabeller.
Velge en funksjon for aggregasjon
Når du har identifisert og lagt til grupperingene som skal brukes, må du bestemme hvilke matematiske funksjoner som skal brukes til aggregasjon. Ofte brukes ordet aggregasjon som et synonym for de matematiske eller statistiske operasjonene som brukes i aggregasjoner, for eksempel summer, gjennomsnitt, minimum eller antall. Power Pivot gjør det imidlertid mulig å opprette egendefinerte formler for aggregasjon, i tillegg til standardaggregasjoner som finnes både i Power Pivot og Excel.
Hvis du for eksempel har det samme settet med verdier og grupperinger som ble brukt i de foregående eksemplene, kan du opprette egendefinerte aggregasjoner som svarer på følgende spørsmål:
Filtrerte antall Hvor mange transaksjoner var det i løpet av en måned, unntatt vedlikeholdsvinduet for slutten av måneden?
Forhold som bruker gjennomsnitt over tid Hva var prosentvis vekst eller nedgang i salget sammenlignet med samme periode i fjor?
Grupperte minimums- og maksimumsverdier Hvilke salgsdistrikter ble rangert øverst for hver produktkategori, eller for hver salgskampanje?
Legge til aggregasjoner i formler og pivottabeller
Når du har en generell idé om hvordan dataene skal grupperes for å være meningsfulle, og verdiene du vil arbeide med, kan du bestemme om du vil bygge en pivottabell eller opprette beregninger i en tabell. Power Pivot utvider og forbedrer den opprinnelige muligheten i Excel til å opprette aggregasjoner, for eksempel summer, antall eller gjennomsnitt. Du kan opprette egendefinerte aggregasjoner i Power Pivot enten i Power Pivot-vinduet eller i Excel-pivottabellområdet.
-
I en beregnet kolonne kan du opprette aggregasjoner som tar hensyn til gjeldende radkontekst for å hente relaterte rader fra en annen tabell, og deretter summere, telle eller beregne disse verdiene i de relaterte radene.
-
I et mål kan du opprette dynamiske aggregasjoner som bruker både filtre som er definert i formelen, og filtre som er pålagt av utformingen av pivottabellen og valg av slicere, kolonneoverskrifter og radoverskrifter. Mål ved hjelp av standardaggregasjoner kan opprettes i Power Pivot ved hjelp av Autosummer eller ved å opprette en formel. Du kan også opprette implisitte mål ved hjelp av standardaggregasjoner i en pivottabell i Excel.
Legge til grupperinger i en pivottabell
Når du utformer en pivottabell, drar du felt som representerer grupperinger, kategorier eller hierarkier, til kolonnene og raddelen i pivottabellen for å gruppere dataene. Deretter drar du felt som inneholder numeriske verdier til verdiområdet, slik at de kan telles, beregnes i gjennomsnitt eller summeres.
Hvis du legger til kategorier i en pivottabell, men kategoridataene ikke er relatert til faktadataene, kan du få en feil eller spesielle resultater. Vanligvis vil Power Pivot prøve å løse problemet, ved automatisk å oppdage og foreslå relasjoner. Hvis du vil ha mer informasjon, kan du se Arbeide med relasjoner i pivottabeller.
Du kan også dra felt til slicere for å velge bestemte grupper med data for visning. Med slicere kan du interaktivt gruppere, sortere og filtrere resultatene i en pivottabell.
Arbeide med grupperinger i en formel
Du kan også bruke grupperinger og kategorier til å aggregere data som er lagret i tabeller, ved å opprette relasjoner mellom tabeller og deretter opprette formler som drar nytte av disse relasjonene for å slå opp relaterte verdier.
Hvis du med andre ord vil opprette en formel som grupperer verdier etter en kategori, må du først bruke en relasjon til å koble tabellen som inneholder detaljdataene og tabellene som inneholder kategoriene, og deretter bygge formelen.
Hvis du vil ha mer informasjon om hvordan du oppretter formler som bruker oppslag, kan du se Oppslag i Power Pivot-formler.
Bruke filtre i aggregasjoner
En ny funksjon i Power Pivot er muligheten til å bruke filtre på kolonner og tabeller med data, ikke bare i brukergrensesnittet og i en pivottabell eller et diagram, men også i formlene du bruker til å beregne aggregasjoner. Filtre kan brukes i formler både i beregnede kolonner og i s.
I de nye DAX-aggregasjonsfunksjonene, i stedet for å angi verdier du vil summere eller telle over, kan du for eksempel angi en hel tabell som argument. Hvis du ikke brukte filtre i tabellen, vil aggregasjonsfunksjonen fungere mot alle verdiene i den angitte kolonnen i tabellen. I DAX kan du imidlertid opprette et dynamisk eller statisk filter på tabellen, slik at aggregasjonen fungerer mot et annet delsett av data, avhengig av filterbetingelsen og gjeldende kontekst.
Ved å kombinere betingelser og filtre i formler kan du opprette aggregasjoner som endres avhengig av verdiene som er angitt i formler, eller som endres avhengig av utvalget av radoverskrifter og kolonneoverskrifter i en pivottabell.
Hvis du vil ha mer informasjon, kan du se Filtrere data i formler.
Sammenligning av Funksjoner for Excel-aggregasjon og DAX-aggregasjonsfunksjoner
Tabellen nedenfor viser noen av standardaggregasjonsfunksjonene som leveres av Excel, og inneholder koblinger til implementeringen av disse funksjonene i Power Pivot. DAX-versjonen av disse funksjonene fungerer omtrent på samme måte som Excel-versjonen, med noen mindre forskjeller i syntaks og håndtering av visse datatyper.
Standard aggregasjonsfunksjoner
Funksjon |
Bruk |
Returnerer gjennomsnittet (aritmetisk gjennomsnitt) av alle tallene i en kolonne. |
|
Returnerer gjennomsnittet (aritmetisk gjennomsnitt) av alle verdiene i en kolonne. Håndterer tekst og ikke-numeriske verdier. |
|
Teller antall numeriske verdier i en kolonne. |
|
Teller antall verdier i en kolonne som ikke er tom. |
|
Returnerer den største numeriske verdien i en kolonne. |
|
Returnerer den største verdien fra et sett med uttrykk evaluert over en tabell. |
|
Returnerer den minste numeriske verdien i en kolonne. |
|
Returnerer den minste verdien fra et sett med uttrykk evaluert over en tabell. |
|
Legger sammen alle tallene i en kolonne. |
DAX-aggregasjonsfunksjoner
DAX inneholder aggregasjonsfunksjoner som lar deg angi en tabell som aggregasjonen skal utføres over. I stedet for bare å legge til eller beregne gjennomsnitt for verdiene i en kolonne, kan du derfor opprette et uttrykk som dynamisk definerer dataene som skal aggregeres.
Tabellen nedenfor viser aggregasjonsfunksjonene som er tilgjengelige i DAX.
Funksjon |
Bruk |
Gjennomsnitt av et sett med uttrykk evaluert over en tabell. |
|
Teller et sett med uttrykk evaluert over en tabell. |
|
Teller antall tomme verdier i en kolonne. |
|
Teller totalt antall rader i en tabell. |
|
Teller antall rader som returneres fra en nestet tabellfunksjon, for eksempel filterfunksjon. |
|
Returnerer summen av et sett med uttrykk evaluert over en tabell. |
Forskjeller mellom DAX- og Excel-aggregasjonsfunksjoner
Selv om disse funksjonene har samme navn som Excel-kolleger, bruker de Power Pivot analysemotoren i minnet og har blitt omskrevet for å arbeide med tabeller og kolonner. Du kan ikke bruke en DAX-formel i en Excel-arbeidsbok, og omvendt. De kan bare brukes i Power Pivot-vinduet og i pivottabeller som er basert på Power Pivot data. Selv om funksjonene har identiske navn, kan virkemåten også være litt annerledes. Hvis du vil ha mer informasjon, kan du se de individuelle funksjonsreferanseemnene.
Måten kolonner evalueres på i en aggregasjon, er også forskjellig fra måten Excel håndterer aggregasjoner på. Et eksempel kan bidra til å illustrere.
La oss si at du vil få en sum av verdiene i Beløp-kolonnen i tabellen Salg, slik at du oppretter følgende formel:
=SUM('Sales'[Amount])
I det enkleste tilfellet får funksjonen verdiene fra én enkelt ufiltrert kolonne, og resultatet er det samme som i Excel, som alltid bare legger sammen verdiene i kolonnen Beløp. I Power Pivot tolkes imidlertid formelen som «Hent verdien i Beløp for hver rad i Salg-tabellen, og legg deretter sammen disse individuelle verdiene. Power Pivot evaluerer hver rad som aggregasjonen utføres over, og beregner en enkelt skalarverdi for hver rad, og utfører deretter en aggregasjon på disse verdiene. Resultatet av en formel kan derfor være forskjellig hvis filtre er brukt på en tabell, eller hvis verdiene beregnes basert på andre aggregasjoner som kan filtreres. Hvis du vil ha mer informasjon, kan du se Kontekst i DAX-formler.
DAX-funksjoner for tidsintelligens
I tillegg til tabellaggregasjonsfunksjonene som er beskrevet i forrige del, har DAX aggregasjonsfunksjoner som fungerer med datoer og klokkeslett du angir, for å gi innebygd tidsintelligens. Disse funksjonene bruker datoområder for å hente relaterte verdier og aggregere verdiene. Du kan også sammenligne verdier på tvers av datointervaller.
Tabellen nedenfor viser tidsintelligensfunksjonene som kan brukes til aggregasjon.
Funksjon |
Bruk |
Beregner en verdi på slutten av den angitte perioden i kalenderen. |
|
Beregner en verdi på kalenderslutten av perioden før den angitte perioden. |
|
Beregner en verdi over intervallet som starter på den første dagen i perioden og slutter på den siste datoen i den angitte datokolonnen. |
De andre funksjonene i funksjonsdelen for tidsintelligens (Tidsintelligensfunksjoner) er funksjoner som kan brukes til å hente datoer eller egendefinerte datoområder som skal brukes i aggregasjon. Du kan for eksempel bruke DATESINPERIOD-funksjonen til å returnere et datoområde, og bruke dette settet med datoer som argument til en annen funksjon for å beregne en egendefinert aggregasjon for bare disse datoene.