Pivottabell

En pivottabell er en tabell av grupperte verdier som aggregerer de individuelle elementene fra en mer omfattende tabell (for eksempel fra en database, et regneark, eller program for forretningsinnsikt) innenfor en eller flere diskrete kategorier. Dette sammendraget kan inneholde summer, gjennomsnitt eller annen statistikk som pivottabellen grupperer sammen ved hjelp av en valgt aggregeringsfunksjon som brukes på de grupperte verdiene. 


== Mekanikk ==
Typisk gjøres dataregistrering og -lagring i flattabeller, hvilket betyr at tabellen bare består av kolonner og rader, som for eksempel i den følgende tabellen som viser data om skjortetyper:

Flattabeller kan inneholde mange dataelementer, men det kan være vanskelig å få et oppsummert bilde av helheten ved å se på dem. Pivottabeller kan derimot hjelpe med å raskt oppsummere dataene og fokusere på ønsket informasjon. Bruken av en pivottabell kan være ekstremt bred og avhenger av situasjonen. Når man skal utforme en pivottabell kan man for eksempel stille seg spørsmålet "Hva er det jeg søker?" I eksemplet med skjortene kan man for eksempel lure på "Hvor mange enheter har vi solgt i hver region for hver forsendelsesdato?"

Et pivottabell består vanligvis av felter for rader, kolonner og data (eller fakta). I eksempelet over er kolonnen forsendelsesdato, raden er region og dataene man ønsker å se på er (summen av) enheter. Disse feltene tillater flere typer aggregering, inkludert: sum, gjennomsnittlig, standardavvik, telling, med mer. I dette tilfellet vises det totale antallet sendte enheter ved hjelp av en sum-aggregering.


== Implementering ==
Ved hjelp av eksempelet ovenfor finner programvaren alle forskjellige verdier for region. I dette tilfellet er de nord, sør, øst og vest. Videre finner programmet alle forskjellige verdier for forsendelsesdato. Basert på aggregeringstypen (her: sum) vil faktaene (her: enheter) oppsummeres, og vil vises i et flerdimensjonalt diagram. I eksemplet ovenfor er det første datumet 66. Dette tallet ble regnet ut ved å finne alle poster hvor både region er øst og forsendelsesdato er 2005-01-31, og deretter lagt sammen enheter for denne samlingen av oppføringer (altså cellene E2 til E7) sammen for å få et sluttresultat.
Pivottabeller opprettes vanligvis ikke automatisk. I for eksempel Microsoft Excel må man først velge alle dataene i den opprinnelige tabellen og deretter gå til Sett inn-fanen og velge "Pivottabell" (eller "Pivotdiagram"). Brukeren vil da få muligheten til å enten sette inn pivottabellen i et eksisterende ark eller opprette et nytt ark for å huse pivottabellen. Det vil da komme opp en feltliste for pivottabellen som viser viser alle kolonneoverskriftene i dataene. I en tabell over salgsdata for et selskap kan kolonneoverskrifter inkludere salgsdato, selger, vare solgt, farge på varen, solgte enheter, enhetspris, og totalpris. Dette gjør dataene lettere tilgjengelige.

Feltene som blir opprettet vil vanligvis bli synlige på høyre side av regnearket, og vanligvis vil utformingsvelgeren for pivottabellen vises under denne listen. Pivottabellfeltene er byggesteinene i pivottabeller. Hvert av feltene fra listen kan dras videre til denne utformeren, som har fire alternativer:

Filter
Kolonne
Rad
VerdiUtformingen kan til en viss grad være gjenstand for personlig smak, og man kan for eksempel velge å transponere en tabell ved å flytte om på rader og kolonner.I noen programmer kan pivottabeller brukes til analyse av spørreskjemaer med valgfrie svar, men noen implementasjoner av pivottabeller tillater ikke disse brukstilfellene. Eksempelvis er ikke implementasjonen i LibreOffice Calc siden 2012 i stand til å behandle tomme celler.


=== Filter ===
Et rapportfilter vil gjelde for en hel tabell. Dersom for eksempel feltet "farge på varen" dras til filter-området vil tabellen som er konstruert få et rapportfilter for "farge på varen" satt inn over tabellen. Dette rapportfilteret vil få rullegardinalternativer (i eksempelet ovenfor: svart, rødt og hvitt). Når et alternativ blir valgt fra nedtrekkslisten vil tabellen bare vise dataene fra de radene som har den (eller de) valgte fargene.


=== Kolonne ===
Kolonneetiketter brukes for å anvende et filter på en eller flere kolonner som må vises i pivottabellen. Dersom for eksempel feltet "selger" dras til kolonne-området vil pivottabellen få verdier fra kolonnen selger, altså vil man få et antall kolonner likt antallet selgere. Det vil også vises en ekstra kolonne for totalsum. I eksemplet ovenfor ville dette opprettet fem kolonner i tabellen, med en for hver selger, og totalsum. Det vil være et filter for kolonne-etiketter ovenfor dataene hvor man kan velge eller fjerne bestemt(e) selger(e) for pivottabellen. 
Denne tabellen vil ikke ha noen numeriske verdier ettersom ingen numeriske felter er valgt, men når numeriske felter velges vil verdiene automatisk oppdateres i totalsum-kolonnen.  


=== Rad ===
Radetiketter brukes for å anvende et filter på en eller flere rader som må vises i pivottabellen. Dersom for eksempel feltet "selger" dras til rad-området vil den andre utdatatabellen som konstruert ha verdier fra selger-kolonnen, altså vil man ha et antall rader som er likt antallet selgere. Det vil også bli lagt til en ekstra rad med "totalsum". I eksemplet ovenfor ville man fått 5 rader i tabellen – én for hver av de 4 selgerne og én for totalsum. Med radetikettene vil man få et filter over dataene hvor man kan velge eller velge bort bestemte selgere for pivottabellen. 
Denne tabellen vil ikke ha noen numeriske verdier ettersom ingen numeriske felter er valgt, men når numeriske felter velges vil verdiene automatisk oppdateres i totalsum-kolonnen.


=== Verdier ===
Verdi-feltet tar vanligvis et felt som har numeriske verdier som kan brukes til ulike typer beregninger. Bruk av tekstverdier vil imidlertid ikke være feil, men vil istedet for numerisk sum resultere i telling av antall elementer. I eksempelet ovenfor: Dersom feltet for "antall solgte enheter" dras til verdi-feltet sammen med radetiketten "selger" vil det legges til en ny kolonne for "sum av solgte enheter" som vil ha verdier mot hver selger.


== Applikasjonsstøtte ==
Pivottabeller eller pivotfunksjonalitet er en integrert del av mange programmer for regneark, noe databaseprogramvare, samt at det finnes i andre verktøy for datavisualisering og forretningsinnsikt.


=== Regneark ===
Microsoft Excel støtter pivottabeller, og kan visualiseres gjennom pivotdiagrammer
Apache POI
LibreOffice Calc og Openoffice Calc støtter pivottabeller. Før versjon 3.4 ble denne funksjonen kalt "DataPilot".
Calligra Sheets støtter pivottabeller.
Google Sheets støtter pivottabeller.
Numbers fra Apple fikk pivottabellstøtte i versjon 11.2. 


=== Databasestøtte ===
PostgreSQL er et objekt-relasjons-databasehåndteringssystem som tillater opprettelse av pivottabeller ved hjelp av tablefunc modulen.
MariaDB er en MySQL-forgrening som tillater pivottabeller ved hjelp av CONNECT-lagringsmotoren.
Microsoft Access støtter pivotspørringer under navnet crosstab-spørring.
Microsoft SQL Server støtter pivot som fra SQL Server 2016 med nøkkelordene FROM...PIVOT
Oracle Database støtter operasjonen PIVOT
Noen populære databaser som ikke direkte støtter pivotfunksjonalitet, for eksempel SQLite, kan vanligvis simulere pivotfunksjonalitet ved hjelp av innebygde funksjoner, dynamisk SQL eller under-spørringer. Problemet med pivotering i slike tilfeller er vanligvis at antall utdatakolonner må være kjent når spørringen begynner å kjøre, men for pivotering er ikke dette mulig da antall kolonner er basert på selve dataene. Derfor må navnene være hardkodet eller så må spørringen som skal utføres selv opprettes dynamisk (hvilket betyr før hvert kall) basert på dataene.


== Se også ==
Datautvinning
Datavarehus
Datavisualisering
Krysstabell
OLAP-kube
Relasjonsalgebra
Uttrekk, transformasjon og innlasting


== Referanser ==