Starter med DAX i Power BI



Denne Edureka-blog hjælper dig med at starte med Power BI DAX Basics eller Data Analytics Expressions, hvis du ikke er ny i Power BI med syntaksen og eksemplerne.

Denne blog er i det væsentlige designet til brugere, der er nye i og er beregnet til at give dig en hurtig og nem gennemgang på et formelsprog kaldet Data Analysis Expressions (DAX) .Hvis du er fortrolig med funktioner i MS Excel eller , mange af formlerne i dette Grundlæggende om Power BI DAX artiklen vil ligne dig.

Når det er sagt, her er begreberne, som udgør en integreret del af alle efter læring, som du skal have en god forståelse af de mest grundlæggende begreber i DAX.





Grundlæggende om Power BI DAX: Hvad er DAX?

Så lad os starte med det grundlæggende i Power BI DAX, okay?

Det er ret nemt at oprette rapporter ved hjælp af Power BI Desktop, der viser værdifuld indsigt lige uden for flagermusen.



Men hvad hvis du har brug for at analysere vækstprocent på tværs af alle produktkategorier for alle de forskellige datointervaller? Eller skal du beregne den årlige vækst i din virksomhed sammenlignet med markedets giganter?

At lære DAX vil hjælpe dig med at få mest muligt ud af din og løse reelle forretningsproblemer.

DAX består af funktioner, operatorer og konstanter, der kan sættes i form af formler til beregning af værdier ved hjælp af data, der allerede findes i din model.



Power BI DAX inkluderer et bibliotek med over 200 funktioner, operatører og konstruktioner. Dets bibliotek giver enorm fleksibilitet til at skabe foranstaltninger til beregning af resultater til næsten ethvert behov for dataanalyse.

Grundlæggende om Power BI DAX: Hvordan fungerer det?

Lad mig først og fremmest forklare dig, hvordan dette fungerer.Vi skal for det meste indramme vores forståelse af Power BI DAX omkring tre grundlæggende begreber: Syntaks , Sammenhæng og Funktioner .

Selvfølgelig er der andre vigtige begreber herinde, men forståelse af disse tre vil give det bedste fundament, som du skal bygge dine færdigheder på.

Syntaks

Det Syntaks består af forskellige komponenter, der udgør en formel, og hvordan den er skrevet. Logså med denne enkle DAX-formel.

Når du prøver at forstå en DAX-formel, er det ofte nyttigt at nedbryde hvert af elementerne til et sprog, du tænker og taler hver dag. Så denne formel inkluderer følgende syntakselementer:

Syntaks - Power BI DAX - Edureka

JEG. Samlet salg er foranstaltningens navn.

II. Det er lig med tegnoperatør (=) angiver begyndelsen af ​​formlen.

III. SUM tilføjer alle numrene i kolonnen, Salg [SalesAmount] .

IV. Der er disse parenteser () der omgiver et udtryk, der indeholder et eller flere argumenter. Alle funktioner kræver mindst et argument.

V. Salg er der henvist til bordet.

VI. En argument overfører en værdi til en funktion. Den refererede kolonne [SalesAmount] er et argument, som SUM-funktionen kender den kolonne, som den skal samle et SUM på.

Kort sagt, du kan læse det som, ' For det mål, der hedder Samlet salg, beregnes (=) SUM af værdier i kolonnen [Salgsmængde] i salgstabellen. ”

& sparPower BI DAX-editoren indeholder en forslagsfunktion, som hjælper dig med at oprette syntaktisk korrekte formler ved at foreslå dig de rigtige elementer.

Sammenhæng

Sammenhæng er et af de vigtigste af de 3 DAX-koncepter. Når man taler om kontekst, kan dette henvise til en af ​​de to typer Rækkekontekst og Filtrer kontekst .

Brugt overvejende mens man taler om Foranstaltninger , det Række-kontekst betragtes nemmest som den aktuelle række. Det gælder, når en formel har en funktion, der anvender filtre til at identificere en enkelt række i en tabel.

Filter-kontekst er lidt sværere at forstå end Row-Context. Du kan nemmest tænke på filterkonteksten som et eller flere filtre anvendt i en beregning. DetFilter-kontekst findes ikke i række-kontekstens sted. Det gælder snarere foruden det førstnævnte. Se på følgende DAX-formel.

Denne formel indeholder følgende syntakselementer:

JEG. Foranstaltningens navn Butiksalg .

II. Det er lig med tegnoperatør (=) angiver begyndelsen af ​​formlen.

III. Det BEREGN funktion evaluerer et udtryk som et argument.

IV. Parentes () omgiver et udtryk, der indeholder et eller flere argumenter.

V. En foranstaltning [Samlet salg] i samme tabel som et udtryk.

VI. TIL komma (,) adskiller det første udtryksargument fra filterargumentet.

KOMMER DU. Den fuldt kvalificerede kolonne, der refereres til, Kanal [ChannelName] er vores række-kontekst. Hver række i denne kolonne angiver en kanal, butik, online osv.

VIII. Den særlige værdi, butik bruges som filter. Dette er vores filterkontekst.

Denne formel sikrer at det samlede salgsmål beregnes kun for rækker i kolonnen Channel [ChannelName] med værdien 'Store' som et filter.

Funktioner

Funktioner er foruddefinerede, strukturerede og ordnede formler. De udfører beregninger ved hjælp af argumenter videregivet til dem. Disse argumenter kan være tal, tekst, logiske værdier eller andre funktioner.

Grundlæggende om Power BI DAX: Beregnede søjler og målinger

I denne blog vil vi fokusere på Power BI DAX-formler, der bruges i beregninger, i Foranstaltninger og Beregnede kolonner .

Beregnede kolonner

Når du opretter en datamodel på Power BI Desktop, kan du udvide en tabel ved at oprette nye kolonner. Indholdet af kolonnerne er defineret af et DAX-udtryk, evalueret række for række eller i sammenhæng med den aktuelle række på tværs af denne tabel.

I datamodeller til DAX optager imidlertid alle beregnede kolonner plads i hukommelsen og beregnes under tabelbehandling.

Denne adfærd er nyttig til at resultere i bedre brugeroplevelse, men den bruger dyrebar RAM og er derfor en dårlig vane i produktionen, fordi hver mellemberegning er gemt i RAM og spilder dyrebar plads.

Foranstaltninger

Der er en anden måde at definere beregninger i en DAX-model, der er nyttig, hvis du har brug for at arbejde på samlede værdier i stedet for på række for række. Disse beregninger er mål. Et af kravene til DAX er, at et mål skal defineres i en tabel. Foranstaltningen hører imidlertid ikke rigtig til bordet. Så du kan flytte et mål fra en tabel til en anden uden at miste dens funktionalitet.

Beregnede søjler vs målinger

Mål og beregnede kolonner bruger begge DAX-udtryk. Forskellen er sammenhæng med evaluering. Et mål evalueres i sammenhæng med den celle, der evalueres i en rapport eller i en DAX-forespørgsel, mens en beregnet kolonne beregnes på rækkeniveau inden for den tabel, den hører til.

Selvom de ligner hinanden, er der stor forskel mellem beregnede kolonner og mål. Værdien af ​​en beregnet kolonne beregnes under en dataopdatering og bruger den aktuelle række som en kontekst, det afhænger ikke af brugerinteraktion i rapporten.

Derfor skal du definere en beregnet kolonne, når du vil gøre følgende

  • Placer de beregnede resultater i en udskæring, eller se resultaterne i rækker eller kolonner i en pivottabel (i modsætning til værdiområdet) eller i akserne i et diagram, eller brug resultatet som en filtertilstand i en DAX-forespørgsel.
  • Definer et udtryk, der er strengt bundet til den aktuelle række. For eksempel kan Pris * Mængde ikke arbejde i gennemsnit eller på en sum af de to kolonner.
  • Kategoriser tekst eller tal. For eksempel en række værdier for et mål.

Et mål fungerer på aggregeringer af data defineret af den aktuelle kontekst, hvilket afhænger af det anvendte filter i rapporten - f.eks. Udskæring, rækker og kolonnevalg i en pivottabel eller akser og filtre anvendt på et diagram.

Så du skal definere et mål, når du vil vise resulterende beregningsværdier, der afspejler brugervalg, f.eks

  • Når du beregner profitprocenten på et bestemt udvalg af data.
  • Når du beregner forholdet mellem et produkt sammenlignet med alle produkter, men holder filteret både efter år og region.

Grundlæggende om Power BI DAX: Typer af funktioner i DAX

1. Samlede funktioner

MIN

Denne DAX-funktion rangiver den minimale numeriske værdi i en kolonne eller mellem to skalære udtryk.

Syntaks

MIN()

Eksempel

=MIN([ResellerMargin])

hvordan man lærer visuelt studie

MINA

Denne DAX-funktion returner minimumsværdien i en kolonne, inklusive eventuelle logiske værdier og tal, der er repræsenteret som tekst.

Syntaks

MINA()

Eksempel

=MINA(([Postnummer])

MINX

Denne DAX-funktion vender tilbageden minimale numeriske værdi, der er resultatet af evaluering af et udtryk for hver række i en tabel.

Syntaks

MINX(

,)

Eksempel

=MINX(FILTER(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Fragt] + InternetSales [TaxAmt])

MAX

Denne DAX-funktion rangiver den maksimale værdi i en kolonne, inklusive eventuelle logiske værdier og tal, der er repræsenteret som tekst.

Syntaks

MAX()

Eksempel

=MAX([ResellerMargin])

MAX

Denne DAX-funktion rangiver den maksimale værdi i en kolonne, inklusive eventuelle logiske værdier og tal, der er repræsenteret som tekst.

Syntaks

MAX()

Eksempel

=MAX(([Postnummer])

MAXX

Denne DAX-funktion vender tilbageden maksimale numeriske værdi, der er resultatet af evaluering af et udtryk for hver række i en tabel.

Syntaks

MAXX(

,)

Eksempel

=MAXX(FILTER(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Fragt] + InternetSales [TaxAmt])

SUM

Denne DAX-funktion adds alle numrene i en kolonne.

Syntaks

SUM()

Eksempel

=SUM(Salgskontor])

GENNEMSNIT

Denne DAX-funktion returner det aritmetiske gennemsnit af værdierne i en kolonne.

Syntaks

GENNEMSNIT()

Eksempel

=GENNEMSNIT(InternetSales [ExtendedSalesAmount])

sumx

Denne DAX-funktion returerer summen af ​​et udtryk, der evalueres for hver række i en tabel.

Syntaks

sumx(

,)

Eksempel

=sumx(FILTER(InternetSales, InternetSales [SalesTerritoryID] =5),[Fragt])

AVERAGEX

Denne DAX-funktion cberegner det aritmetiske gennemsnit af et sæt udtryk, der evalueres over en tabel.

Syntaks

AVERAGEX(

,)

Eksempel

=AVERAGEX(InternetSales, InternetSales [Fragt] + InternetSales [TaxAmt])

2. Tællefunktioner

DISTINCTCOUNT

Dette er en DAX-funktion, der bruges til at returnere det forskellige antal varer i en kolonne. Så hvis der er flere numre af det samme emne, tæller denne funktion det som et enkelt emne.

Syntaks

DISTINCTCOUNT()

Eksempel

=DISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])

TÆLLE

Dette er en DAX-funktion, der bruges til at returnere antallet af varer i en kolonne. Så hvis der er flere numre af det samme emne, tæller denne funktion det som separate emner og ikke som et enkelt emne.

Syntaks

TÆLLE()

Eksempler

=TÆLLE([Dato for afsendelse])

COUNTA

Dette er en DAX-funktion, der bruges til at returnere antallet af varer i en kolonne, der ikke er tom.

Syntaks

COUNTA()

Eksempel

=COUNTA('Forhandler' [Telefon])

COUNTROWS

Dette er en DAX-funktion, dertæller antallet af rækker i den angivne tabel eller i en tabel defineret af et udtryk.

Syntaks

COUNTROWS(

)

Eksempel

=COUNTROWS('Ordre:% s')

COUNTBLANK

Dette er en DAX-funktion, dertæller antallet af tomme celler i en kolonne.

Syntaks

COUNTBLANK()

Eksempel

=COUNTBLANK(Forhandler [Banknavn])

3. Dato-tid-funktioner

DATO

Denne DAX-funktion rangiver den angivne dato i formatet Date-Time.

Syntaks

DATO(<år>,<måned>,<dag>)

Eksempel

=DATO(2019,12, 17)

TIME

Denne DAX-funktion rangiver den angivne time som et tal fra 0 til 23 (12:00 AM til 11:00 PM).

Syntaks

TIME()

Eksempel

=TIME('Ordrer' [Transaktionstid])

I DAG

Denne DAX-funktion rgentager den aktuelle dato.

Syntaks

I DAG()

NU

Denne DAX-funktion rangiver den aktuelle dato og klokkeslæt i formatet Dato-tid.

Syntaks

NU()

EOMONTH

Denne DAX-funktion rangiver datoen i formatet Date-Time for den sidste dag i måneden før eller efter et bestemt antal måneder.

Syntaks

EOMONTH(,)

Eksempel

=EOMONTH(3. marts 2008,1.5)

4. Matematiske funktioner

AFSNIT

Denne DAX-funktion returerer den absolutte værdi af det angivne tal.

Syntaks

AFSNIT()

Eksempel

=ABS ([DealerPrice] - [ListPrice])

EXP

Denne DAX-funktion returerer værdien af ​​e hævet til styrken for det givne nummer.

Syntaks

EXP()

Eksempel

= EXP ([Power])

FAKTUM

Denne DAX-funktion rfortæller et tals faktor.

Syntaks

FAKTUM()

Eksempel

= FAKTA ([Værdier])

LN

Denne DAX-funktion returerer den naturlige log for det givne nummer.

Syntaks

LN()

Eksempel

= LN ([Værdier])

LOG

Denne DAX-funktion returner loggen med basis af det givne nummer.

Syntaks

LOG(,)

Eksempel

Alle følgende returnerer det samme resultat, 2.

= LOG (100,10)

= LOG (100)

=LOG10(100)

PI

Denne DAX-funktion returerer værdien af ​​Pi.

Syntaks

PI()

STRØM

Denne DAX-funktion ræterer værdien af ​​det første argument hævet til det andet argument.

Syntaks

STRØM(,<strøm>)

Eksempel

= STRØM (5,2)

KVOTIENT

Denne DAX-funktion udfører division returerer heltalets del af kvotienten.

Syntaks

KVOTIENT(,)

Eksempel

= KVOTIENT (5,2)

SKILT

Denne DAX-funktion returnerer tegnet på et givet nummer.

Syntaks

SKILT()

Eksempel

= SIGN (([Udsalgspris] - [Omkostningspris]))

SQRT

Denne DAX-funktion returerer kvadratroden af ​​det givne nummer.

Syntaks

SQRT()

Eksempel

= SQRT (25)

5. Logiske funktioner

OG

Denne DAX-funktion udfører logisk AND (sammenhæng) på to udtryk. For at AND skal være sandt, skal begge angivne betingelser være opfyldt.

Syntaks

OG(,)

Eksempel

= HVIS (OG (10>9, -10 <-en),'Alt sandt','En eller flere falske'

Fordi begge betingelser, der er sendt som argumenter, til AND-funktionen er sande, returnerer formlen 'Alle sande'.

ELLER

Denne DAX-funktion udfører logisk ELLER (disjunction) på to udtryk. For at OR skal være sand, skal en af ​​de to angivne betingelser være opfyldt.

Syntaks

ELLER(,)

Eksempel

= HVIS (ELLER (10>9, -10> -en),'Sand','Falsk'

Da en af ​​betingelserne, der sendes som argumenter, til ELLER-funktionen er sand, returnerer formlen 'Sand'.

IKKE

Denne DAX-funktion udfører logisk IKKE (negation) på givet udtryk.

Syntaks

IKKE()

Eksempel

= IKKE ([BeregnetKolonne1])

For hver række i beregnet kolonne1 returnerer IKKE-funktionen det logiske modsatte af den givne værdi.

HVIS

Denne DAX-funktion tester en række input for den, der opfylder den betingelse, der er angivet i argumentet.

Syntaks

HVIS(logisk_test> ,, værdi_om_falsk)

Eksempel

= HVIS ([Opkald]<200,'lav', IF ([Opkald]<300,'medium','høj'))

FEJL

Denne DAX-funktion evurderer et udtryk og returnerer en specificeret værdi, hvis udtrykket returnerer en fejl.

Syntaks

FEJL(værdi, værdi_om_fejl)

Eksempel

= FEJL (25/0,9999)

6. Informationsfunktioner

ISBLANK

Denne DAX-funktionreturnerer SAND eller FALSK efterchecking om en værdi er tom.

Syntaks

ISBLANK(<værdi>)

Eksempel

= HVIS (ISBLANK ('CalculatedMeasures' [PreviousYearTotalSales]), BLANK (), ('CalculatedMeasures' [Total Sales] - 'CalculatedMeasures' [PreviousYearTotalSales]) / 'CalculatedMeasures' [PreviousYearTotalSales])

ISNUMBER

Denne DAX-funktionreturnerer SAND eller FALSK efterchecking om en værdi er numerisk.

Syntaks

ISNUMBER(<værdi>)

Eksempel

= HVIS (ISNUMBER (0),'Er nummer','Er ikke nummer')

ISTEXT

Denne DAX-funktionreturnerer SAND eller FALSK efterchecking om en værdi er en tekst.

Syntaks

ISTEXT(<værdi>)

Eksempel

= HVIS (ISTEXT ('tekst'),'Er tekst','Er ikke-tekst')

ISNONTEXT

Denne DAX-funktionreturnerer SAND eller FALSK efterchecking om en værdi ikke er tekst.

Syntaks

ISNONTEXT(<værdi>)

Eksempel

= HVIS (ISNONTEXT ('tekst'),'Er ikke-tekst','Er tekst')

FEJL

Denne DAX-funktionreturnerer SAND eller FALSK efterchecking om en værdi er en fejl.

Syntaks

ISERROE(<værdi>)

Eksempel

= HVIS (ISERROR (SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD])), BLANK (), SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount)

7. Tekstfunktioner

CONCATENATE

Denne DAX-funktion jsmører to tekststrenge i en.

Syntaks

CONCATENATE(,)

Eksempel

= CONCATENATE ('Hej', 'Verden')

CONCATENATEX

Denne DAX-funktionresultatet af et udtryk, der evalueres for hver række i en tabel.

Syntaks

CONCATENATEX(

,, [afgrænser])

Eksempel

= CONCATENATEX (Medarbejdere, [FirstName] & '' & [LastName], ',')

FAST

Denne DAX-funktion rounds et tal til det angivne antal decimaler og returnerer resultatet som tekst.

Syntaks

FAST(,,)

Eksempel

= FAST ([PctCost],3,en)

ERSTATTE

Denne DAX-funktionerstatter en del af en tekststreng baseret på antallet af tegn, du angiver, med en anden tekststreng.

Syntaks

ERSTATTE(,,,)

Eksempel

= UDSKIFT ('Nye produkter' [Produktkode],en,2,'OB')

SØG

Denne DAX-funktion rangiver antallet af tegn, hvor en bestemt tekststreng først findes.

Syntaks

SØG(, [, [] [,]])

Eksempel

= SØG ('n','printer')

Formlen returnerer 4, fordi 'n' er det fjerde tegn i ordet 'printer'.

ØVERST

Denne DAX-funktion vender tilbageen tekststreng i alle store bogstaver.

Syntaks

ØVERST()

Eksempel

= ØVRE (['Nye produkter' [Produktkode])

Grundlæggende om Power BI DAX: Oprettelse af dit første mål

Forudsætning: Du skal åbne denne givne Power BI Desktop-fil .

Da jeg antager, at dette bliver din første, skriver jeg denne smule detaljeret, så du kan følge med.

  1. I feltlisten over Rapportvisning , højreklik på Salg tabel, efterfulgt af Nyt mål .

  2. Erstatte Måle ved at indtaste et nyt målnavn Tidligere kvartalsalg, i Formel Bar .

  3. I denne formel vil du bruge BEREGN fungere. Så efter ligetegnet skal du skrive de første par bogstaver CAL , og dobbeltklik derefter på den funktion, du vil bruge.

  4. Funktionen BEREGNE har mindst to argumenter. Den første er det udtryk, der skal evalueres, og det andet er et Filter .

  5. Efter åbningen parentes ( til BEREGN funktion, type SUM efterfulgt af endnu en parentes ( at give et argument til SUM fungere.

  6. Begynd at skrive Salt , og vælg derefter Salg [SalesAmount] efterfulgt af en afsluttende parentes ) . Dette er det første udtryksargument for vores BEREGN fungere.

  7. Skriv en komma (,) efterfulgt af et mellemrum for at angive det første filter, og skriv derefter FORRIGE KVARTER . Dette vil være vores filter.

  8. Du bruger FORRIGE KVARTER tidsintelligensfunktion til filtrering SUM resultater fra det foregående kvartal.

  9. Efter den indledende parentes ( for den FORRIGE KVARTER-funktion skal du skrive Kalender [DateKey] .

  10. Det FORRIGE KVARTER funktionen har et argument, en kolonne, der indeholder et sammenhængende interval af datoer. I vores tilfælde er det det DateKey kolonne i kalendertabellen.

  11. Sørg for, at både argumenterne, der sendes til FORRIGE KVARTER, og funktionen BEREGNE er lukket ved at skrive to lukkede parenteser )) .

  12. Din formel skal nu se ud som følgende
    Tidligere kvartalsalg = BEREGNE (SUM (Salg [SalesAmount]), FORRIGE KVARTER (Kalender [DateKey])

  13. Klik på fluebenet i formellinjen, eller tryk på Enter for at validere formlen.

Når du har føjet det til din model, voila! Du oprettede lige et mål ved hjælp af DAX, og ikke en let på det.

Hvad denne formel gør er beregne det samlede salg for det foregående kvartal afhængigt af de filtre, der er anvendt i en rapport.

Så lad os hvis vi skulle sætte det Salgsbeløb og vores nye Tidligere kvartalsalg måle i et diagram og derefter tilføje År og QuarterOfYear som Skiver, vi ville få noget i retning af følgende

Nu hvor du har en grundlæggende forståelse af begreberne i Power BI DAX, kan du begynde at oprette DAX-formler til mål på egen hånd. Faktisk kan det være lidt vanskeligt at lære, menDAX har eksisteret i flere år ogder er mange ressourcer tilgængelige på nettet. Efter at have læst igennem denne blog og et lille eksperiment kan du lære at finde forretningsløsninger gennem Power BI DAX.