Denne bloggen er egentlig designet for brukere som er nye for og er ment å gi deg en rask og enkel gjennomgang på et formelspråk som heter Data Analysis Expressions (DAX) .Hvis du er kjent med funksjonene i MS Excel eller , mange av formlene i dette Grunnleggende om Power BI DAX artikkelen vil se ut som deg.
Når det er sagt, her er begrepene, som utgjør en integrert del av alle , etter å ha lært hvilke du skal ha god forståelse av de mest grunnleggende konseptene i DAX.
- Grunnleggende om Power BI DAX: Hva er DAX?
- Grunnleggende om Power BI DAX: Hvordan fungerer det?
- Grunnleggende om Power BI DAX: Beregnede kolonner og målinger
- Grunnleggende om Power BI DAX: Typer funksjoner i DAX
- Grunnleggende om Power BI DAX: Opprette ditt første mål
Grunnleggende om Power BI DAX: Hva er DAX?
Så, la oss begynne med det grunnleggende om Power BI DAX, ok?
Det er ganske enkelt å lage rapporter ved hjelp av Power BI Desktop, som viser verdifull innsikt rett utenfor flaggermusen.
Men hva om du trenger å analysere vekstprosent i alle produktkategoriene for alle de forskjellige datoperioder? Eller må du beregne den årlige veksten til selskapet ditt sammenlignet med markedets giganter?
Læring DAX vil hjelpe deg å få mest mulig ut av din og løse reelle forretningsproblemer.
DAX består av funksjoner, operatører og konstanter som kan settes i form av formler for å beregne verdier ved hjelp av data som allerede finnes i modellen din.
Power BI DAX inkluderer et bibliotek med over 200 funksjoner, operatører og konstruksjoner. Biblioteket gir enorm fleksibilitet i å lage tiltak for å beregne resultater for omtrent ethvert behov for dataanalyse.
Grunnleggende om Power BI DAX: Hvordan fungerer det?
Først av alt, la meg forklare deg hvordan dette fungerer.Vi skal for det meste utforme vår forståelse av Power BI DAX rundt tre grunnleggende konsepter: Syntaks , Kontekst , og Funksjoner .
Selvfølgelig er det andre viktige begreper her inne, men å forstå disse tre vil gi det beste grunnlaget som du skal bygge dine ferdigheter på.
Syntaks
De Syntaks består av forskjellige komponenter som utgjør en formel og hvordan den er skrevet. Logså med denne enkle DAX-formelen.
Når du prøver å forstå en DAX-formel, er det ofte nyttig å bryte ned hvert av elementene til et språk du tenker og snakker hver dag. Så denne formelen inneholder følgende syntakselementer:
JEG. Totale salg er målnavnet.
II. De lik skiltoperatør (=) indikerer begynnelsen på formelen.
III. SUM legger opp alle tallene i kolonnen, Salg [SalesAmount] .
IV. Det er disse parentes () som omgir et uttrykk som inneholder ett eller flere argumenter. Alle funksjoner krever minst ett argument.
V. Salg er det referert til bordet.
VI. An argument overfører en verdi til en funksjon. Den refererte kolonnen [Salgssum] er et argument som SUM-funksjonen kjenner kolonnen som den må samle et SUM på.
Enkelt sagt, du kan lese den som, ' Beregn (=) SUM av verdier i [SalesAmount] -kolonnen i salgstabellen for tiltaket som heter Total Sales. ”
& sparPower BI DAX-editoren inneholder en forslagfunksjon, som hjelper deg med å lage syntaktisk korrekte formler ved å foreslå de riktige elementene.
Kontekst
Kontekst er et av de viktigste av de 3 DAX-konseptene. Når man snakker om sammenheng, kan dette referere til en av de to typene Radkontekst og Filtrer kontekst .
Brukes hovedsakelig mens du snakker om målinger , den Radkontekst er lettest å tenke på som den nåværende raden. Det gjelder når en formel har en funksjon som bruker filtre for å identifisere en enkelt rad i en tabell.
Filter-kontekst er litt vanskeligere å forstå enn Row-Context. Du kan lettst tenke på filterkonteksten som ett eller flere filtre som brukes i en beregning. DeFilterkontekst eksisterer ikke i stedet for radkonteksten. Snarere gjelder det i tillegg til førstnevnte. Se på følgende DAX-formel.
Denne formelen inneholder følgende syntakselementer:
JEG. Tiltaksnavnet Butikksalg .
II. De lik skiltoperatør (=) indikerer begynnelsen på formelen.
III. De REGNE UT funksjon evaluerer et uttrykk, som et argument.
IV. Parentes () omgir et uttrykk som inneholder ett eller flere argumenter.
V. Et mål [Totale salg] i samme tabell som et uttrykk.
VI. TIL komma (,) skiller det første uttrykksargumentet fra filterargumentet.
KOMMER DU. Den fullstendige refererte kolonnen, Kanal [ChannelName] er vår Row-Context. Hver rad i denne kolonnen spesifiserer en kanal, butikk, online osv.
VIII. Den spesielle verdien, butikk brukes som filter. Dette er vår filterkontekst.
Denne formelen sikrer at Totalt salgsmål beregnes bare for rader i Channel [ChannelName] -kolonnen med verdien 'Store', som et filter.
Funksjoner
Funksjoner er forhåndsdefinerte, strukturerte og ordnede formler. De utfører beregninger ved hjelp av argumenter videreført til dem. Disse argumentene kan være tall, tekst, logiske verdier eller andre funksjoner.
Grunnleggende om Power BI DAX: Beregnede kolonner og tiltak
I denne bloggen skal vi fokusere på Power BI DAX-formlene som brukes i beregninger, i målinger og Beregnede kolonner .
Beregnede kolonner
Når du oppretter en datamodell på Power BI Desktop, kan du utvide en tabell ved å opprette nye kolonner. Innholdet i kolonnene er definert av et DAX-uttrykk, evaluert rad for rad eller i sammenheng med gjeldende rad over den tabellen.
I datamodeller for DAX tar imidlertid alle beregnede kolonner plass i minnet og blir beregnet under tabellbehandling.
Denne oppførselen er nyttig for å gi bedre brukeropplevelse, men den bruker dyrebar RAM og er derfor en dårlig vane i produksjonen fordi hver mellomberegning er lagret i RAM og kaster bort dyrebar plass.
målinger
Det er en annen måte å definere beregninger i en DAX-modell, nyttig hvis du trenger å operere på samlede verdier i stedet for på rad for rad-basis. Disse beregningene er mål. Et av kravene til DAX er at et mål må defineres i en tabell. Imidlertid hører tiltaket egentlig ikke til bordet. Så du kan flytte et mål fra en tabell til en annen uten å miste funksjonaliteten.
Beregnede kolonner vs tiltak
Mål og beregnede kolonner bruker begge DAX-uttrykk. Forskjellen er sammenhengen med evaluering. Et mål evalueres i sammenheng med cellen som evalueres i en rapport eller i et DAX-spørring, mens en beregnet kolonne beregnes på radnivå i tabellen den tilhører.
Selv om de ser like ut, er det stor forskjell mellom beregnede kolonner og mål. Verdien av en beregnet kolonne blir beregnet under en dataoppdatering og bruker den gjeldende raden som en kontekst, det avhenger ikke av brukerinteraksjon i rapporten.
Derfor må du definere en beregnet kolonne når du vil gjøre følgende
- Plasser de beregnede resultatene i en skiver, eller se resultatene i rader eller kolonner i en pivottabell (i motsetning til verdiområdet), eller i aksene til et diagram, eller bruk resultatet som en filtertilstand i et DAX-spørsmål.
- Definer et uttrykk som er strengt bundet til gjeldende rad. For eksempel kan Pris * Antall ikke fungere i gjennomsnitt eller på en sum av de to kolonnene.
- Kategoriser tekst eller tall. For eksempel et verdiområde for et mål.
Et mål opererer på aggregeringer av data definert av gjeldende kontekst, som avhenger av filteret som brukes i rapporten - for eksempel skiver, rader og kolonnevalg i en pivottabell, eller akser og filtre som er brukt på et diagram.
Så du må definere et mål når du vil vise resulterende beregningsverdier som gjenspeiler brukervalg, for eksempel
- Når du beregner profittprosenten på et bestemt utvalg av data.
- Når du beregner forholdet mellom et produkt og alle produktene, men holder filteret både etter år og region.
Grunnleggende om Power BI DAX: Typer funksjoner i DAX
1. Aggregerte funksjoner
MIN
Denne DAX-funksjonen returner den minste numeriske verdien i en kolonne, eller mellom to skalære uttrykk.
Syntaks
MIN()
Eksempel
=MIN([ResellerMargin])
MINA
Denne DAX-funksjonen returner minimumsverdien i en kolonne, inkludert eventuelle logiske verdier og tall som er representert som tekst.
Syntaks
MINA()
Eksempel
=MINA(([Postnummer])
MINX
Denne DAX-funksjonen returnererden minste numeriske verdien som er resultatet av å evaluere et uttrykk for hver rad i en tabell.
Syntaks
Eksempel Denne DAX-funksjonen retur den maksimale verdien i en kolonne, inkludert eventuelle logiske verdier og tall som er representert som tekst. Syntaks Eksempel Denne DAX-funksjonen retur den maksimale verdien i en kolonne, inkludert eventuelle logiske verdier og tall som er representert som tekst. Syntaks Eksempel Denne DAX-funksjonen returnererden maksimale numeriske verdien som er resultatet av å evaluere et uttrykk for hver rad i en tabell. Syntaks Eksempel Denne DAX-funksjonen adds alle tallene i en kolonne. Syntaks Eksempel Denne DAX-funksjonen returner det aritmetiske gjennomsnittet av verdiene i en kolonne. Syntaks Eksempel Denne DAX-funksjonen returner summen av et uttrykk evaluert for hver rad i en tabell. Syntaks Eksempel Denne DAX-funksjonen cberegner det aritmetiske gjennomsnittet av et sett med uttrykk evaluert over et bord. Syntaks Eksempel Dette er en DAX-funksjon som brukes til å returnere den forskjellige antall varer i en kolonne. Så hvis det er flere tall av samme element, teller denne funksjonen det som et enkelt element. Syntaks Eksempel Dette er en DAX-funksjon som brukes til å returnere antall varer i en kolonne. Så hvis det er flere tall av samme element, vil denne funksjonen telle det som separate elementer og ikke som et enkelt element. Syntaks Eksempler Dette er en DAX-funksjon som brukes til å returnere antall varer i en kolonne som ikke er tom. Syntaks Eksempel Dette er en DAX-funksjon somteller antall rader i den angitte tabellen, eller i en tabell definert av et uttrykk. Syntaks Eksempel Dette er en DAX-funksjon somteller antall tomme celler i en kolonne. Syntaks Eksempel Denne DAX-funksjonen rangir den angitte datoen i Date-Time format. Syntaks Eksempel Denne DAX-funksjonen returerer den angitte timen som et tall fra 0 til 23 (12:00 AM til 11:00 PM). Syntaks Eksempel Denne DAX-funksjonen rgjengir gjeldende dato. Syntaks Denne DAX-funksjonen rgjengir gjeldende dato og klokkeslett i Date-Time format. Syntaks Denne DAX-funksjonen rviser datoen i Date-Time format for den siste dagen i måneden, før eller etter et spesifisert antall måneder. Syntaks Eksempel Denne DAX-funksjonen returerer den absolutte verdien av det oppgitte tallet. Syntaks Eksempel Denne DAX-funksjonen returner verdien av e hevet til kraften til det gitte tallet. Syntaks Eksempel Denne DAX-funksjonen returns faktura av et tall. Syntaks Eksempel Denne DAX-funksjonen returerer den naturlige loggen til det gitte nummeret. Syntaks Eksempel Denne DAX-funksjonen returner loggen med basen til det gitte nummeret. Syntaks Eksempel Denne DAX-funksjonen returner verdien av Pi. Syntaks Denne DAX-funksjonen returner verdien av det første argumentet som er hevet til kraften til det andre argumentet. Syntaks Eksempel Denne DAX-funksjonen utfører divisjon returerer heltall av kvotienten. Syntaks Eksempel Denne DAX-funksjonen returnerer tegnet på et gitt tall. Syntaks Eksempel Denne DAX-funksjonen returerer kvadratroten til det gitte tallet. Syntaks Eksempel Denne DAX-funksjonen utfører logisk AND (konjunksjon) på to uttrykk. For at AND skal være sant, må begge spesifiserte vilkårene være oppfylt. Syntaks Eksempel Denne DAX-funksjonen utfører logisk ELLER (disjunksjon) på to uttrykk. For at OR skal være sant, må en av de to betingelsene som er spesifisert være oppfylt. Syntaks Eksempel Denne DAX-funksjonen utfører logisk IKKE (negasjon) på gitt uttrykk. Syntaks Eksempel Denne DAX-funksjonen tester en serie innganger for den som oppfyller betingelsen spesifisert i argumentet. Syntaks Eksempel Denne DAX-funksjonen everdsetter et uttrykk og returnerer en spesifisert verdi hvis uttrykket returnerer en feil. Syntaks Eksempel Denne DAX-funksjonenreturnerer SANT eller FALSK etterchecking om en verdi er blank. Syntaks Eksempel Denne DAX-funksjonenreturnerer SANT eller FALSK etterchecking om en verdi er numerisk. Syntaks Eksempel Denne DAX-funksjonenreturnerer SANT eller FALSK etterchecking om en verdi er en tekst. Syntaks Eksempel Denne DAX-funksjonenreturnerer SANT eller FALSK etterchecking om en verdi ikke er tekst. Syntaks Eksempel Denne DAX-funksjonenreturnerer SANT eller FALSK etterchecking om en verdi er en feil. Syntaks Eksempel Denne DAX-funksjonen joins to tekststrenger i en. Syntaks Eksempel Denne DAX-funksjonenresultatet av et uttrykk evaluert for hver rad i en tabell. Syntaks Eksempel Denne DAX-funksjonen rounds et tall til det angitte antallet desimaler og returnerer resultatet som tekst. Syntaks Eksempel Denne DAX-funksjonenerstatter en del av en tekststreng, basert på antall tegn du angir, med en annen tekststreng. Syntaks Eksempel Denne DAX-funksjonen returner antall tegn der en bestemt tekststreng først blir funnet. Syntaks Eksempel Denne DAX-funksjonen returnereren tekststreng i alle store bokstaver. Syntaks Eksempel Forutsetning: Du må åpne denne gitte Power BI Desktop-filen . Siden jeg antar at dette kommer til å bli din første, vil jeg skrive denne biten i detalj for at du skal følge med. I feltlisten til Rapportvisning , høyreklikk på Salg tabell, etterfulgt av Nytt mål . Erstatte Måle ved å skrive inn et nytt målnavn Forrige kvartalsalg, i Formula Bar . I denne formelen vil du bruke REGNE UT funksjon. Så, etter likhetstegnet, skriver du inn de første bokstavene CAL , og dobbeltklikk deretter funksjonen du vil bruke. BEREGN-funksjonen har minst to argumenter. Det første er uttrykket som skal evalueres, og det andre er et Filter . Etter åpningen parentes ( for REGNE UT funksjon, type SUM etterfulgt av en ny parentes ( å føre et argument til SUM funksjon. Begynn å skrive Salt , og velg deretter Salg [SalesAmount] , etterfulgt av en sluttparentes ) . Dette er det første uttrykksargumentet for vårt REGNE UT funksjon. Skriv inn a komma (,) etterfulgt av et mellomrom for å spesifisere det første filteret, og skriv deretter TIDLIGERE KVARTAL . Dette vil være vårt filter. Du bruker TIDLIGERE KVARTAL tidsintelligensfunksjon for å filtrere SUM resultater fra forrige kvartal. Etter innledende parentes ( for FORRIGE KVARTER-funksjonen, skriv Kalender [DateKey] . De TIDLIGERE KVARTAL funksjonen har ett argument, en kolonne som inneholder et sammenhengende datoperiode. I vårt tilfelle er det den DateKey kolonne i kalendertabellen. Forsikre deg om at både argumentene som sendes til FORRIGE KVARTER og KALKULER-funksjonen er lukket ved å skrive to lukkede parenteser )) . Formelen din skal nå se ut som følgende Klikk haken i formellinjen, eller trykk Enter for å validere formelen. Når du har lagt det til i modellen din, voila! Du har nettopp opprettet et mål ved hjelp av DAX, og ikke et enkelt. Hva denne formelen gjør er beregne totalsalget for forrige kvartal, avhengig av filtrene som er brukt i en rapport. Så la oss om vi måtte sette Salgssum og vår nye Forrige kvartalsalg måle i et diagram, og deretter legges til År og QuarterOfYear som Skiver, vi vil få noe i retning av følgende Nå som du har en grunnleggende forståelse av konseptene i Power BI DAX, kan du begynne å lage DAX-formler for tiltak alene. Det kan faktisk være litt vanskelig å lære, menDAX har eksistert i flere år ogdet er mange ressurser tilgjengelig på nettet. Etter å ha lest gjennom denne bloggen og litt eksperimentering, kan du lære å finne forretningsløsninger gjennom Power BI DAX.
MINX(
,)
hvordan du bruker delingsmetoden i java
=MINX(FILTER(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Freight] + InternetSales [TaxAmt])
MAX
MAX()
=MAX([ResellerMargin])
MAX
MAX()
=MAX(([Postnummer])
MAXX
MAXX(
,)
=MAXX(FILTER(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Freight] + InternetSales [TaxAmt])
SUM
SUM()
=SUM(Salgskontor])
GJENNOMSNITT
GJENNOMSNITT()
=GJENNOMSNITT(InternetSales [ExtendedSalesAmount])
sumx
sumx(
,)
=sumx(FILTER(InternetSales, InternetSales [SalesTerritoryID] =5),[Frakt])
AVERAGEX
AVERAGEX(
,)
=AVERAGEX(InternetSales, InternetSales [Freight] + InternetSales [TaxAmt])
2. Tellefunksjoner
DISTINCTCOUNT
DISTINCTCOUNT()
=DISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])
TELLE
TELLE()
=TELLE([Forsendelsesdato])
COUNTA
COUNTA()
=COUNTA('Forhandler' [Telefon])
COUNTROWS
COUNTROWS(
)
=COUNTROWS('Bestillinger')
COUNTBLANK
COUNTBLANK()
=COUNTBLANK(Forhandler [BankName])
3. Dato-tid-funksjoner
DATO
DATO(<år>,<måned>,<dag>)
=DATO(2019,12, 17)
TIME
TIME()
=TIME('Bestillinger' [TransactionTime])
I DAG
I DAG()
NÅ
NÅ()
EOMONTH
EOMONTH(,)
=EOMONTH(3. mars 2008,1.5)
4. Matematiske funksjoner
SEKSJON
SEKSJON()
=ABS ([DealerPrice] - [ListPrice])
EXP
EXP()
= EXP ([Power])
FAKTUM
FAKTUM()
= FAKTA ([Verdier])
LN
LN()
= LN ([Verdier])
LOGG
LOGG(,)
Alle følgende gir samme resultat, 2.
= LOGG (100,10)
= LOGG (100)
= LOG10 (100)
PI
PI()
MAKT
MAKT(,<makt>)
= KRAFT (5,2)
KVOTIENT
KVOTIENT(,)
= KVOTIENT (5,2)
SKILT
SKILT()
= SIGN (([Salgspris] - [Kostpris]))
SQRT
SQRT()
= SQRT (25)
5. Logiske funksjoner
OG
OG(,)
= HVIS (OG (10>9, -10 <-en),'Alt sant','En eller flere falske'
Fordi begge forholdene, sendt som argumenter, til AND-funksjonen er sanne, returnerer formelen 'All True'.
ELLER
ELLER(,)
= HVIS (ELLER (10>9, -10> -en),'Ekte','Falsk'
Fordi en av betingelsene, gitt som argumenter, til OR-funksjonen er sant, returnerer formelen 'Sann'.
IKKE
IKKE()
= IKKE ([BeregnetKolonne1])
For hver rad i beregnet kolonne1 returnerer IKKE-funksjonen det logiske motsatte av den gitte verdien.
HVIS
HVIS(logisk_test> ,, verdi_om_falsk)
= HVIS ([samtaler]<200,'lav', IF ([Samtaler]<300,'medium','høy'))
FEIL
FEIL(verdi, verdi_if_feil)
= FEIL (25/0,9999)
6. Informasjonsfunksjoner
ISBLANK
ISBLANK(<verdi>)
= HVIS (ISBLANK ('CalculatedMeasures' [PreviousYearTotalSales]), BLANK (), ('CalculatedMeasures' [Total Sales] - 'CalculatedMeasures' [PreviousYearTotalSales]) / 'CalculatedMeasures' [PreviousYearTotalSales])
ISNUMBER
ISNUMBER(<verdi>)
= HVIS (ISNUMBER (0),'Er nummer','Er ikke nummer')
ISTEXT
ISTEXT(<verdi>)
= HVIS (ISTEXT ('tekst'),'Er tekst','Er ikke-tekst')
ISNONTEXT
ISNONTEXT(<verdi>)
= HVIS (ISNONTEXT ('tekst'),'Er ikke-tekst','Er tekst')
FEIL
hvordan avslutte programmet i java
ISERROE(<verdi>)
= HVIS (ISERROR (SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD])), BLANK (), SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount])
7. Tekstfunksjoner
KONKATENERE
KONKATENERE(,)
= CONCATENATE ('Hei', 'Verden')
CONCATENATEX
CONCATENATEX(
,, [avgrenser])
= CONCATENATEX (Ansatte, [FirstName] & '' & [LastName], ',')
FIKSET
FIKSET(,,)
= FAST ([PctCost],3,en)
ERSTATTE
ERSTATTE(,,,)
= ERSTATT ('Nye produkter' [Produktkode],en,2,'OB')
SØK
SØK(, [, [] [,]])
= SØK ('n','skriver')
Formelen returnerer 4 fordi 'n' er det fjerde tegnet i ordet 'skriver'.
ØVERSTE
ØVERSTE()
= ØVRE (['Nye produkter' [Produktkode])
Grunnleggende om Power BI DAX: Opprette ditt første mål
Tidligere kvartalsalg = BEREGNE (SUM (Salg [SalesAmount]), TIDLIGERE KVARTAL (Kalender [DateKey])