Beginnen met DAX in Power BI



Deze Edureka-blog helpt je om te beginnen met de Power BI DAX Basics of Data Analytics Expressions als Power BI nieuw voor je is met de syntaxis en voorbeelden.

Deze blog is in wezen ontworpen voor gebruikers die nieuw zijn bij de en is bedoeld om u snel en gemakkelijk door een formuletaal te laten lopen die Uitdrukkingen voor gegevensanalyse (DAX) .Als u bekend bent met functies in MS Excel of , veel van de formules hierin Power BI DAX Basics artikel zal op jou lijken.

Dat gezegd hebbende, hier zijn de concepten die een integraal onderdeel van alles vormen , nadat u hebt geleerd dat u een goed begrip moet hebben van de meest fundamentele concepten in DAX.





Power BI DAX Basics: Wat is DAX?

Dus laten we beginnen met de basisprincipes van Power BI DAX, oké?

Het is vrij eenvoudig om rapporten te maken met Power BI Desktop, die meteen waardevolle inzichten opleveren.



Maar wat als u het groeipercentage voor alle productcategorieën en voor alle verschillende datumbereiken moet analyseren? Of moet u de jaarlijkse groei van uw bedrijf berekenen in vergelijking met marktreuzen?

Door DAX te leren, kunt u het meeste uit uw en echte zakelijke problemen oplossen.

DAX bestaat uit functies, operatoren en constanten die in de vorm van formules kunnen worden geplaatst om waarden te berekenen met behulp van gegevens die al in uw model aanwezig zijn.



De Power BI DAX bevat een bibliotheek met meer dan 200 functies, operators en constructies. De bibliotheek biedt een enorme flexibiliteit bij het maken van maatregelen om resultaten te berekenen voor vrijwel elke behoefte aan gegevensanalyse.

Power BI DAX Basics: hoe werkt het?

Laat me je allereerst uitleggen hoe dit werkt.We zullen ons begrip van Power BI DAX grotendeels omkaderen rond drie fundamentele concepten: Syntaxis , Context , en Functies .

Natuurlijk zijn er hier andere belangrijke concepten, maar als u deze drie begrijpt, krijgt u de beste basis waarop u uw vaardigheden gaat bouwen.

Syntaxis

De Syntaxis bestaat uit verschillende componenten waaruit een formule bestaat en hoe deze is geschreven. L.kijk eens naar deze simpele DAX-formule.

Wanneer u een DAX-formule probeert te begrijpen, is het vaak handig om elk van de elementen op te splitsen in een taal die u elke dag denkt en spreekt. Deze formule bevat dus de volgende syntaxiselementen:

Syntaxis - Power BI DAX - Edureka

IK. Totale verkoop is de maatnaam.

II. De is gelijk aan-teken operator (=) geeft het begin van de formule aan.

III. SOM telt alle getallen in de kolom op, Verkoop [SalesAmount] .

IV. Er zijn deze haakjes () die een uitdrukking omringen die een of meer argumenten bevat. Alle functies hebben ten minste één argument nodig.

V. verkoop is de tabel waarnaar wordt verwezen.

WIJ. Een argument geeft een waarde door aan een functie. De kolom waarnaar wordt verwezen [SalesAmount] is een argument waarmee de functie SOM de kolom kent waarop hij een SOM moet aggregeren.

Simpel gezegd, je kunt het lezen als, ' Voor de meting met de naam Totale verkoop berekent u (=) de SOM van waarden in de kolom [SalesAmount] in de tabel Verkoop. '

& schoppenDe Power BI DAX-editor bevat een suggestiefunctie, waarmee u syntactisch correcte formules kunt maken door u de juiste elementen voor te stellen.

Context

Context is een van de belangrijkste van de 3 DAX-concepten. Wanneer men spreekt over context, kan dit verwijzen naar een van de twee typen Rij context en Filter context .

Overwegend gebruikt terwijl er over wordt gesproken Maatregelen , de Rij-context wordt het gemakkelijkst gezien als de huidige rij. Het is van toepassing wanneer een formule een functie heeft die filters toepast om een ​​enkele rij in een tabel te identificeren.

Filtercontext is iets moeilijker te begrijpen dan de Row-Context. U kunt de filtercontext het gemakkelijkst zien als een of meer filters die in een berekening zijn toegepast. DeFilter-Context bestaat niet in de plaats van de Row-context. Het is eerder van toepassing naast het eerste. Bekijk de volgende DAX-formule.

Deze formule bevat de volgende syntaxiselementen:

IK. De maatnaam Winkelverkoop .

II. De is gelijk aan-teken operator (=) geeft het begin van de formule aan.

III. De BEREKENEN functie evalueert een uitdrukking als een argument.

IV. Haakjes () omring een uitdrukking die een of meer argumenten bevat.

V. Een waarde [Totale verkoop] in dezelfde tabel als een uitdrukking.

WIJ. NAAR komma (,) scheidt het eerste uitdrukkingargument van het filterargument.

KOM JE. De volledig gekwalificeerde kolom waarnaar wordt verwezen, Kanaal [ChannelName] is onze rij-context. Elke rij in deze kolom specificeert een kanaal, Store, Online, etc.

VIII. De bijzondere waarde, Op te slaan wordt gebruikt als filter. Dit is onze filtercontext.

Deze formule zorgt voor dat de totale verkoopwaarde wordt alleen berekend voor rijen in de kolom Kanaal [ChannelName] met de waarde 'Store' als filter.

Functies

Functies zijn voorgedefinieerde, gestructureerde en geordende formules. Ze voeren berekeningen uit met argumenten aan hen doorgegeven. Deze argumenten kunnen getallen, tekst, logische waarden of andere functies zijn.

Power BI DAX Basics: Berekende kolommen en maten

In deze blog gaan we ons concentreren op de Power BI DAX-formules die in berekeningen worden gebruikt, in Maatregelen en Berekende kolommen .

Berekende kolommen

Wanneer u een gegevensmodel op Power BI Desktop maakt, kunt u een tabel uitbreiden door nieuwe kolommen te maken. De inhoud van de kolommen wordt gedefinieerd door een DAX-expressie, rij voor rij geëvalueerd of in de context van de huidige rij in die tabel.

In datamodellen voor DAX nemen alle berekende kolommen echter ruimte in het geheugen in beslag en worden ze berekend tijdens de verwerking van de tabel.

Dit gedrag is nuttig bij het resulteren in een betere gebruikerservaring, maar het gebruikt kostbare RAM en is daarom een ​​slechte gewoonte bij de productie, omdat elke tussenliggende berekening wordt opgeslagen in RAM en kostbare ruimte verspilt.

Maatregelen

Er is een andere manier om berekeningen in een DAX-model te definiëren, handig als u met geaggregeerde waarden moet werken in plaats van per rij. Deze berekeningen zijn maatregelen. Een van de vereisten van DAX is dat een meting in een tabel moet worden gedefinieerd. De maat hoort echter niet echt bij de tafel. U kunt dus een meetwaarde van de ene tabel naar de andere verplaatsen zonder de functionaliteit te verliezen.

Berekende kolommen versus metingen

Metingen en berekende kolommen gebruiken beide DAX-expressies. Het verschil is de context van evaluatie. Een meetwaarde wordt geëvalueerd in de context van de cel die is geëvalueerd in een rapport of in een DAX-query, terwijl een berekende kolom wordt berekend op rijniveau binnen de tabel waartoe deze behoort.

Zelfs als ze er hetzelfde uitzien, is er een groot verschil tussen berekende kolommen en metingen. De waarde van een berekende kolom wordt berekend tijdens het vernieuwen van gegevens en gebruikt de huidige rij als context; deze is niet afhankelijk van gebruikersinteractie in het rapport.

Daarom moet u een berekende kolom definiëren wanneer u het volgende wilt doen

  • Plaats de berekende resultaten in een slicer of bekijk de resultaten in rijen of kolommen in een draaitabel (in tegenstelling tot het waardengebied) of in de assen van een diagram, of gebruik het resultaat als filtervoorwaarde in een DAX-query.
  • Definieer een uitdrukking die strikt is gebonden aan de huidige rij. Prijs * Hoeveelheid kan bijvoorbeeld niet werken op basis van een gemiddelde of een som van de twee kolommen.
  • Categoriseer tekst of cijfers. Bijvoorbeeld een reeks waarden voor een meetwaarde.

Een meetwaarde werkt op basis van aggregaties van gegevens die zijn gedefinieerd door de huidige context, die afhankelijk is van het filter dat in het rapport is toegepast, zoals de selectie van slicers, rijen en kolommen in een draaitabel of assen en filters die op een diagram zijn toegepast.

U moet dus een meetwaarde definiëren wanneer u resulterende rekenwaarden wilt weergeven die gebruikersselecties weerspiegelen, zoals

  • Wanneer u het winstpercentage berekent op een bepaalde selectie gegevens.
  • Wanneer u de verhoudingen van een product ten opzichte van alle producten berekent, maar het filter zowel per jaar als per regio houdt.

Power BI DAX Basics: Typen functies in DAX

1. Geaggregeerde functies

MIN

Deze DAX-functie returneert de minimale numerieke waarde in een kolom of tussen twee scalaire uitdrukkingen.

Syntaxis

kan een constructor privé zijn

MIN()

Voorbeeld

=MIN([ResellerMargin])

MINA

Deze DAX-functie rretourneert de minimumwaarde in een kolom, inclusief eventuele logische waarden en getallen die als tekst worden weergegeven.

Syntaxis

MINA()

Voorbeeld

=MINA(([Postcode])

MINX

Deze DAX-functie retourneertde minimale numerieke waarde die het resultaat is van het evalueren van een uitdrukking voor elke rij van een tabel.

Syntaxis

MINX(

,)

Voorbeeld

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

MAX

Deze DAX-functie returneert de maximale waarde in een kolom, inclusief eventuele logische waarden en getallen die als tekst worden weergegeven.

Syntaxis

MAX()

Voorbeeld

=MAX([ResellerMargin])

MAX

Deze DAX-functie returneert de maximale waarde in een kolom, inclusief eventuele logische waarden en getallen die als tekst worden weergegeven.

Syntaxis

MAX()

Voorbeeld

=MAX(([Postcode])

MAXX

Deze DAX-functie retourneertde maximale numerieke waarde die het resultaat is van het evalueren van een uitdrukking voor elke rij van een tabel.

Syntaxis

MAXX(

,)

Voorbeeld

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

SOM

Deze DAX-functie adds alle nummers in een kolom.

Syntaxis

SOM()

Voorbeeld

=SOM(Verkoop [kantoor])

GEMIDDELDE

Deze DAX-functie rdraait het rekenkundig gemiddelde van de waarden in een kolom om.

Syntaxis

GEMIDDELDE()

Voorbeeld

=GEMIDDELDE(InternetSales [ExtendedSalesAmount])

sumx

Deze DAX-functie returneert de som van een uitdrukking die voor elke rij in een tabel wordt geëvalueerd.

Syntaxis

sumx(

,)

Voorbeeld

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

GEMIDDELDEX

Deze DAX-functie cberekent het rekenkundig gemiddelde van een reeks uitdrukkingen die over een tabel worden geëvalueerd.

Syntaxis

GEMIDDELDEX(

,)

Voorbeeld

=GEMIDDELDEX(InternetSales, InternetSales [Freight] + InternetSales [TaxAmt])

2. Telfuncties

DISTINCTCOUNT

Dit is een DAX-functie die wordt gebruikt om het unieke aantal items in een kolom te retourneren. Dus als er meerdere nummers van hetzelfde item zijn, telt deze functie het als één item.

Syntaxis

DISTINCTCOUNT()

Voorbeeld

=DISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])

AANTAL

Dit is een DAX-functie die wordt gebruikt om het aantal items in een kolom te retourneren. Dus als er meerdere nummers van hetzelfde item zijn, telt deze functie het als afzonderlijke items en niet als één item.

Syntaxis

AANTAL()

Voorbeelden

=AANTAL([Verzenddatum])

COUNTA

Dit is een DAX-functie die wordt gebruikt om het aantal items in een kolom te retourneren die niet leeg is.

Syntaxis

COUNTA()

Voorbeeld

=COUNTA('Reseller' [telefoon])

COUNTROWS

Dit is een DAX-functie dietelt het aantal rijen in de opgegeven tabel of in een tabel die is gedefinieerd door een uitdrukking.

Syntaxis

COUNTROWS(

)

Voorbeeld

=COUNTROWS('Bestellingen')

COUNTBLANK

Dit is een DAX-functie dietelt het aantal lege cellen in een kolom.

Syntaxis

COUNTBLANK()

Voorbeeld

=COUNTBLANK(Reseller [BankName])

3. Datum-tijdfuncties

DATUM

Deze DAX-functie returneert de opgegeven datum in het datum-tijdformaat.

Syntaxis

DATUM(<jaar>,<maand>,<dag>)

Voorbeeld

=DATUM(2019,12, 17)

UUR

Deze DAX-functie rverandert het opgegeven uur als een getal van 0 tot 23 (12:00 uur 's ochtends tot 23:00 uur).

Syntaxis

UUR()

Voorbeeld

=UUR('Orders' [TransactionTime])

VANDAAG

Deze DAX-functie rretourneert de huidige datum.

Syntaxis

VANDAAG()

NU

Deze DAX-functie returneert de huidige datum en tijd in het datum-tijdformaat.

Syntaxis

NU()

EOMONTH

Deze DAX-functie rRetourneert de datum in datum-tijd-formaat van de laatste dag van de maand, voor of na een bepaald aantal maanden.

Syntaxis

EOMONTH(,)

Voorbeeld

=EOMONTH('3 maart 2008',1.5)

4. Wiskundige functies

SECTIE

Deze DAX-functie returneert de absolute waarde van het gegeven getal.

Syntaxis

SECTIE()

Voorbeeld

=ABS ([DealerPrice] - [ListPrice])

EXP

Deze DAX-functie returneert de waarde van e verheven tot de macht van het opgegeven getal.

Syntaxis

EXP()

Voorbeeld

= EXP ([Kracht])

FEIT

Deze DAX-functie returneert de faculteit van een getal.

Syntaxis

FEIT()

Voorbeeld

= FEIT ([Waarden])

LN

Deze DAX-functie rdraait de natuurlijke log van het opgegeven getal om.

Syntaxis

LN()

Voorbeeld

= LN ([Waarden])

LOG

Deze DAX-functie rdraait het logboek om met de basis van het opgegeven getal.

Syntaxis

LOG(,)

Voorbeeld

Alle volgende retourneren hetzelfde resultaat, 2.

= LOG (100,10)

= LOG (100)

= LOG10 (100)

PI

Deze DAX-functie returns de waarde van Pi.

Syntaxis

PI()

VERMOGEN

Deze DAX-functie returneert de waarde van het eerste argument verheven tot de macht van het tweede argument.

Syntaxis

VERMOGEN(,<kracht>)

Voorbeeld

= VERMOGEN (5,2)

QUOTIËNT

Deze DAX-functie voert deling r uiteturneert het gehele deel van het quotiënt.

Syntaxis

QUOTIËNT(,)

Voorbeeld

= QUOTIËNT (5,2)

TEKEN

Deze DAX-functie retourneert het teken van een bepaald getal.

Syntaxis

TEKEN()

Voorbeeld

= TEKEN (([Verkoopprijs] - [Kostprijs]))

SQRT

Deze DAX-functie rdraait de vierkantswortel van het opgegeven getal om.

Syntaxis

SQRT()

Voorbeeld

= SQRT (25)

5. Logische functies

EN

Deze DAX-functie voert logische AND (conjunctie) uit op twee expressies. Om AND true te laten retourneren, moet aan beide opgegeven voorwaarden zijn voldaan.

Syntaxis

EN(,)

Voorbeeld

= ALS (EN (10>9, -10 <-een),'Allemaal waar','Een of meer valse'

Omdat beide voorwaarden, die als argumenten zijn doorgegeven aan de functie EN waar zijn, retourneert de formule 'Alles waar'.

OF

Deze DAX-functie voert logische OR (disjunctie) uit op twee expressies. Om OR waar te geven, moet aan een van de twee opgegeven voorwaarden zijn voldaan.

Syntaxis

OF(,)

Voorbeeld

= ALS (OF (10>9, -10> -een),'Waar','Onwaar'

Omdat een van de voorwaarden, die als argumenten aan de OR-functie zijn doorgegeven, waar is, retourneert de formule 'Waar'.

NIET

Deze DAX-functie voert logische NOT (negatie) uit op een gegeven uitdrukking.

Syntaxis

NIET()

Voorbeeld

= NOT ([CalculatedColumn1])

Voor elke rij in Berekende kolom1 retourneert de functie NIET het logische tegenovergestelde van de opgegeven waarde.

ALS

Deze DAX-functie test een reeks invoer voor degene die voldoet aan de voorwaarde die is opgegeven in het argument.

Syntaxis

ALS(logical_test> ,, value_if_false)

Voorbeeld

= ALS ([Oproepen]<200,'laag', IF ([Oproepen]<300,'medium','hoog'))

IFFOUT

Deze DAX-functie ewaardeert een uitdrukking en retourneert een opgegeven waarde als de uitdrukking een fout retourneert.

Syntaxis

IFFOUT(waarde, waarde_if_fout)

Voorbeeld

= IFERROR (25/0,9999)

6. Informatiefuncties

ISBLANK

Deze DAX-functiegeeft WAAR of ONWAAR terug naccontroleren of een waarde leeg is.

Syntaxis

ISBLANK(<waarde>)

Voorbeeld

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

ISNUMMER

Deze DAX-functiegeeft WAAR of ONWAAR terug naccontroleren of een waarde numeriek is.

Syntaxis

ISNUMMER(<waarde>)

Voorbeeld

= ALS (ISNUMBER (0),'Is nummer','Is geen nummer')

ISTEKST

Deze DAX-functiegeeft WAAR of ONWAAR terug nacnagaan of een waarde een tekst is.

Syntaxis

ISTEKST(<waarde>)

Voorbeeld

= ALS (ISTEKST ('tekst'),'Is tekst','Is geen tekst')

ISNONTEXT

Deze DAX-functiegeeft WAAR of ONWAAR terug nacnagaan of een waarde geen tekst is.

Syntaxis

ISNONTEXT(<waarde>)

Voorbeeld

= ALS (ISNONTEXT ('tekst'),'Is geen tekst','Is tekst')

ISFOUT

Deze DAX-functiegeeft WAAR of ONWAAR terug nacnagaan of een waarde een fout is.

Syntaxis

ISERROE(<waarde>)

Voorbeeld

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

7. Tekstfuncties

CONCATENEREN

Deze DAX-functie joins twee tekstreeksen in één.

Syntaxis

CONCATENEREN(,)

Voorbeeld

= CONCATENATE ('Hallo', 'Wereld')

CONCATENATEX

Deze DAX-functiehet resultaat van een uitdrukking geëvalueerd voor elke rij in een tabel.

Syntaxis

CONCATENATEX(

`` [scheidingsteken])

Voorbeeld

= CONCATENATEX (Werknemers, [Voornaam] & '' & [Achternaam], ',')

GEMAAKT

Deze DAX-functie rrondt een getal af op het opgegeven aantal decimalen en retourneert het resultaat als tekst.

Syntaxis

GEMAAKT(,,)

Voorbeeld

= VAST ([PctCost],3,een)

VERVANGEN

Deze DAX-functievervangt een deel van een tekstreeks, gebaseerd op het aantal tekens dat u opgeeft, door een andere tekstreeks.

Syntaxis

VERVANGEN(,,,)

Voorbeeld

= REPLACE ('Nieuwe producten' [Productcode],een,2,'OB')

ZOEKEN

Deze DAX-functie returns het aantal tekens waarop een specifieke tekstreeks voor het eerst wordt gevonden.

Syntaxis

ZOEKEN(, [, [] [,]])

Voorbeeld

= ZOEKEN ('n','printer')

De formule retourneert 4 omdat 'n' het vierde teken is in het woord 'printer'.

BOVENSTE

Deze DAX-functie retourneerteen tekstreeks in hoofdletters.

Syntaxis

BOVENSTE()

Voorbeeld

= UPPER (['Nieuwe producten' [Productcode])

Power BI DAX Basics: uw eerste meting maken

Voorwaarde: U moet openen dit gegeven Power BI Desktop-bestand .

Aangezien ik aanneem dat dit je eerste zal zijn, zal ik dit stukje tot in detail schrijven zodat je het kunt volgen.

  1. In de veldenlijst van de Rapportweergave , klik met de rechtermuisknop op het verkoop tafel, gevolgd door de Nieuwe maatregel .

  2. Vervangen Meten door een nieuwe maatnaam te typen Vorige kwartaalverkopen, in de Formule balk .

  3. In deze formule wilt u de BEREKENEN functie. Typ dus na het gelijkteken de eerste paar letters CAL en dubbelklik vervolgens op de functie die u wilt gebruiken.

  4. De functie CALCULATE heeft ten minste twee argumenten. De eerste is de uitdrukking die moet worden geëvalueerd, en de tweede is een Filter .

  5. Na de opening haakje ( voor de BEREKENEN functie, typ SOM gevolgd door nog een haakje openen ( om een ​​argument door te geven aan de SOM functie.

  6. Begin met typen Zout en selecteer vervolgens Verkoop [SalesAmount] , gevolgd door een haakje sluiten ) . Dit is het eerste uitdrukkingargument voor onze BEREKENEN functie.

  7. Type A komma (,) gevolgd door een spatie om het eerste filter op te geven, en typ vervolgens VORIGE KWARTAAL . Dit wordt ons filter.

  8. U gebruikt de VORIGE KWARTAAL tijdintelligentiefunctie om te filteren SOM resultaten van het vorige kwartaal.

  9. Na het haakje openen ( Typ voor de functie PREVIOUSQUARTER Kalender [DateKey] .

  10. De VORIGE KWARTAAL functie heeft één argument, een kolom met een aaneengesloten datumbereik. In ons geval is dat de DateKey kolom in de kalendertabel.

  11. Zorg ervoor dat zowel de argumenten die worden doorgegeven aan het PREVIOUSQUARTER als de CALCULATE-functie worden gesloten door twee gesloten haakjes te typen )) .

  12. Uw formule zou er nu ongeveer als volgt uit moeten zien
    Vorig kwartaal verkopen = CALCULATE (SUM (Sales [SalesAmount]), PREVIOUSQUARTER (Calendar [DateKey]))

  13. Klik op het vinkje in de formulebalk of druk op Enter om de formule te valideren.

Als je dat eenmaal aan je model hebt toegevoegd, voila! Je hebt zojuist een maat gemaakt met DAX, en dat is niet gemakkelijk.

Wat deze formule doet, is bereken de totale omzet van het voorgaande kwartaal, afhankelijk van de filters die in een rapport zijn toegepast.

Dus laten we als we moeten zetten SalesAmount en onze nieuwe Omzet in het vorige kwartaal meten in een grafiek, en vervolgens toegevoegd Jaar en QuarterOfYear net zo Snijmachines, we zouden zoiets als het volgende krijgen

Nu u een basiskennis hebt van de concepten in Power BI DAX, kunt u zelf DAX-formules voor metingen gaan maken. Het kan inderdaad een beetje lastig zijn om te leren, maarDAX bestaat al enkele jaren ener zijn veel bronnen beschikbaar op internet. Na het lezen van deze blog en een beetje experimenteren, kun je leren om zakelijke oplossingen te vinden via Power BI DAX.