Ovaj brzi početak je za korisnike koji su novi Power Pivot u programu Excel ili projektima tabelarnog modela kreiranim u SQL Server alatkama za podatke. On treba da vam pruži brz i lak uvod u to kako možete da koristite Izraze za analizu podataka (DAX) za rešavanje niza osnovnih modelovanja i analitičkih problema. Ova tema sadrži konceptualne informacije, niz zadataka koje možete da dovršite i nekoliko testova za testiranje onoga što ste naučili. Kada dovršite ovu temu, trebalo bi da dobro razumete osnovne osnovne koncepte u daX-u.
Šta je TO DAX?
DAX je kolekcija funkcija, operatora i konstanti koje se mogu koristiti u formuli ili izrazu, za izračunavanje i vraćanje nekih vrednosti. Jednostavnije rečeno, DAX vam pomaže da kreirate nove informacije od podataka koji su već u modelu.
Zaљto je DAX tako vaћan?
Kreiranje radne sveske i uvoz nekih podataka u radnu svesku je lako. Možete čak i da kreirate izvedene tabele ili izvedene grafikone koji prikazuju važne informacije bez korišćenja DAX formula. Ali, šta ako treba da analizirate kritične podatke o prodaji u nekoliko kategorija proizvoda i za različite opsege datuma? Ili treba da kombinujete važne podatke o zalihama iz nekoliko tabela u različitim izvorima podataka? DAX formule pružaju ovu mogućnost, kao i mnoge druge važne mogućnosti. Učenje kako da kreirate efikasne DAX formule pomoći će vam da na najbolji način iskoristite podatke. Kada dobijete potrebne informacije, možete početi da rešavate stvarne poslovne probleme koji utiču na vašu donju liniju. Ovo je poslovno obaveštavanje i DAX će vam pomoći da odete tamo.
Preduslovi
Možda ste već upoznati sa kreiranjem formula u programu Microsoft Excel. To znanje će vam biti korisno u razumevanju DAX-a, ali čak i ako nemate iskustva sa Excel formulama, koncepti koji su ovde opisani pomoći će vam da odmah počnete da pravite DAX formule i rešite probleme u realnom svetu.
Fokusiraćemo se posebno na razumevanje DAX formula koje se koriste u izračunavanjima. Trebalo bi da ste već upoznati sa osnovnim konceptima izračunatih kolona i mera (poznatih i kao izračunata polja), od kojih su oba opisana Power Pivot pomoći. Trebalo bi da ste upoznati sa programom Power Pivot u okruženju za kreiranje i alatkama programa Excel.
Primer radne sveske
Najbolji način da naučite DAX jeste da kreirate neke osnovne formule, koristite ga sa nekim stvarnim podacima i sami vidite rezultate. Primeri i zadaci ovde koriste radnu svesku Contoso Sample DAX Formulas.xlsx. Radnu svesku možete da preuzmete http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Kada preuzmete radnu svesku na računar, otvorite je, a zatim otvorite Power Pivot prozor.
Hajde da počnemo!
Uokvirovaćemo DAX oko tri veoma važna osnovna koncepta: Sintaksa, funkcije i kontekst. Naravno, postoje i drugi važni koncepti u daX-u, ali razumevanje ova tri koncepta će pružiti najbolju osnovu za izgradnju DAX veština.
Sintaksa
Pre nego što kreirate sopstvene formule, hajde da pogledamo sintaksu DAX formula. Sintaksa uključuje različite elemente koji sačinjaju formulu ili, više nego jednostavno, kako se formula piše. Na primer, hajde da pogledamo jednostavnu DAX formulu koja se koristi za kreiranje novih podataka (vrednosti) za svaki red u izračunatoj koloni pod imenom "Margina", u tabeli "FactSales": (boje teksta formule su samo za ilustrativne svrhe)
Sintaksa ove formule uključuje sledeće elemente:
-
Operator znaka jednakosti (=) ukazuje na početak formule, a kada se izračuna ova formula, daće rezultat ili vrednost. Sve formule koje izračunavaju vrednost počinju znakom jednakosti.
-
Referentna kolona [IznosProdaje] sadrži vrednosti od kojih želimo da oduzimamo. Referenca kolone u formuli uvek je okružena zagradama []. Za razliku od Excel formula koje upućuju na ćeliju, DAX formula uvek upućuje na kolonu.
-
Matematički operator oduzimanja (-).
-
Referentna kolona [TotalCost] sadrži vrednosti koje želimo da oduzmete od vrednosti u koloni [IznosProdaje].
Kada pokušavate da razumete kako da pročitate DAX formulu, često je korisno da razdelite svaki od elemenata na jezik na koji mislite i govorite svakog dana. Na primer, ovu formulu možete da pročitate kao:
U tabeli FactSales za svaki red u izračunatoj koloni Margina izračunava vrednost (=) oduzimanjem (-) vrednosti u koloni [TotalCost] od vrednosti u koloni [IznosProdaje].
Hajde da pogledamo drugi tip formule, koji se koristi u meri:
Ova formula sadrži sledeće sintaksne elemente:
-
Ime mere Sum of Sales Amount. Formule za mere mogu da uključuju ime mere, iza kojeg sledi dvotačka, a zatim formula za izračunavanje.
-
Operator znaka jednakosti (=) označava početak formule za izračunavanje. Kada se izračuna, vratiće rezultat.
-
Funkcija SUM sabira sve brojeve u koloni [IznosProdaje]. Kasnije ćete saznati više o funkcijama.
-
Zagrade () okružuju neke argumente. Sve funkcije zahtevaju najmanje jedan argument. Argument dodaje vrednost funkciji.
-
Referentna tabela FactSales.
-
Referentna kolona [IznosProdaje] u tabeli "ProdajaSekt". Pomoću ovog argumenta, funkcija SUM zna u kojoj koloni da grupiše SUM.
Ovu formulu možete da pročitate kao:
Za meru pod imenom "Iznos prodaje" izračunajte (=) ZBIR vrednosti u koloni [IznosProdaje] u tabeli ProdajaSekt.
Kada se postavi u zonu za otpuštanje Vrednosti na listi polja izvedene tabele, ova mera izračunava i vraća vrednosti definisane svakom ćelijom u izvedenoj tabeli, na primer Mobilni telefoni u SAD.
Primetićete da u poređenju sa formulom koju smo koristili za kolonu "Margina" ima nekoliko stvari koje se razlikuju u odnosu na formulu koju smo koristili za izračunatu kolonu Margina. Posebno smo uveli funkciju SUM. Funkcije su unapred napisane formule koje olakšavaju složena izračunavanja i manipulacije brojevima, datumima, vremenom, tekstom i još mnogo toga. Kasnije ćete saznati više o funkcijama.
Za razliku od izračunate kolone Margina ranije, vidite kolonu [IznosProdaje] ispred tabele FactSales kojoj kolona pripada. Ovo je poznato kao potpuno određeno ime kolone u kome se nalazi ime kolone ispred imena tabele. Kolone na koje se upućuje u istoj tabeli ne zahtevaju da ime tabele bude uključeno u formulu. To može da učini dugačke formule koje upućuju na mnoge kolone kraćim i lakšim za čitanje. Međutim, preporučuje se da ime tabele uvek uključite u formule mere, čak i kada se nalazite u istoj tabeli.
Napomena: Ako ime tabele sadrži razmake, rezervisane ključne reči ili znakove koji nisu dozvoljeni, ime tabele morate da stavite među jednostruke navodnike. Imena tabela morate da stavite i pod znake navoda ako ime sadrži znakove izvan ANSI alfanumeričkih opsega znakova, bez obzira na to da li lokalni standard podržava skup znakova ili ne.
Veoma je važno da formule imaju ispravnu sintaksu. U većini slučajeva, ako sintaksa nije ispravna, vratiće se sintaksna greška. U drugim slučajevima, sintaksa je možda ispravna, ali vraćene vrednosti možda nisu ono što očekujete. Power Pivot (i SQL Server Data Tools) uključuje IntelliSense; funkciju koja se koristi za pravljenje sintaksno ispravnih formula tako što vam pomaže da izaberete ispravne elemente.
Hajde da kreiramo jednostavnu formulu. Ovaj zadatak će vam pomoći da dodatno razumete sintaksu formule i kako vam intelliSense funkcija u polju za formulu može pomoći.
Zadatak: Kreiranje jednostavne formule za izračunatu kolonu
-
Ako se već ne Power Pivot prozoru, u programu Excel, na Power Pivot izaberite stavku Power Pivot prozor.
-
U prozoru Power Pivot izaberite tabelu FactSales (kartica).
-
Pomerite se do desne kolone, a zatim u zaglavlju kolone izaberite stavku Dodaj kolonu.
-
Kliknite na polje za formulu duž vrha prozora dizajnera modela.
Kursor se sada pojavljuje u polju za formulu. Polje za formulu je mesto gde možete da otkucate formulu za izračunatu kolonu ili izračunato polje.
Hajde da pogledamo tri dugmeta levo od polja za formulu.
Kada je kursor aktivan u polju za formulu, ta tri dugmeta postaju aktivna. Dugme X koje se nalazi krajnje levo jeste jednostavno dugme "Otkaži". Samo napred i kliknite na njega. Kursor se više ne pojavljuje u polju za formulu, a dugme "Otkaži" i dugme sa znakom potvrde više se ne pojavljuju. Nastavite i ponovo kliknite na polje za formulu. Dugme "Otkaži" i dugme sa znakom potvrde sada se ponovo pojavljuje. To znači da ste spremni da počnete da unosite formulu.
Dugme znaka potvrde je dugme za proveru formule. Ne radi mnogo dok ne unesete formulu. Vratićemo se na to za koji trenutak.
Kliknite na dugme Fx . Videćete da se pojavljuje novi dijalog; the Insert Function dialog box. Dijalog Umetanje funkcije je najlakši način da počnete da unosite DAX formulu. Funkciju ćemo dodati u formulu kada malo kasnije uradimo meru, ali za sada ne morate da dodajete funkciju u formulu izračunate kolone. Nastavite i zatvorite dijalog Umetanje funkcije.
-
U polju za formulu otkucajte znak jednakosti =, a zatim otkucajte otvorenu zagradu [. Videćete mali prozor sa svim kolonama u tabeli "FactSales". Ovo je IntelliSense na delu.
Pošto se izračunate kolone uvek kreiraju u aktivnoj tabeli u koju se nalazite, nema potrebe da ispred imena kolone stavite ime tabele. Pomerite se nadole, a zatim kliknite dvaput na stavku [Količinaprodaje]. Možete i da se pomerite do željenog imena kolone, a zatim pritisnete taster Tab.
Kursor je sada aktivan sa desne strane stavke [Količinaprodaje].
-
Otkucajte razmak, a zatim otkucajte operator oduzimanja – (znak minus), a zatim otkucajte još jedan razmak.
-
Sada otkucajte još jednu otvorenu uglastu zagradu [. Ovog puta izaberite kolonu [ReturnQuantity] , a zatim pritisnite taster Enter.
Ako dobijete grešku, pažljivo pogledajte sintaksu. Ako je potrebno, uporedite je sa formulom u izračunatoj koloni Margina koja je ranije opisana.
Kada pritisnete taster Enter da biste dovršili formulu, reč Izračunavanje se pojavljuje na statusnoj traci na dnu Power Pivot prozora. Ide brzo, čak i ako ste upravo izračunali nove vrednosti za više od tri miliona redova.
-
Kliknite desnim tasterom miša na zaglavlje kolone i preimenujte kolonu NetSales.
To je to! Upravo ste napravili jednostavnu, ali veoma moćnu DAX formulu. Za svaki red u tabeli FactSales formula NetSales izračunava vrednost tako što oduzima vrednost u koloni [ReturnQuantity] od vrednosti u koloni [KoličinaProdaje]. Primetićete da smo upravo rekli "Za svaki red". Ovo je uočavanje još jednog veoma važnog koncepta u DAX-u; kontekst reda. Kasnije ćete saznati više o kontekstu reda.
Nešto što je veoma važno razumeti prilikom kucanja operatora u DAX formuli jeste tip podataka u argumentima koje koristite. Na primer, ako otkucate sledeću formulu = 1 & 2, dobijena vrednost bi bila tekstualna vrednost "12". To je zato što je operator ampersand (&) za spajanje teksta. DAX tumači ovu formulu za čitanje: Izračunavanje rezultata uzimanjem vrednosti 1 kao teksta i dodavanjem vrednosti 2 kao teksta. Ako treba da otkucate = 1 + 2, DAX čita ovu formulu kao: Izračunavanje rezultata uzimanjem numeričke vrednosti 1 i dodavanjem numeričke vrednosti 2. Rezultat je naravno "3", numerička vrednost. DAX izračunava rezultuirane vrednosti u zavisnosti od operatora u formuli, a ne na osnovu tipa podataka kolona koje se koriste u argumentu. Tipovi podataka u daX-u su veoma važni, ali izvan opsega ovog brzog početka. Da biste saznali više o tipovima podataka i operatorima u DAX formulama, pogledajte DAX referencu (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) u odeljku Knjige na mreži.
Pokuљaжu ponovo. Ovog puta ćete napraviti meru tako što ćete otkucati formulu i koristiti IntelliSense. Ne brinite previše ako ne razumete formulu u potpunosti. Važno je da naučite kako da kreirate formulu pomoću nekoliko elemenata zajedno u ispravnoj sintaksi.
Zadatak: Kreiranje formule mere
-
U tabeli FactSales kliknite na bilo koju praznu ćeliju u oblasti izračunavanja. Ovo je oblast praznih ćelija odmah ispod tabele u Power Pivot prozoru.
-
U polju za formulu otkucajte ime Prodaja u prethodnom kvartalu:.
-
Otkucajte znak jednakosti = da biste započeli formulu za izračunavanje.
-
Otkucajte prvih nekoliko slova CAL, a zatim kliknite dvaput na funkciju koju želite da koristite. U ovoj formuli želite da koristite funkciju CALCULATE .
-
Otkucajte otvorenu zagradu (da biste započeli argumente koji će biti prosleđeni funkciji CALCULATE.
Obratite pažnju kada otkucate otvorenu zagradu, IntelliSense vam prikazuje argumente potrebne za funkciju CALCULATE. Uskoro ćete saznati više o argumentima.
-
Otkucajte prvih nekoliko slova tabele "Prodaja činjenica ", a zatim na padajućoj listi kliknite dvaput na stavku Prodaja Činjenica[Prodaja].
-
Otkucajte zarez (,) da biste naveli prvi filter, a zatim otkucajte, PRE, a zatim kliknite dvaput na funkciju PREVIOUSQUARTER .
Kada izaberete funkciju PREVIOUSQUARTER, pojavljuje se druga otvorena zagrada koja ukazuje na to da je potreban drugi argument; ovog puta za funkciju PREVIOUSQUARTER.
-
Otkucajte prvih nekoliko slova Dim, a zatim kliknite dvaput na dugme DimDate[DateKey].
-
Zatvorite i argument koji se prosleđuje funkciji PREVIOUSQUARTER i funkciji CALCULATE tako što ćete otkucati dve zatvorene zagrade )).
Formula bi sada trebalo da izgleda ovako:
Prodaja u prethodnom kvartalu:=CALCULATE(Prodaja[Prodaja], PREVIOUSQUARTER(DimDate[DateKey]))
-
Kliknite na dugme za proveru formule na traci sa formulama da biste proverili valjanost formule. Ako dobijete grešku, verifikujte svaki element sintakse.
Uspeo si! Upravo ste napravili meru koristeći DAX, a to nije laka mera. Ova formula će izračunati ukupnu prodaju za prethodni kvartal, u zavisnosti od filtera primenjenih u izvedenoj tabeli ili izvedenom grafikonu.
Upravo ste upoznati sa nekoliko važnih aspekata DAX formula. Prvo, ova formula je obuhvatala dve funkcije. Obratite pažnju na to da je funkcija PREVIOUSQUARTER ugnežđena kao argument prosleđen funkciji CALCULATE . DAX formule mogu da sadrže do 64 ugnežđene funkcije. Malo je verovatno da bi formula ikada sadržala toliko ugnežđenih funkcija. Zapravo, takva formula bi bila veoma teška za kreiranje i otklanjanje grešaka, a verovatno ni to ne bi bilo veoma brzo.
U ovoj formuli koristili ste i filtere. Filtrira sužavanje obima podataka koji će biti izračunati. U ovom slučaju, izabrali ste jedan filter kao argument, što je zapravo druga funkcija. Kasnije ćete saznati više o filterima.
Na kraju ste koristili funkciju CALCULATE. Ovo je jedna od najmoćnijih funkcija u DAX-u. Dok kreirate modele podataka i kreirate složenije formule, verovatno ćete koristiti ovu funkciju mnogo puta. Diskusija o funkciji CALCULATE je izvan opsega ovog brzog početka, ali kako vaše znanje o DAX-u raste, obratite posebnu pažnju na ovu.
Napomena: Obično, da biste koristili funkcije vremenske inteligencije u DAX formulama, morate da navedete jedinstvenu kolonu sa datumima pomoću dijaloga Označavanje tabele sa datumima. U radnoj svesci Contoso DAX formula Samples.xlsx, kolona DateKey u tabeli DimDate izabrana je kao jedinstvena kolona sa datumima.
Dodatni kredit
Možda vas pitate: "Šta je najjednostavnije DAX formula koju mogu da kreiram?" Odgovor na to je formula koju ne morate da koristite. I to je upravo ono što možete da uradite tako što ćete koristiti standardnu funkciju agregacije u meri. Skoro svaki model podataka mora da filtrira i izračuna ukupne podatke. Na primer, funkcija SUM u meri "Iznos prodaje" koju ste ranije videli koristi se za sabiranje svih brojeva u određenoj koloni. DAX uključuje i nekoliko drugih funkcija koje agregirane vrednosti. Pomoću funkcije "Automatski zbir" možete automatski da kreirate formule pomoću standardnih agregatnih funkcija.
Extra Credit Task: Create a measure formula by using the AutoSum feature
-
U tabeli FactSales pomerite se do kolone ReturnQuantity, a zatim kliknite na zaglavlje kolone da biste izabrali celu kolonu.
-
Na kartici Početak, na traci, u grupi Izračunavanja kliknite na dugme Automatski zbir .
Kliknite na strelicu nadole pored stavke Automatski zbir, a zatim izaberite stavku Prosek (obratite pažnju i na druge standardne funkcije agregacije koje možete da koristite).
Odmah se pravi nova mera pod imenom Prosečna količina povraćaja: iza čega sledi formula =AVERAGE([ReturnQuantity]).
Nije bilo tako lako? Naravno, neće sve formule koje kreirate biti tako jednostavne. Međutim, pomoću funkcije "Automatski zbir" možete da kreirate brze i jednostavne formule pomoću standardnih izračunavanja agregacije.
To bi trebalo da vam pruži prilično dobro razumevanje sintakse koja se koristi u DAX formulama. Predstavili ste se i sa nekim zaista sjajnim funkcijama kao što su IntelliSense i Automatski zbir kako bi vam pomogle da kreirate brze, jednostavne i tačne formule. Naravno, postoji još mnogo toga što možete da saznate o sintaksi. Dobro mesto na koje možete da saznate više jeste DAX referenca ili SQL knjige na mreži.
Sintaksa QuickQuiz
-
Šta radi ovo dugme na polju za formulu?
-
Šta uvek okružuje ime kolone u DAX formuli?
-
Kako biste napisali formulu za sledeće:
U tabeli DimProduct, za svaki red izračunate kolone UnitMargin izračunava vrednost oduzimanjem vrednosti iz kolone UnitCost od vrednosti u koloni JediničnaCena?
Odgovori su obezbeđeni na kraju ove teme.
Funkcije
Funkcije su unapred definisane formule koje obavljaju izračunavanja pomoću određenih vrednosti, koje se nazivaju argumenti, određenim redosledom ili strukturom. Argumenti mogu biti druge funkcije, druga formula, reference kolone, brojevi, tekst, logičke vrednosti kao što su TRUE ili FALSE ili konstante.
DAX obuhvata sledeće kategorije funkcija: "Datum i vreme", "Informacije", "Logička", "Matematička", "Statistička", "Tekst" i "Funkcija vremenske inteligencije". Ako ste upoznati sa funkcijama u Excel formulama, mnoge funkcije u daX-u će izgledati slično vama; međutim, DAX funkcije su jedinstvene na sledeće načine:
-
DAX funkcija uvek upućuje na potpunu kolonu ili tabelu. Ako želite da koristite samo određene vrednosti iz tabele ili kolone, možete da dodate filtere u formulu.
-
Ako treba da prilagodite izračunavanja na osnovu redova po red, DAX obezbeđuje funkcije koje vam omogućavaju da kao vrstu argumenta koristite trenutnu vrednost reda ili srodnu vrednost za izračunavanja koja se razlikuju u zavisnosti od konteksta. Kasnije ćete saznati više o kontekstu.
-
DAX uključuje mnoge funkcije koje daju tabelu, a ne vrednost. Tabela se ne prikazuje, ali se koristi za obezbeđivanje unosa u druge funkcije. Na primer, možete da preuzmete tabelu, a zatim da prebrojite različite vrednosti u tabeli ili da izračunate dinamičke zbirove u filtriranim tabelama ili kolonama.
-
DAX obuhvata različite funkcije vremenske inteligencije. Ove funkcije vam omogućavaju da definišete ili izaberete opsege datuma i da izvršavate dinamička izračunavanja na osnovu njih. Na primer, možete da uporedite zbirove tokom paralelnih perioda.
Ponekad je teško znati koje funkcije ćete možda morati da koristite u formuli. Power Pivot i tabelarni dizajner modela u SQL Server alatkama za podatke, uključite funkciju "Umetanje funkcije", dijalog koji vam pomaže da izaberete funkcije po kategoriji i pruža kratke opise za svaku funkciju.
Hajde da kreiramo novu formulu koja sadrži funkciju koju ćete izabrati pomoću funkcije "Umetanje funkcije":
Zadatak: Dodavanje funkcije u formulu pomoću funkcije "Umetni"
-
U tabeli FactSales pomerite se do desne kolone, a zatim u zaglavlju kolone izaberite stavku Dodaj kolonu.
-
U polju za formulu otkucajte znak jednakosti=
-
Kliknite na dugme Umetni funkciju . Ovo otvara dijalog Umetanje funkcije .
-
U dijalogu Umetanje funkcije kliknite na okvir sa listom Izbor kategorije . Podrazumevano je izabrana stavka Sve, a sve funkcije u kategoriji Sve navedene su ispod. To je mnogo funkcija, pa ćete želeti da filtrirate funkcije da biste olakšali pronalaženje tipa funkcije koju tražite.
-
Za ovu formulu želite da dobijete neke podatke koji već postoje u drugoj tabeli. Za to ćete koristiti funkciju u kategoriji Filter. Nastavite i kliknite na kategoriju Filter , a zatim u okviru Izbor funkcije pomerite se nadole i kliknite dvaput na funkciju RELATED. Kliknite na dugme U redu da biste zatvorili dijalog Umetanje funkcije.
-
Koristite IntelliSense da biste pronašli i izabrali kolonu DimChannel[ChannelName].
-
Zatvorite formulu, a zatim pritisnite taster Enter.
-
Kada pritisnete taster Enter da biste dovršili formulu, reč Izračunavanje se pojavljuje na statusnoj traci na dnu Power Pivot prozora. Sada ćete videti da ste upravo napravili novu kolonu u tabeli "FactSales" sa informacijama o kanalu iz tabele DimChannel.
-
Preimenujte kolonu Kanal.
Formula bi trebalo da izgleda ovako: =RELATED(DimChannel[ChannelName])
Upravo ste uveli još jednu veoma važnu funkciju u daX, funkciju RELATED . Funkcija RELATED daje vrednosti iz druge tabele. Funkciju RELATED možete da koristite ako postoji relacija između tabele u kojoj se trenutno nalazite i tabele koja sadrži vrednosti koje želite da dobijete. Naravno, funkcija RELATED ima ogromne mogućnosti. U ovom slučaju, sada možete da uključite kanal prodaje za svaku prodaju u tabeli "Prodaja činjenica". Sada možete da sakrijete tabelu DimChannel sa liste polja izvedene tabele, što olakšava kretanje i pregled samo najvažnijih informacija koje su vam zaista potrebne. Kao što je ranije opisana funkcija CALCULATE, funkcija RELATED je veoma važna i verovatno ćete je koristiti mnogo puta.
Kao što vidite, funkcije u daX-u mogu da vam pomognu da kreirate veoma moćne formule. Dotacili smo se samo osnova funkcija. Kako se vaše DAX veštine poboljšavaju, kreiraćete formule pomoću mnogo različitih funkcija. Jedno od najboljih mesta na koje možete da saznate detalje o svim DAX funkcijama jeste u referenci izraza za analizu podataka (DAX).
Funkcije QuickQuiz
-
Na šta funkcija uvek upućuje?
-
Da li formula može da sadrži više od jedne funkcije?
-
Koju kategoriju funkcija biste koristili za spajanje dve tekstualne niske u jednu nisku?
Odgovori su obezbeđeni na kraju ove teme.
Kontekst
Kontekst je jedan od najvažnijih DAX koncepata koje treba razumeti. Postoje dva tipa konteksta u daX-u; kontekst reda i kontekst filtera. Prvo ćemo pogledati kontekst reda.
Kontekst reda
Kontekst reda se najlakše smatra trenutnim redom. Na primer, sećate se izračunate kolone Margina koju ste ranije videli kada ste učili o sintaksi? Formula =[IznosProdaje] – [Ukupna Vrednost] izračunava vrednost u koloni Margina za svaki red u tabeli. Vrednosti za svaki red izračunavaju se iz vrednosti u druge dve kolone, [IznosProdaje] i [UkupnaCost] u istom redu. DAX može da izračuna vrednosti za svaki red u koloni Margina zato što ima kontekst: za svaki red preuzima vrednosti u koloni [TotalCost] i oduzima ih od vrednosti u koloni [IznosProdaje].
U izabranoj ćeliji prikazanoj ispod, vrednost 49,54 USD u trenutnom redu izračunata je oduzimanjem vrednosti 51,54 USD u koloni [TotalCost] od vrednosti 101,08 USD u koloni [IznosProdaje].
Kontekst reda se ne primenjuje samo na izračunate kolone. Kontekst reda se primenjuje i svaki put kada formula ima funkciju koja primenjuje filtere za identifikovanje jednog reda u tabeli. Funkcija će nasledno primeniti kontekst reda za svaki red tabele preko koje se filtrira. Ovaj tip konteksta reda najčešće se odnosi na mere.
Kontekst filtera
Kontekst filtera je malo teži za razumevanje od konteksta reda. Kontekst filtera možete najlakše da mislite kao: jedan ili više filtera primenjenih u izračunavanju koje određuje rezultat ili vrednost.
Kontekst filtera ne postoji umesto konteksta reda; primenjuje se pored konteksta reda. Na primer, da biste dodatno suzili vrednosti koje će biti uključene u izračunavanje, možete primeniti kontekst filtera koji ne samo da navodi kontekst reda, već i navodi samo određenu vrednost (filter) u tom kontekstu reda.
Kontekst filtera se lako vidi u izvedenim tabelama. Na primer, kada dodate TotalCost u oblast Vrednosti, a zatim dodate "Godina" i "Region" u red ili kolone, vi definišete kontekst filtera koji bira podskup podataka na osnovu date godine i regiona.
Zašto je kontekst filtera toliko važan za DAX? Pošto, iako kontekst filtera može najlakše da se primeni dodavanjem oznaka kolona i redova i modula "Slicer" u izvedenu tabelu, kontekst filtera može da se primeni i u DAX formuli definisanjem filtera pomoću funkcija kao što su ALL, RELATED, FILTER, CALCULATE, relacijama i drugim merama i kolonama. Na primer, hajde da pogledamo sledeću formulu u meru pod imenom ProdajaSekt:
Jasno je da je ova formula složenija od nekih drugih formula koje ste videli. Međutim, da bismo bolje razumeli ovu formulu, možemo da je prekinemo, kao što smo to uradili sa drugim formulama.
Ova formula sadrži sledeće sintaksne elemente:
-
Ime mere ProdavnicaSekt, iza kojeg sledi dvotačka :.
-
Operator znaka jednakosti (=) ukazuje na početak formule.
-
Funkcija CALCULATE procenjuje izraz kao argument u kontekstu koji se menja pomoću navedenih filtera.
-
Zagrade () okružuju neke argumente.
-
Mera [Prodaja] u istoj tabeli kao i izraz. Mera "Prodaja" ima formulu: =SUM(FactSales[SalesAmount]).
-
Zarez (,) razdvaja svaki filter.
-
Kolona na koju se upućuje i određena vrednost, DimChannel[ChannelName] ="Store", kao filter.
Ova formula će obezbediti da se samo vrednosti prodaje, definisane merom "Prodaja", kao filter, izračunavaju samo za redove u koloni DimChannel[ChannelName] sa vrednošću "Skladište" kao filter.
Kao što možete da zamislite, mogućnost definisanja konteksta filtera u okviru formule ima ogromnu i moćnu mogućnost. Samo je jedan takav primer mogućnost upućivanja na određenu vrednost u srodnoj tabeli. Ne brinite ako ne razumete kontekst u potpunosti odmah. Dok pravite sopstvene formule, bolje ćete razumeti kontekst i razloge zbog kojih je to tako važno u daX-u.
Kontekstualni brziquiz
-
Koja su dva tipa konteksta?
-
Šta je kontekst filtera?
-
Šta je kontekst reda?
Odgovori su obezbeđeni na kraju ove teme.
Rezime
Sada kada imate osnovno razumevanje najvažnijih koncepata u daX-u, možete sami početi da pravite DAX formule za izračunate kolone i mere. DAX može biti malo komplikovaniji za učenje, ali za vas je dostupno mnogo resursa. Kada nekoliko puta pročitate ovu temu i eksperimentišete sa nekoliko sopstvenih formula, možete da saznate više o drugim DAX konceptima i formulama koje vam mogu pomoći da rešite poslovne probleme. Dostupno vam je mnogo DAX resursa u Power Pivot pomoći, SQL Server knjigama na mreži, belim bojama i blogovima od Microsoft i vodećih BI stručnjaka. Wiki centar za resurse DAX http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx je sjajno mesto za početak. Referenca izraza za analizu podataka (DAX) takođe je sjajan resurs. Obavezno je sačuvajte u omiljenim lokacijama.
DAX u bi tabelarnom modelu, dostupan za preuzimanje (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) pruža detaljniji pogled na koncepte predstavljene ovde, kao i mnoge druge napredne koncepte i formule. Ovaj beli pero koristi i isti Contoso DAX uzorak Formulas.xlsx radne sveske koju već imate.
QuickQuiz Answers
Sintaksa:
-
Otvara funkciju "Umetni funkciju".
-
Zagrade [].
-
=[Cena po jedinici] - [JediničnaCena]
Funkcije:
-
Tabela i kolona.
-
Da. Formula može da sadrži do 64 ugnežđene funkcije.
Kontekstu:
-
Kontekst reda i kontekst filtera.
-
Neki filteri u izračunavanju koji određuju jednu vrednost.
-
Trenutni red.