Brzi početak: Naučite DAX osnove za 30 minuta

Primenjuje se na
Excel za Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Ovaj brzi početak namenjen je korisnicima koji novi koriste Power Pivot u programu Excel ili tabelarne projekte modela kreirane u programu SQL Server Data Tools. Ona treba da vam pruži brz i jednostavan uvod u to kako možete da koristite Data Analysis Expressions (DAX) za rešavanje niza osnovnih problema u vezi sa modeliranjem podataka i analitičkim problemima. Ova tema obuhvata konceptualne informacije, niz zadataka koje možete da obavite i nekoliko testova za testiranje onoga što ste naučili. Kada dovršite ovu temu, trebalo bi da dobro razumete najosnovnije 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 jedne ili više vrednosti. Jednostavnije rečeno, DAX vam pomaže da kreirate nove informacije iz podataka koji se već nalaze u modelu.

Zašto je DAX toliko važan?

Kreiranje radne sveske i uvoz nekih podataka u nju je lako. Možete čak i da napravite izvedene tabele ili grafikone koji prikazuju važne informacije bez korišćenja DAX formula. Međutim, šta ako treba da analizirate kritične podatke o prodaji u nekoliko kategorija proizvoda i za različite opsege datuma? Ili je potrebno 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 pravite efikasne DAX formule pomoći će vam da na najbolji način iskoristite podatke. Kada dobijete informacije koje su vam potrebne, možete da počnete da rešavate stvarne poslovne probleme koji utiču na vaš krajnji rezultat. To je poslovno obaveštavanje, a DAX će vam pomoći da je stignete.

Preduslovi

Možda ste već upoznati sa pravljenjem formula u programu Microsoft Excel. To znanje će biti korisno za razumevanje DAX-a, ali čak i ako nemate iskustva sa Excel formulama, koncepti opisani ovde pomoći će vam da odmah počnete sa kreiranjem DAX formula i rešavanjem stvarnih BI problema.

Posebno ćemo se fokusirati 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), koji su opisani u pomoći za Power Pivot. Trebalo bi da budete upoznati sa programskim dodatkom Power Pivot u Excel okruženju za kreiranje i alatkama.

Primer radne sveske

Najbolji način da naučite DAX jeste da kreirate neke osnovne formule, koristite ih sa nekim stvarnim podacima i sami vidite rezultate. Primeri i zadaci ovde koriste se Contoso uzorak DAX Formulas.xlsx radne sveske. Radnu svesku možete da preuzmete sa adrese http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Kada preuzmete radnu svesku na računar, otvorite je, a zatim otvorite Power Pivot prozor.

Počnimo!

Uokvirić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 pružiće vam najbolju osnovu na kojoj ćete izgraditi DAX veštine.

Sintaksa

Pre nego što napravite sopstvene formule, hajde da pogledamo sintaksu DAX formule. Sintaksa uključuje različite elemente koji čine formulu, ili jednostavnije, način na koji je formula napisana. Na primer, hajde da pogledamo jednostavnu DAX formulu koja se koristi za pravljenje novih podataka (vrednosti) za svaki red u izračunatoj koloni pod imenom "Margina" u tabeli "FactSales": (boje teksta formule su samo u ilustrativne svrhe)

Formula izračunate kolone

Sintaksa ove formule uključuje sledeće elemente:

  1. Operator znaka jednakosti (=) označava početak formule i kada se ova formula izračuna vratiće rezultat ili vrednost. Sve formule koje izračunavaju vrednost počinjaće znakom jednakosti.
  2. Referentna kolona [IznosProdaje] sadrži vrednosti od kojih želimo da oduzmemo. 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.
  3. Matematički operator za oduzimanje (-).
  4. Referentna kolona [UkupniTrošak] sadrži vrednosti koje želimo da oduzmemo od vrednosti u koloni [IznosProdaje].

Kada pokušavate da razumete kako da čitate DAX formulu, često je korisno da svaki od elemenata razdvojite na jezik o kojem svakodnevno razmišljate i govorite. Na primer, ovu formulu možete da pročitate kao:

U tabeli "ProdajaČinjenice", za svaki red izračunate kolone "Margina" izračunajte (=) vrednost tako što ćete od vrednosti u koloni [IznosProdaje] oduzeti (-) vrednosti u koloni [UkupniTroškovi].

Hajde da pogledamo drugi tip formule, onaj koji se koristi u meri:

Formula izračunate kolone

Ova formula uključuje sledeće elemente sintakse:

  1. Ime mere: Sum of Sales Amount. Formule za mere mogu da uključuju ime mere, iza kojeg sledi dvotačka, a iza nje i formula za izračunavanje.
  2. Operator znaka jednakosti (=) ukazuje na početak formule za izračunavanje. Kada se izračuna, vratiće rezultat.
  3. Funkcija SUM sabira sve brojeve u koloni [IznosProdaje]. Više o funkcijama saznaćete kasnije.
  4. Zagrade () nalaze jedan ili više argumenata. Sve funkcije zahtevaju najmanje jedan argument. Argument prosleđuje vrednost funkciji.
  5. Referentna tabela "FactSales".
  6. Referentna kolona [IznosProdaje] u tabeli FactSales. Pomoću ovog argumenta funkcija SUM zna u kojoj koloni treba da agregira SUM.

Ovu formulu možete da pročitate kao:

Za meru pod imenom "Zbir iznosa prodaje" izračunajte (=) zbir vrednosti u koloni [IznosProdaje] u tabeliČinjenicaProdaje.

Kada se postavi u zonu za otpuštanje vrednosti u listi polja izvedene tabele, ova mera izračunava i vraća vrednosti koje definiše svaka ćelija u izvedenoj tabeli, na primer, mobilni telefoni u SAD.

Obratite pažnju na to da se ova formula razlikuje od formule koju smo koristili za izračunatu kolonu "Margina". Konkretno, uveli smo funkciju SUM. Funkcije su unapred napisane formule koje olakšavaju složena izračunavanja i rukovanje brojevima, datumima, vremenom, tekstom i još mnogo toga. Više o funkcijama saznaćete kasnije.

Za razliku od ranije izračunate kolone "Margina", vidite da je koloni [IznosProdaje] prethodila tabela FactSales kojoj kolona pripada. Ovo je poznato kao potpuno određeno ime kolone jer obuhvata ime kolone ispred kojeg prethodi ime tabele. Kolone na koje se upućuje u istoj tabeli ne zahtevaju da ime tabele bude uključeno u formulu. To može da skrati dugačke formule koje upućuju na mnogo kolona i budu lakše za čitanje. Međutim, preporučuje se da uvek uključite ime tabele u formule mera, čak i kada se nalazite u istoj tabeli.

Napomena

Ako ime tabele sadrži razmake, rezervisane ključne reči ili zabranjene znakove, morate da stavite tabelu pod jednostruke navodnike. Imena tabela morate da stavite pod navodnike ako ime sadrži bilo kakav znak izvan ANSI opsega alfanumeričkih znakova, bez obzira na to da li vaš lokalni standard podržava taj 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 može biti ispravna, ali vraćene vrednosti možda neće biti očekivane. Power Pivot (i SQL Server Data Tools) uključuju IntelliSense; funkciju koja se koristi za kreiranje sintaktički ispravnih formula tako što vam pomaže da izaberete ispravne elemente.

Hajde da kreiramo jednostavnu formulu. Ovaj zadatak će vam pomoći da bolje razumete sintaksu formule i kako funkcija IntelliSense u polju za formulu može da vam pomogne.

Zadatak: Pravljenje jednostavne formule za izračunatu kolonu

  1. Ako se već ne nalazite u Power Pivot prozoru, u programu Excel na Power Pivot traci kliknite na Power Pivot prozor.
  2. U Power Pivot prozoru kliknite na tabelu FactSales (kartica).
  3. Pomerite se do krajnje desne kolone, a zatim u zaglavlju kolone izaberite stavku "Dodaj kolonu".
  4. Kliknite na traku sa formulama duž vrha prozora dizajnera modela.
    Traka sa formulama programskog dodatka PowerPivot
    Kursor se sada pojavljuje u polju za formulu. Traka za formulu je mesto gde možete da otkucate formulu za izračunatu kolonu ili izračunato polje.
    Hajde malo da pogledamo tri dugmeta sa leve strane polja za formulu.
    Formula bar
    Kada je kursor aktivan u polju za formulu, ta tri dugmeta postaju aktivna. Krajnje levo dugme, X, jednostavno je dugme za otkazivanje. Samo napred i kliknite na nju. Kursor se više ne pojavljuje u polju za formulu, a više se ne pojavljuju dugmad "Otkaži" i dugme znaka potvrde. Nastavite i ponovo kliknite na traku sa formulama. Dugme "Otkaži" i dugme znaka potvrde sada se ponovo pojavljuju. To znači da ste spremni da počnete da unosite formulu.
    Dugme znaka potvrde je dugme za potvrdu 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; Dijalog "Umetanje funkcije". Dijalog "Umetanje funkcije" je najjednostavniji način za početak unosa DAX formule. Funkciju ćemo dodati u formulu malo kasnije kada napravimo meru, ali za sada ne morate da dodajete funkciju u formulu izračunate kolone. Nastavite i zatvorite dijalog "Umetanje funkcije".
  5. U polju za formulu otkucajte znak jednakosti =, a zatim otkucajte otvorenu zagradu [. Videćete da se pojavljuje 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 kojoj se nalazite, nema potrebe da ime tabele dodaje ispred imena kolone. Pomerite se nadole, a zatim kliknite dvaput na [KoličinaProdaje]. Takođe možete da se pomerite do željenog imena kolone, a zatim pritisnete taster Tab.
    Kursor je sada aktivan sa desne strane [KoličinaProdaje].
  6. Otkucajte razmak, zatim otkucajte operator oduzimanja - (znak minus), a zatim otkucajte još jedan razmak.
  7. Sada otkucajte drugu otvorenu zagradu [. Ovog puta izaberite kolonu [PovratKoličina], a zatim pritisnite taster Enter.
    Ako dobijete grešku, pažljivo pogledajte sintaksu. Ako je neophodno, uporedite je sa formulom u koloni izračunatoj margina koja je opisana ranije.
    Kada pritisnete taster Enter da biste dovršili formulu, reč "Izračunavanje " pojavljuje se na statusnoj traci duž dna Power Pivot prozora. To ide brzo, čak i ako ste upravo izračunali nove vrednosti za više od tri miliona redova.
  8. Kliknite desnim tasterom miša na zaglavlje kolone i preimenujte kolonu, Neto prodaja.

To je to! Upravo ste napravili jednostavnu, ali veoma moćnu DAX formulu. Formula NetSales za svaki red u tabeli "FactSales" izračunava vrednost tako što od vrednosti u koloni [KoličinaProdaje] oduzima vrednost u koloni [KoličinaProdaje]. Primetićete da smo upravo rekli "Za svaki red". Ovo je uvid u još jedan veoma važan koncept u DAKS-u; Kontekst reda. Kasnije ćete saznati više o kontekstu reda.

Nešto što je veoma važno razumeti kada kucate operator u DAX formuli jeste tip podataka u argumentima koje koristite. Na primer, ako otkucate sledeću formulu, = 1 & 2, dobijena vrednost će biti tekstualna vrednost "12". To je zato što operator "ampersand" (&) služi za spajanje teksta. DAX tumači ovu formulu da glasi: Izračunajte rezultat tako što ćete vrednost 1 uzeti kao tekst i dodati vrednost 2 kao tekst. Ako otkucate = 1 + 2, DAX čita ovu formulu na sledeći način: Izračunajte rezultat tako što ćete uzeti numeričku vrednost 1 i dodati numeričku vrednost 2. Rezultat je, naravno, "3", numerička vrednost. DAX izračunava rezultujuće vrednosti u zavisnosti od operatora u formuli, a ne na osnovu tipa podataka kolona korišćenih u argumentu. Tipovi podataka u DAX su veoma važni, ali izvan opsega ovog vodiča za brzi početak. 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 usluzi Books Online.

Hajde da pokušamo sa drugim. Ovog puta ćete napraviti meru tako što ćete otkucati formulu i koristiti IntelliSense. Ne brinite previše ako ne razumete formulu u potpunosti. Ovde je važno da naučite kako da kreirate formulu koristeći nekoliko elemenata zajedno u ispravnoj sintaksi.

Zadatak: Pravljenje formule za meru

  1. 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.

PowerPivot oblast izračunavanja

  1. U polju za formulu otkucajte ime "Prodaja u prethodnom kvartalu:".
  2. Otkucajte znak jednakosti = da biste započeli formulu za izračunavanje.
  3. Unesite prvih nekoliko slova CAL, a zatim kliknite dvaput na funkciju koju želite da koristite. U ovoj formuli želite da koristite funkciju COMPLOCT .
  4. Otkucajte otvorenu zagradu ( da biste započeli argumente koji će se prosleđivati funkciji COMPLOCULATE.
    Imajte na umu da nakon kucanja otvorene zagrade, IntelliSense prikazuje argumente potrebne za funkciju COMPLOCU. Saznaćete više o argumentima za koji trenutak.
  5. Otkucajte prvih nekoliko slova tabele FactSales , a zatim na padajućoj listi kliknite dvaput na FactSales[Sales].
  6. Otkucajte zarez (,) da biste naveli prvi filter, zatim otkucajte PRE, a zatim kliknite dvaput na funkciju PREVIOUSQUARTER .
    Nakon izbora funkcije PREVIOUSQUARTER, pojavljuje se još jedna otvorena zagrada koja ukazuje na to da je potreban drugi argument; ovog puta za funkciju PREVIOUSQUARTER.
  7. Otkucajte prvih nekoliko slova Dim, a zatim kliknite dvaput na DimDate[DateKey].
  8. Zatvorite i argument koji se prosleđuje u funkciju PREVIOUSQUARTER i u funkciju CALCULATE tako što ćete otkucati dve zatvorene zagrade )).
    Formula bi sada trebalo da izgleda ovako:
    Prodaja u prethodnom kvartalu:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))
  9. Kliknite na dugme "Proveri formulu" na traci sa formulama da biste proverili valjanost formule. Ako dobijete grešku, proverite svaki element sintakse.

Uspeli ste! Upravo ste napravili meru pomoću DAX-a, i to nije laka. Ova formula izračunava ukupnu prodaju u prethodnom kvartalu, u zavisnosti od filtera primenjenih u izvedenoj tabeli ili izvedenom grafikonu.

Upravo ste se upoznali sa nekoliko važnih aspekata DAX formula. Prvo, ova formula je uključivala dve funkcije. Obratite pažnju na to da je funkcija PREVIOUSQUARTER ugnežđena kao argument prosleđen funkciji COMPLOCT . DAX formule mogu da sadrže do 64 ugnežđene funkcije. Malo je verovatno da bi formula ikada sadržala toliko ugnežđenih funkcija. U stvari, takvu formulu bi bilo veoma teško kreirati i otkloniti greške, a verovatno ne bi bila ni veoma brza.

U ovoj formuli ste koristili i filtere. Filteri sužavaju ono što će se izračunavati. U ovom slučaju, izabrali ste jedan filter kao argument, što je zapravo druga funkcija. Više o filterima ćete saznati kasnije.

Na kraju ste upotrebili funkciju COMPATICU. Ovo je jedna od najmoćnijih funkcija u DAX-u. Dok pravite modele podataka i kreirate složenije formule, verovatno ćete više puta koristiti ovu funkciju. Diskusija o funkciji CALCULATE je izvan opsega ovog vodiča za brzi početak, ali kako bude raslo vaše znanje o DAX-u, 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či kao tabelu datuma". U radnoj svesci Samples.xlsx DAX formule preduzeća Contoso, kolona "ŠifraDatuma" u tabeli "DimDate" izabrana je kao jedinstvena kolona datuma.

Dodatni kredit

Možda se pitate: "Koja je najjednostavnija DAX formula koju mogu da napravim?" Pa, odgovor na to je "formula koju ne morate". A to je tačno ono što možete da uradite korišćenjem standardne agregatne funkcije u meri. Skoro svaki model podataka mora da se filtrira i izračunava na osnovu agregiranih podataka. Na primer, funkcija SUM u meri "Zbir iznosa prodaje" koju ste videli ranije koristi se za sabiranje svih brojeva u određenoj koloni. DAX uključuje i nekoliko drugih funkcija koje agregiraju vrednosti. Formule možete automatski da kreirate pomoću standardnih agregatnih funkcija pomoću funkcije "Automatski zbir".

Dodatni kreditni zadatak: pravljenje formule za meru pomoću funkcije "Automatski zbir"

  1. U tabeli FactSales pomerite se do kolone ReturnQuantity, a zatim kliknite na zaglavlje kolone da biste izabrali celu kolonu.
  2. Na kartici Početak , na traci, u grupi "Izračunavanja " kliknite na dugme " Automatski zbir ".

AutoSum u programskom dodatku PowerPivot

Kliknite na strelicu nadole pored stavke "Automatski zbir", a zatim izaberite stavku "Prosečno " (obratite pažnju na druge standardne agregatne funkcije koje možete da koristite).

Odmah se pravi nova mera pod imenom "Prosečna vrednost prinosa": iza koje sledi formula =AVERAGE([PovratKoličina]).

Sada nije bilo tako lako? Naravno, neće sve formule koje kreirate biti tako jednostavne. Ali, pomoću funkcije automatskog zbira možete da kreirate brze i jednostavne formule pomoću standardnih agregatnih izračunavanja.

Ovo bi trebalo da vam pruži prilično dobro razumevanje sintakse koja se koristi u DAX formulama. Takođe ste se upoznali sa nekim zaista sjajnim funkcijama kao što su IntelliSense i automatski zbir koje će vam pomoći da kreirate brze, lake i tačne formule. Naravno, postoji još mnogo toga što možete da naučite o sintaksi. Dobar način da saznate više jeste DAX reference ili SQL Books Online.

Brzi kviz sintakse

  1. Čemu služi ovo dugme na traci sa formulama?
    Dugme za funkciju
  2. Šta uvek okružuje ime kolone u DAX formuli?
  3. Kako biste napisali formulu za sledeće:
    U tabeli "DimProduct", da li za svaki red izračunate kolone "JediničnaMargina" izračunajte vrednost oduzimanjem vrednosti u koloni "JediničnaCena"?

Odgovori su navedeni na kraju ove teme.

Funkcije

Funkcije su unapred definisane formule koje obavljaju izračunavanja koristeći određene vrednosti, koje se zovu argumenti, određenim redosledom ili u određenoj strukturi. Argumenti mogu biti druge funkcije, druga formula, reference kolone, brojevi, tekst, logičke vrednosti, na primer TRUE ili FALSE ili konstante.

DAX obuhvata sledeće kategorije funkcija: funkcije datuma i vremena, informacijske, logičke, matematičke, statističke, tekstualne funkcije i funkcije vremenske inteligencije. Ako ste upoznati sa funkcijama u Excel formulama, mnoge funkcije u DAX jeziku će izgledati slično kao vi; Međutim, DAX funkcije su jedinstvene na sledeće načine:

  • DAX funkcija uvek upućuje na celu 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 red-po-red, DAX obezbeđuje funkcije koje vam omogućavaju da koristite trenutnu vrednost reda ili srodnu vrednost kao vrstu argumenta da biste izvršili izračunavanja koja se razlikuju u zavisnosti od konteksta. Kasnije ćete saznati više o kontekstu.
  • DAX uključuje mnogo funkcija koje vraćaju tabelu, a ne vrednost. Tabela se ne prikazuje, ali se koristi za obezbeđivanje unosa za druge funkcije. Na primer, možete preuzeti tabelu, a zatim izračunati različite vrednosti u njoj ili izračunati dinamičke zbirove u filtriranim tabelama ili kolonama.
  • DAX uključuje različite funkcije vremenske inteligencije. Ove funkcije vam omogućavaju da definišete ili izaberete opsege datuma i izvršite dinamička izračunavanja na osnovu njih. Na primer, možete da uporedite zbirove u paralelnim periodima.

Ponekad je teško znati koje funkcije ćete možda morati da koristite u formuli. Power Pivot i dizajner tabelarnog modela u alatkama SQL Server Data Tools uključuju funkciju "Umetanje funkcije", dijalog koji vam pomaže da izaberete funkcije po kategoriji i pruža kratke opise za svaku funkciju.

Umetni funkciju

Hajde da napravimo novu formulu koja uključuje funkciju koju ćete izabrati pomoću funkcije "Umetni funkciju":

Zadatak: Dodavanje funkcije u formulu pomoću komande "Umetni funkciju"

  1. U tabeli FactSales pomerite se do krajnje desne kolone, a zatim u zaglavlju kolone izaberite stavku "Dodaj kolonu".
  2. U polju za formulu otkucajte znak jednakosti, =.
  3. Kliknite na dugme "Umetni funkciju ". Umetni funkciju To će otvoriti dijalog "Umetanje funkcije ".
  4. U dijalogu " Umetanje funkcije " kliknite na okvir sa listom "Izaberite kategoriju ". Sve je podrazumevano izabrano, a sve funkcije u kategoriji Sve su navedene ispod. To predstavlja mnogo funkcija, pa bi trebalo da ih filtrirate kako biste lakše pronašli tip funkcije koji tražite.
  5. Za ovu formulu želite da vratite neke podatke koji već postoje u drugoj tabeli. Za to ćete koristiti funkciju u kategoriji filtera. Nastavite i izaberite kategoriju "Filter ", a zatim se u okviru "Izbor funkcije" pomerite nadole i dvaput kliknite na funkciju POVEZANO. Kliknite na dugme "U redu " da biste zatvorili dijalog "Umetanje funkcije ".
  6. Koristite IntelliSense da biste pronašli i izabrali kolonu DimChannel[ImeKanala].
  7. Zatvorite formulu, a zatim pritisnite taster Enter.
  8. Kada pritisnete taster Enter da biste dovršili formulu, reč "Izračunavanje" pojavljuje se na statusnoj traci duž dna Power Pivot prozora. Sada ćete videti da ste upravo kreirali novu kolonu u tabeli "FactSales" sa informacijama o kanalu iz tabele "DimChannel".
  9. Preimenujte kolonu "Kanal".
    Formula treba da izgleda ovako: =RELATED(DimChannel[ChannelName])

Upravo ste se upoznali sa još jednom veoma važnom funkcijom u DAX-u, funkcijom POVEZANO . Funkcija RELATED vraća vrednosti iz druge tabele. Možete da koristite RELATED pod uslovom da 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 tabelu FactSales. Sada možete da sakrijete tabelu DimChannel sa liste polja izvedene tabele, što olakšava navigaciju i prikaz samo najvažnijih informacija koje su vam zaista potrebne. Umnogome kao i funkcija CALCULATE koja je ranije opisana, funkcija RELATED je veoma važna i verovatno ćete je koristiti mnogo puta.

Kao što vidite, funkcije u DAX jeziku mogu da vam pomognu da kreirate veoma moćne formule. Zaista smo se dotakli samo osnova funkcija. Kako se vaše DAX veštine budu poboljšavale, kreiraćete formule pomoću mnogo različitih funkcija. Jedno od najboljih mesta za saznavanje detalja o svim DAX funkcijama jeste u referenci za izraze za analizu podataka (DAX).

Brzi kviz o funkcijama

  1. Na šta funkcija uvek upućuje?
  2. Može li formula da sadrži više funkcija?
  3. Koju kategoriju funkcija biste koristili za spajanje dve tekstualne niske u jednu nisku?

Odgovori su navedeni na kraju ove teme.

Kontekst

Kontekst je jedan od najvažnijih DAX koncepata za razumevanje. Postoje dva tipa konteksta u DAX-u; Kontekst reda i kontekst filtera. Prvo ćemo pogledati kontekst reda.

Kontekst reda

Kontekst reda najlakše ćete posmatrati kao trenutni red. Na primer, sećate se izračunate kolone "Margina" koju ste ranije videli kada ste učili o sintaksi? Formula =[IznosProdaje] - [UkupniTrošak] 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 [UkupniTrošak] u istom redu. DAX može da izračuna vrednosti za svaki red u koloni "Margina" zato što on sadrži kontekst: Za svaki red uzima vrednosti iz kolone [UkupniTroškovi] i oduzima ih od vrednosti u koloni [IznosProdaje].

U izabranoj ćeliji prikazanoj ispod, vrednost 49,54 RSD u trenutnom redu izračunata je tako što se vrednost 51,54 RSD u koloni [UkupniTrošak] oduzme od vrednosti 101,08 RSD u koloni [IznosProdaje].

Kontekst reda u programskom dodatku PowerPivot

Kontekst reda se ne odnosi samo na izračunate kolone. Kontekst reda se takođe primenjuje kad god formula ima funkciju koja primenjuje filtere za identifikovanje pojedinačnog reda u tabeli. Funkcija će inherentno primeniti kontekst reda za svaki red tabele preko kojeg se filtrira. Ovaj tip konteksta reda najčešće se odnosi na mere.

Kontekst filtera

Kontekst filtera je malo teže razumeti od konteksta reda. Kontekst filtera možete najlakše da posmatrate kao: Jedan ili više filtera primenjenih u izračunavanju koje određuje rezultat ili vrednost.

Kontekst filtera ne postoji umesto konteksta reda; Umesto toga, on se primenjuje pored konteksta reda. Na primer, da biste dodatno suzili vrednosti koje treba uključiti u izračunavanje, možete da primenite kontekst filtera koji ne samo da navodi kontekst reda, već i navodi samo određenu vrednost (filter) u tom kontekstu reda.

Kontekst filtera je lako vidljiv u izvedenim tabelama. Na primer, kada dodate "UkupniTrošak" u oblast "Vrednosti", a zatim dodate "Godina i region" u red ili kolone, definišete kontekst filtera koji bira podskup podataka na osnovu date godine i regiona.

Zašto je kontekst filtera toliko važan za DAX? Jer, dok 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, po relacijama i po drugim merama i kolonama. Na primer, pogledajmo sledeću formulu u meri koja se zove ProdajaUProdavnici:

Formula

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 je raščlaniti, kao što smo to radili sa drugim formulama.

Ova formula uključuje sledeće elemente sintakse:

  1. Ime mere StoreSales, iza kojeg sledi dvotačka :.
  2. Operator znaka jednakosti (=) ukazuje na početak formule.
  3. Funkcija CALCULATE procenjuje izraz kao argument u kontekstu koji su izmenjeni navedenim filterima.
  4. Zagrade () nalaze jedan ili više argumenata.
  5. Mera [Prodaja] u istoj tabeli kao i izraz. Mera prodaje ima formulu: =SUM(FactSales[SalesAmount]).
  6. Zarez (,) razdvaja svaki filter.
  7. Referentna kolona 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[ImeKanala] sa vrednošću "Store" kao filterom.

Kao što možete da zamislite, mogućnost definisanja konteksta filtera u okviru formule ima ogromne i moćne mogućnosti. Mogućnost upućivanja samo na određenu vrednost u povezanoj tabeli samo je jedan takav primer. Ne brinite ako kontekst ne razumete u potpunosti odmah. Dok pravite sopstvene formule, bolje razumete kontekst i zašto je on toliko važan u DAX-u.

Kontekstualni brzi kviz

  1. Koja su to dva tipa konteksta?
  2. Šta je kontekst filtera?
  3. Šta je to kontekst reda?

Odgovori su navedeni na kraju ove teme.

Rezime

Sada kada imate osnovno razumevanje najvažnijih koncepata u DAX-u, možete sami da počnete da pravite DAX formule za izračunate kolone i mere. DAX zaista može biti malo težak za učenje, ali postoji mnogo resursa koji su vam dostupni. Pošto ste nekoliko puta pročitali ovu temu i eksperimentisali sa nekoliko sopstvenih formula, možete da saznate više o drugim DAX konceptima i formulama koje vam mogu pomoći da rešite sopstvene poslovne probleme. Dostupno vam je mnogo DAX resursa u pomoći za Power Pivot, SQL Server knjige na mreži, belim knjigama i blogovima korporacije Microsoft i vodećih BI stručnjaka. Wiki-centar za DAX resurse (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) je odlično mesto za početak. Referenca za izraze za analizu podataka (DAX) takođe je sjajan resurs. Obavezno ga sačuvajte u omiljenim lokacijama.

Whitepaper o jeziku DAX u BI tabelarnom modelu, dostupan za preuzimanje (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409), pruža detaljniji pregled koncepta koji su ovde predstavljeni, kao i mnogih drugih naprednih koncepata i formula. Ovaj beli paper koristi i istu Contoso DAX uzorak Formulas.xlsx radnu svesku koju već imate.

Rešenja brzog testa

Sintaksa:

  1. Otvara funkciju "Umetanje funkcije".
  2. Zagrade [].
  3. =[Cena po jedinici] - [Cena po jedinici]

Funkcije:

  1. Tabelu i kolonu.
  2. Da. Formula može da sadrži do 64 ugnežđene funkcije.
  3. Tekstualne funkcije.

Kontekst:

  1. Kontekst reda i kontekst filtera.
  2. Jedan ili više filtera u izračunavanju koje određuje jednu vrednost.
  3. Trenutni red.