Ovaj je blog u osnovi dizajniran za korisnike koji nisu novi u a namijenjen vam je brzoj i laganoj šetnji jezikom formule tzv Izrazi za analizu podataka (DAX) .Ako ste upoznati s funkcijama u MS Excel ili , mnoge formule u ovome Osnove Power BI DAX-a članak će se činiti sličan vama.
Nakon toga, evo pojmova koji čine sastavni dio svega , nakon učenja koje biste trebali dobro razumjeti najosnovnije koncepte u DAX-u.
- Osnove Power BI DAX-a: Što je DAX?
- Osnove Power BI DAX-a: Kako to radi?
- Osnove Power BI DAX-a: Izračunati stupci i mjere
- Osnove Power BI DAX-a: Vrste funkcija u DAX-u
- Osnove Power BI DAX-a: Stvaranje vaše prve mjere
Osnove Power BI DAX-a: Što je DAX?
Pa, krenimo s osnovama Power BI DAX-a, u redu?
Prilično je jednostavno stvoriti izvješća pomoću Power BI Desktop-a, koji će odmah pokazati dragocjene uvide.
Ali, što ako trebate analizirati postotak rasta u svim kategorijama proizvoda, za sve različite datumske periode? Ili, trebate izračunati godišnji rast vaše tvrtke u usporedbi s tržišnim divovima?
Učenje DAX-a pomoći će vam da na najbolji način iskoristite svoj i riješiti stvarne poslovne probleme.
DAX se sastoji od funkcija, operatora i konstanti koje se mogu staviti u formulu za izračunavanje vrijednosti uz pomoć podataka koji su već prisutni u vašem modelu.
Power BI DAX uključuje biblioteku s preko 200 funkcija, operatora i konstrukcija. Njegova knjižnica pruža neizmjernu fleksibilnost u stvaranju mjera za izračunavanje rezultata za gotovo sve potrebe analize podataka.
Osnove Power BI DAX-a: Kako to radi?
Prije svega, dopustite mi da vam objasnim kako to funkcionira.Uglavnom ćemo svoje razumijevanje Power BI DAX-a oblikovati oko tri temeljna koncepta: Sintaksa , Kontekst , i Funkcije .
Naravno, ovdje postoje i drugi važni koncepti, ali razumijevanje ove trojice pružit će najbolji temelj na kojem ćete graditi svoje vještine.
Sintaksa
The Sintaksa sastoji se od različitih komponenata koje čine formulu i kako je napisana. Lpogledajte ovu jednostavnu formulu DAX.
Kada pokušavate razumjeti formulu DAX-a, korisno je razbiti svaki od elemenata na jezik koji svakodnevno mislite i govorite. Dakle, ova formula uključuje sljedeće elemente sintakse:
Ja Totalna rasprodaja je naziv mjere.
II. The operator jednakosti (=) označava početak formule.
III. IZNOS zbraja sve brojeve u stupcu, Prodaja [SalesAmount] .
IV. Ima ih zagrade () koji okružuju izraz koji sadrži jedan ili više argumenata. Sve funkcije zahtijevaju barem jedan argument.
V. Prodajni je referenca na tablicu.
MI. An argument prosljeđuje vrijednost funkciji. Referencirani stupac [SalesAmount] je argument s kojim funkcija SUM zna stupac na kojem mora agregirati SUM.
Jednostavno rečeno, možete ga pročitati kao, ' Za mjeru pod nazivom Ukupna prodaja izračunajte (=) ZBOR vrijednosti u stupcu [SalesAmount] u tablici Prodaja. '
& pikUređivač Power BI DAX uključuje značajku prijedloga koja vam pomaže stvoriti sintaktički ispravne formule predlažući vam prave elemente.
Kontekst
Kontekst jedan je od najvažnijih od 3 DAX koncepta. Kad se govori o kontekstu, to se može odnositi na jednu od dvije vrste Kontekst reda i Filtriraj kontekst .
Koristi se pretežno dok se govori o Mjere , Redak-kontekst najlakše se smatra trenutnim redom. Primjenjuje se kad god formula ima funkciju koja primjenjuje filtre za prepoznavanje jednog retka u tablici.
Filtar-kontekst je malo teže razumjeti od konteksta reda. O filtru-kontekstu najlakše možete razmišljati kao o jednom ili više filtara primijenjenih u izračunu. TheFilter-Context ne postoji umjesto Row-context. Dapače, primjenjuje se uz prvo. Pogledajte sljedeću DAX formulu.
Ova formula uključuje sljedeće elemente sintakse:
Ja Naziv mjere Prodaja u trgovini .
II. The operator jednakosti (=) označava početak formule.
III. The IZRAČUNATI funkcija procjenjuje izraz kao argument.
IV. Zagrada () okružuju izraz koji sadrži jedan ili više argumenata.
V. Mjera [Totalna rasprodaja] u istoj tablici kao izraz.
MI. DO zarez (,) razdvaja prvi argument izraza od argumenta filtra.
DOLAZIŠ LI. Potpuno kvalificirani referencirani stupac, Kanal [ChannelName] je naš redak-kontekst. Svaki redak u ovom stupcu navodi kanal, trgovinu, mrežu itd.
VIII. Posebna vrijednost, Spremi koristi se kao filtar. Ovo je naš kontekst filtra.
Ova formula osigurava da ukupna prodajna mjera izračunava se samo za retke u stupcu Channel [ChannelName] s vrijednošću 'Store' kao filtar.
Funkcije
Funkcije su unaprijed definirane, strukturirane i poredane formule. Izračunavaju pomoću argumenti prenio na njih. Ti argumenti mogu biti brojevi, tekst, logičke vrijednosti ili druge funkcije.
Osnove Power BI DAX-a: Izračunati stupci i mjere
Na ovom ćemo se blogu usredotočiti na Power BI DAX formule korištene u izračunima, u Mjere i Izračunati stupci .
Izračunati stupci
Kada kreirate podatkovni model na Power BI Desktop, možete proširiti tablicu stvaranjem novih stupaca. Sadržaj stupaca definiran je DAX izrazom, vrednuje se red po red ili u kontekstu trenutnog retka u toj tablici.
U podatkovnim modelima za DAX, međutim, svi izračunati stupci zauzimaju prostor u memoriji i izračunavaju se tijekom obrade tablice.
Ovo ponašanje pomaže u rezultiranju boljim korisničkim iskustvom, ali koristi dragocjeni RAM i stoga je loša navika u proizvodnji jer se svaki međuračun pohranjuje u RAM i troši dragocjeni prostor.
Mjere
Postoji još jedan način definiranja izračuna u DAX modelu, koristan ako trebate raditi na skupnim vrijednostima umjesto na osnovi reda po red. Ovi izračuni su mjere. Jedan od zahtjeva DAX-a je da mjeru treba definirati u tablici. Međutim, mjera zapravo ne pripada tablici. Dakle, možete premjestiti mjeru s jedne tablice na drugu, a da pritom ne izgubite njezinu funkcionalnost.
Izračunati stupci nasuprot mjerama
I mjere i izračunati stupci koriste DAX izraze. Razlika je u kontekstu ocjenjivanja. Mjera se procjenjuje u kontekstu ćelije koja se procjenjuje u izvješću ili u DAX upitu, dok se izračunati stupac izračunava na razini retka unutar tablice kojoj pripada.
Čak i ako izgledaju slično, velika je razlika između izračunatih stupaca i mjera. Vrijednost izračunatog stupca izračunava se tijekom osvježavanja podataka i koristi trenutni redak kao kontekst koji ne ovisi o interakciji korisnika u izvješću.
Stoga morate definirati izračunati stupac kad god želite učiniti sljedeće
- Stavite izračunate rezultate u rezač ili pogledajte rezultate u retke ili stupce u zaokretnoj tablici (za razliku od područja vrijednosti) ili u osi grafikona ili upotrijebite rezultat kao uvjet filtra u DAX upitu.
- Definirajte izraz koji je strogo vezan uz trenutni redak. Na primjer, cijena * količina ne može raditi na prosjeku ili na zbroju dva stupca.
- Kategorizirajte tekst ili brojeve. Na primjer, raspon vrijednosti za mjeru.
Mjera djeluje na agregacijama podataka definiranim trenutnim kontekstom, što ovisi o filtru primijenjenom u izvješću - poput rezača, redaka i odabira stupaca u zaokretnoj tablici ili osi i filtara primijenjenih na grafikon.
Dakle, morate definirati mjeru kad god želite prikazati rezultirajuće vrijednosti izračuna koje odražavaju odabir korisnika, kao što je
- Kada izračunate postotak dobiti na određenom odabiru podataka.
- Kada izračunate omjere proizvoda u usporedbi sa svim proizvodima, ali zadržavajući filtar i po godini i regiji.
Osnove Power BI DAX-a: Vrste funkcija u DAX-u
1. Skupne funkcije
MIN
Ova funkcija DAX rdaje minimalnu brojčanu vrijednost u stupcu ili između dva skalarna izraza.
Sintaksa
MIN()
Primjer
=MIN([ResellerMargin])
MINA
Ova funkcija DAX rdaje najmanju vrijednost u stupcu, uključujući logičke vrijednosti i brojeve predstavljene u obliku teksta.
Sintaksa
MINA()
Primjer
=MINA(([Poštanski broj])
NAMIGUŠA
Ova funkcija DAX se vraćaminimalna numerička vrijednost koja proizlazi iz procjene izraza za svaki redak tablice.
Sintaksa
Primjer Ova funkcija DAX rdaje najveću vrijednost u stupcu, uključujući logičke vrijednosti i brojeve predstavljene u obliku teksta. Sintaksa Primjer Ova funkcija DAX rdaje najveću vrijednost u stupcu, uključujući logičke vrijednosti i brojeve predstavljene u obliku teksta. Sintaksa Primjer Ova funkcija DAX se vraćamaksimalna numerička vrijednost koja proizlazi iz procjene izraza za svaki redak tablice. Sintaksa Primjer Ova DAX funkcija adds sve brojeve u stupcu. Sintaksa Primjer Ova funkcija DAX returns aritmetička sredina vrijednosti u stupcu. Sintaksa Primjer Ova funkcija DAX rizračunava zbroj izraza koji se procjenjuje za svaki redak u tablici. Sintaksa Primjer Ova DAX funkcija calkulira aritmetičku sredinu skupa izraza vrednovanih preko tablice. Sintaksa Primjer Ovo je DAX funkcija koja se koristi za vraćanje različitog broja stavki u stupcu. Dakle, ako postoji više brojeva iste stavke, ova funkcija će je računati kao jednu stavku. Sintaksa Primjer Ovo je DAX funkcija koja se koristi za vraćanje broja stavki u stupcu. Dakle, ako postoji više brojeva iste stavke, ova funkcija će je računati kao zasebne stavke, a ne kao jednu stavku. Sintaksa Primjeri Ovo je funkcija DAX koja se koristi za vraćanje broja stavki u stupcu koji nije prazan. Sintaksa Primjer Ovo je DAX funkcija kojabroji broj redaka u navedenoj tablici ili u tablici definiranoj izrazom. Sintaksa Primjer Ovo je DAX funkcija kojabroji broj praznih ćelija u stupcu. Sintaksa Primjer Ova funkcija DAX rvraća navedeni datum u formatu Date-Time. Sintaksa Primjer Ova funkcija DAX rnavodi navedeni sat kao broj od 0 do 23 (od 12:00 do 11:00). Sintaksa Primjer Ova funkcija DAX rponištava trenutni datum. Sintaksa Ova funkcija DAX rvraća trenutni datum i vrijeme u formatu Date-Time. Sintaksa Ova funkcija DAX rizračunava datum u formatu Datum-Vrijeme posljednjeg dana u mjesecu, prije ili nakon određenog broja mjeseci. Sintaksa Primjer Ova funkcija DAX rizračunava apsolutnu vrijednost datog broja. Sintaksa Primjer Ova funkcija DAX reurns vrijednost e podignute u potenciju datog broja. Sintaksa Primjer Ova funkcija DAX reurnira faktorijel broja. Sintaksa Primjer Ova funkcija DAX reurnira prirodni zapis datog broja. Sintaksa Primjer Ova funkcija DAX reurnira dnevnik s bazom zadanog broja. Sintaksa Primjer Ova funkcija DAX returns vrijednost Pi. Sintaksa Ova funkcija DAX rvraća vrijednost prvog argumenta uzdignutog u moć drugog argumenta. Sintaksa Primjer Ova funkcija DAX vrši podjelu reurnsira cjelobrojni dio količnika. Sintaksa Primjer Ova DAX funkcija vraća znak zadanog broja. Sintaksa Primjer Ova funkcija DAX returns kvadratni korijen zadanog broja. Sintaksa Primjer Ova funkcija DAX izvodi logičko I (konjunkciju) na dva izraza. Da bi se AND vratilo istina, moraju biti ispunjena oba navedena uvjeta. Sintaksa Primjer Ova funkcija DAX izvodi logičko ILI (disjunkcija) na dva izraza. Da bi se OR vratilo true, mora biti ispunjen bilo koji od dva navedena uvjeta. Sintaksa Primjer Ova funkcija DAX izvodi logički NOT (negaciju) na danom izrazu. Sintaksa Primjer Ova funkcija DAX testira niz ulaza za onaj koji ispunjava uvjet naveden u argumentu. Sintaksa Primjer Ova DAX funkcija evrednuje izraz i vraća navedenu vrijednost ako izraz vrati pogrešku. Sintaksa Primjer Ova funkcija DAXvraća TRUE ili FALSE nakoncprovjeravajući je li vrijednost prazna. Sintaksa Primjer Ova funkcija DAXvraća TRUE ili FALSE nakoncprovjeravajući je li vrijednost brojčana. Sintaksa Primjer Ova funkcija DAXvraća TRUE ili FALSE nakoncprovjeravajući je li vrijednost tekst. Sintaksa Primjer Ova funkcija DAXvraća TRUE ili FALSE nakoncprovjeravajući je li vrijednost netekst. Sintaksa Primjer Ova funkcija DAXvraća TRUE ili FALSE nakoncprovjeravajući je li vrijednost pogreška. Sintaksa Primjer Ova DAX funkcija jspaja dva tekstna niza u jedan. Sintaksa Primjer Ova funkcija DAXrezultat izraza koji se procjenjuje za svaki redak u tablici. Sintaksa Primjer Ova funkcija DAX rpretvara broj na navedeni broj decimala i vraća rezultat u obliku teksta. Sintaksa Primjer Ova funkcija DAXzamjenjuje dio tekstualnog niza na temelju broja znakova koji ste naveli drugim tekstnim nizom. Sintaksa Primjer Ova funkcija DAX rizračunava broj znakova kod kojih se prvi put nalazi određeni tekstualni niz. Sintaksa Primjer Ova funkcija DAX se vraćatekstualni niz velikim slovima. Sintaksa Primjer Preduvjet: Morat ćete otvoriti ovu zadanu datoteku Power BI Desktop . Budući da pretpostavljam da će vam ovo biti prvo, napisat ću ovaj detalj vrlo detaljno da biste nastavili. Na popisu polja Prikaz izvješća , desnom tipkom miša kliknite Prodajni tablici, nakon koje slijedi Nova mjera . Zamijeniti Mjera upisivanjem novog naziva mjere Prodaja u prethodnom tromjesečju, u Formula Bar . U ovoj formuli želite koristiti IZRAČUNATI funkcija. Dakle, nakon znaka jednakosti upišite prvih nekoliko slova KAL , a zatim dvokliknite funkciju koju želite koristiti. Funkcija CALCULATE ima najmanje dva argumenta. Prvi je izraz koji treba procijeniti, a drugi je a filtar . Nakon otvaranja zagrada ( za IZRAČUNATI funkcija, vrsta IZNOS nakon čega slijedi još jedna početna zagrada ( proslijediti argument na IZNOS funkcija. Počnite tipkati Sol , a zatim odaberite Prodaja [SalesAmount] , nakon čega slijedi završna zagrada ) . Ovo je prvi argument izraza za naš IZRAČUNATI funkcija. Upišite a zarez (,) nakon čega slijedi razmak za specificiranje prvog filtra, a zatim upišite PRETHODNI KVARTART . Ovo će biti naš filtar. Upotrijebit ćete PRETHODNI KVARTART funkcija vremenske inteligencije za filtriranje IZNOS rezultati u prethodnom tromjesečju. Nakon uvodne zagrade ( za funkciju PREVIOUSQUARTER upišite Kalendar [DateKey] . The PRETHODNI KVARTART funkcija ima jedan argument, stupac koji sadrži susjedni raspon datuma. U našem slučaju, to je DateKey stupac u tablici Kalendar. Obavezno zatvorite oba argumenta koji se prosljeđuju u PREVIOUSQUARTER i funkciju CALCULATE tako da upišete dvije zatvorene zagrade ))) . Vaša bi formula sada trebala izgledati otprilike ovako Kliknite potvrdni znak na traci s formulama ili pritisnite Enter da biste potvrdili formulu. Nakon što ste to dodali svom modelu, voila! Upravo ste stvorili mjeru pomoću DAX-a, i to nimalo laganu. Ono što ova formula radi je izračunajte ukupnu prodaju za prethodni kvartal, ovisno o filtrima primijenjenim u izvješću. Pa, hajde da moramo staviti Iznos prodaje i naš novi Prodaja u prethodnom tromjesečju izmjerite u grafikonu, a zatim dodajte Godina i QuarterOfYear kao Rezači, dobili bismo nešto poput sljedećeg Sad kad ste osnovno razumjeli koncepte u Power BI DAX-u, možete samostalno započeti stvaranje DAX-ovih formula za mjere. Doista, to može biti malo nezgodno naučiti, aliDAX postoji već nekoliko godina ina webu je dostupno mnogo resursa. Nakon čitanja ovog bloga i malo eksperimentiranja, možete naučiti pronaći poslovna rješenja putem Power BI DAX-a.
NAMIGUŠA(
,)
=NAMIGUŠA(FILTAR(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetProdaje [Teret] + InternetProdaje [Porez]
MAKS
MAKS()
=MAKS([ResellerMargin])
MAKS
MAKS()
=MAKS(([Poštanski broj])
MAXX
MAXX(
,)
=MAXX(FILTAR(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetProdaje [Teret] + InternetProdaje [Porez]
IZNOS
IZNOS()
=IZNOS(Prodaja [ured])
PROSJEČNO
PROSJEČNO ()
=PROSJEČNO(InternetProdaje [ExtendedSalesAmount])
sumx
sumx(
,)
=sumx(FILTAR(InternetProdaje, InternetProdaje [SalesTerritoryID] =5),[Teretni])
AVERAGEX
podniz u primjerima sql poslužitelja
AVERAGEX(
,)
=AVERAGEX(InternetProdaje, InternetProdaje [Teret] + InternetProdaje [Porez])
2. Funkcije brojanja
DISTINCTCOUNT
DISTINCTCOUNT()
=DISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])
RAČUNATI
RAČUNATI()
=RAČUNATI([Datum slanja])
TAČKA
TAČKA()
=TAČKA('Preprodavač' [telefon])
ZEMLJE
ZEMLJE(
)
=ZEMLJE('Narudžbe')
COUNTBLANK
COUNTBLANK()
=COUNTBLANK(Prodavač [BankName])
3. Datum-vrijeme funkcije
DATUM
DATUM(<godina>,<mjesec>,<dan>)
=DATUM(2019,12, 17)
binarni u decimalni pretvarač java
SAT
SAT()
=SAT('Narudžbe' [TransactionTime])
DANAS
DANAS()
SADA
SADA()
EOMONTH
EOMONTH(,)
=EOMONTH('3. ožujka 2008',1.5)
4. Matematičke funkcije
ODJELJAK
ODJELJAK()
=ABS ([cijena trgovca] - [lista cijene])
EXP
EXP()
= EXP ([snaga])
ČINJENICA
ČINJENICA()
= ČINJENICA ([Vrijednosti])
LN
LN()
= LN ([Vrijednosti])
PRIJAVA
PRIJAVA(,)
Sve sljedeće daju isti rezultat, 2.
= PRIJAVA (100,10)
= PRIJAVA (100)
= LOG10 (100)
PI
PI()
VLAST
VLAST(,<vlast>)
= SNAGA (5,2)
KVOT
KVOT(,)
= KVOTI (5,2)
ZNAK
ZNAK()
= ZNAK (([[Cijena prodaje] - [Cijena cijene]))
SQRT
SQRT()
= SQRT (25)
5. Logičke funkcije
I
I(,)
= AKO (I (10>9, -10 <-jedan),'Sve istinito','Jedan ili više lažnih'
Budući da su oba uvjeta, prosljeđena kao argumenti, funkciji AND istinita, formula vraća 'All True'.
ILI
ILI(,)
def __init__ u pythonu
= AKO (ILI (10>9, -10> -jedan),'Pravi','Lažno'
Budući da je jedan od uvjeta, prosljeđenih kao argumenti, funkciji OR istinit, formula vraća 'Tačno'.
NE
NE()
= NIJE ([Izračunati stupac1])
Za svaki redak u izračunatom stupcu1 funkcija NOT vraća logičku suprotnost od zadane vrijednosti.
AKO
AKO(logic_test> ,, value_if_false)
= IF ([Pozivi]<200,'nisko', AKO ([Pozivi]<300,'srednji','visoko')))
IFERROR
IFERROR(vrijednost, vrijednost_ako_pogreška)
= IFERROR (25/0,9999)
6. Informacijske funkcije
ISBLANK
ISBLANK(<vrijednost>)
= IF (ISBLANK ('CalculatedMeasures' [PreviousYearTotalSales]), BLANK (), ('CalculatedMeasures' [Ukupna prodaja] - 'CalculatedMeasures' [PreviousYearTotalSales]) / 'CalculatedMeasures' [PreviousYearTotalSales])
BROJ
BROJ(<vrijednost>)
= AKO (BROJ (0),'Je li broj','Nije broj')
ISTEKST
ISTEKST(<vrijednost>)
= AKO (ISTEXT ('tekst'),'Je li tekst','Nije tekstualno')
ISNONTEXT
ISNONTEXT(<vrijednost>)
= AKO (ISNONTEXT ('tekst'),'Nije tekstualno','Je li tekst')
ISERROR
ISERROE(<vrijednost>)
= AKO (ISERROR (SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD])), PRAZNO (), SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSalesAmur_USD]'USD]
7. Tekstualne funkcije
KONKATENAT
KONKATENAT(,)
= CONCATENATE ('Pozdrav', 'Svijet')
CONCATENATEX
CONCATENATEX(
,, [graničnik])
= CONCATENATEX (Zaposlenici, [Ime] & ““ & [Prezime], “,“)
POPRAVLJENO
POPRAVLJENO(,,)
= FIKSNO ([PctCost],3,jedan)
ZAMIJENITI
ZAMIJENITI(,,,)
= REPLACE ('Novi proizvodi' [Šifra proizvoda],jedan,2,'OB')
TRAŽI
TRAŽI(, [, [] [,]])
= TRAŽI ('n','printer')
Formula vraća 4 jer je 'n' četvrti znak u riječi 'printer'.
GORNJI
GORNJI()
= GORNJE (['Novi proizvodi' [Šifra proizvoda])
Osnove Power BI DAX-a: Stvaranje vaše prve mjere
Prodaja u prethodnom tromjesečju = IZRAČUNATI (ZBIR (prodaja [iznos prodaje)), PRETHODNI KVARTART (kalendar [tipka datuma]))