Ovaj odeljak pruža veze ka primerima koji pokazuju upotrebu DAX formula u sledećim scenarijima.
-
Izvršavanje složenih izračunavanja
-
Rad sa tekstom i datumima
-
Uslovne vrednosti i testiranje grešaka
-
Korišćenje vremenske inteligencije
-
Rangiranje i poređenje vrednosti
U ovom članku
Prvi koraci
Posetite Wiki centar za resurse DAX gde možete da pronađete sve vrste informacija o daX-u, uključujući blogove, uzorke, bele papere i video zapise koje pružaju vodeći profesionalci i Korporacija Microsoft.
Scenariji: izvršavanje složenih izračunavanja
DAX formule mogu da izvršavaju složena izračunavanja koja uključuju prilagođene agregacije, filtriranje i korišćenje uslovnih vrednosti. Ovaj odeljak pruža primere kako da počnete sa prilagođenim izračunavanjima.
Kreiranje prilagođenih izračunavanja za izvedenu tabelu
FUNKCIJE CALCULATE i CALCULATETABLE su moćne, fleksibilne funkcije koje su korisne za definisanje izračunatih polja. Ove funkcije vam omogućavaju da promenite kontekst u kojem će se izvršiti izračunavanje. Možete i da prilagodite tip agregacije ili matematičke operacije za izvršavanje. Primeri potražite u sledećim temama.
Primena filtera na formulu
U većini mesta gde funkcija DAX uzima tabelu kao argument, obično možete da prođete kroz filtriranu tabelu umesto imena tabele ili tako što ćete navesti izraz filtera kao jedan od argumenata funkcije. Sledeće teme pružaju primere kako da kreirate filtere i kako filteri utiču na rezultate formula. Više informacija potražite u članku Filtriranje podataka u DAX formulama.
Funkcija FILTER vam omogućava da navedete kriterijume filtera pomoću izraza, dok su druge funkcije dizajnirane posebno za filtriranje praznih vrednosti.
Selektivno uklanjanje filtera za kreiranje dinamičkog odnosa
Kreiranjem dinamičkih filtera u formulama možete lako da odgovorite na sledeća pitanja:
-
Koji je udeo trenutne prodaje proizvoda ukupnoj prodaji za godinu?
-
Koliko je ta podela doprinela ukupnom profitu za sve operativne godine, u poređenju sa drugim sektorima?
Na formule koje koristite u izvedenoj tabeli može da utiče kontekst izvedene tabele, ali kontekst možete selektivno promeniti dodavanjem ili uklanjanjem filtera. Primer u temi ALL vam pokazuje kako da to uradite. Da biste pronašli odnos prodaje za određenog prodavca u odnosu na prodaju za sve prodavce, kreirajte meru koja izračunava vrednost za trenutni kontekst podeljen vrednošću za KONTEKST ALL.
Tema ALLEXCEPT pruža primer toga kako da selektivno obrišete filtere u formuli. Oba primera vas vodi kroz način promene rezultata u zavisnosti od dizajna izvedene tabele.
Druge primere izračunavanja odnosa i procenata potražite u sledećim temama:
Korišćenje vrednosti iz spoljne petlje
Pored korišćenja vrednosti iz trenutnog konteksta u izračunavanjima, DAX može da koristi vrednost iz prethodne petlje pri kreiranju skupa povezanih izračunavanja. Sledeća tema pruža uputstva o tome kako da napravite formulu koja upućuje na vrednost iz spoljne petlje. Funkcija EARLIER podržava najviše dva nivoa ugnežđenih petlja.
Da biste saznali više o kontekstu reda i srodnim tabelama i o tome kako da koristite ovaj koncept u formulama, pogledajte članak Kontekst u DAX formulama.
Scenariji: Rad sa tekstom i datumima
Ovaj odeljak obezbeđuje veze ka TEMAMA DAX referenci koje sadrže primere uobičajenih scenarija koji uključuju rad sa tekstom, izdvajanje i sastavljanje vrednosti datuma i vremena ili kreiranje vrednosti na osnovu uslova.
Kreiranje kolone ključa spajanjem
Power Pivot ne dozvoljava složene ključeve; Stoga, ako imate složene ključeve u izvoru podataka, možda ćete morati da ih kombinujete u jednu kolonu ključa. Sledeća tema pruža jedan primer toga kako da napravite izračunatu kolonu na osnovu složenog ključa.
Sastavljanje datuma na osnovu delova datuma izdvojenih iz tekstualnog datuma
Power Pivot koristi TIP podataka SQL Server datum/vreme za rad sa datumima; Stoga, ako spoljni podaci sadrže datume koji su drugačije oblikovani – na primer, ako su datumi zapisani u regionalnom formatu datuma koji Power Pivot mašina podataka ne prepoznaje ili ako podaci koriste celobrojne surogat ključeve – možda ćete morati da koristite DAX formulu da biste izdvojiti delove datuma, a zatim sastavljali delove u važeću predstavu datuma/vremena.
Na primer, ako imate kolonu sa datumima koji su predstavljeni kao ceo broj, a zatim uvezeni kao tekstualna niska, nisku možete da konvertujete u vrednost datum/vreme pomoću sledeće formule:
=DATE(RIGHT([Vrednost1],4),LEFT([Vrednost1],2),MID([Vrednost1],2))
Vrednost1; vrednost2;… |
Rezultat |
---|---|
01032009 |
1/3/2009 |
12132008 |
12/13/2008 |
06252007 |
6/25/2007 |
Sledeće teme pružaju više informacija o funkcijama koje se koriste za izdvajanje i sastavljanje datuma.
Definisanje prilagođenog formata datuma ili broja
Ako podaci sadrže datume ili brojeve koji nisu predstavljeni u jednom od standardnih Windows formata teksta, možete da definišete prilagođeni format da biste se uverili da se vrednostima rukuje ispravno. Ovi formati se koriste prilikom konvertovanja vrednosti u niske ili iz niski. Sledeće teme takođe pružaju detaljnu listu unapred definisanih formata koji su dostupni za rad sa datumima i brojevima.
Promena tipova podataka pomoću formule
U Power Pivot podataka, tip podataka izlaza određuju izvorne kolone i ne možete izričito da navedete tip podataka rezultata zato što optimalan tip podataka određuje Power Pivot. Međutim, možete da koristite implicitne konverzije tipova podataka koje Power Pivot da biste manipulisali tipom izlaznih podataka.
-
Da biste konvertovali datum ili brojčanu nisku u broj, pomnožite sa 1,0. Na primer, sledeća formula izračunava trenutni datum minus 3 dana, a zatim daje odgovarajuću vrednost celog broja.
=(TODAY()-3)*1,0
-
Da biste konvertovali vrednost datuma, broja ili valute u nisku, spajajte vrednost sa praznom niskom. Na primer, sledeća formula daje današnji datum kao nisku.
="& TODAY()
Sledeće funkcije takođe mogu da se koriste da bi se obezbedilo da se dobije određeni tip podataka:
Konvertovanje realnih brojeva u cele brojeve
-
Konvertovanje realnih brojeva, celih brojeva ili datuma u niske
-
Konvertovanje niski u realne brojeve ili datume
Scenario: Uslovne vrednosti i testiranje grešaka
Kao i Excel, DAX ima funkcije koje vam omogućavaju da testirate vrednosti u podacima i dobijete drugu vrednost na osnovu uslova. Na primer, možete da napravite izračunatu kolonu koja označava prodavce kao Željeni ili Vrednost u zavisnosti od godišnjeg iznosa prodaje. Funkcije koje testiraju vrednosti takođe su korisne za proveru opsega ili tipa vrednosti kako bi se sprečile neočekivane greške u podacima da prolome izračunavanja.
Kreiranje vrednosti na osnovu uslova
Ugnežđene IF uslove možete da koristite za testiranje vrednosti i uslovno generisanje novih vrednosti. Sledeće teme sadrže neke jednostavne primere uslovne obrade i uslovnih vrednosti:
Testiranje grešaka unutar formule
Za razliku od programa Excel, ne možete da imate važeće vrednosti u jednom redu izračunate kolone, a nevažeće vrednosti u drugom redu. To jest, ako postoji greška u bilo kom delu kolone Power Pivot koloni, cela kolona je označena greškom, tako da uvek morate da ispravite greške u formuli koje daju nevažeće vrednosti.
Na primer, ako kreirate formulu koja se deli nulom, možete dobiti rezultat beskonačnosti ili grešku. Neke formule takođe neće uspeti ako funkcija naiđe na praznu vrednost kada očekuje numeričku vrednost. Dok razvijate model podataka, najbolje je da dozvolite pojavljivanje grešaka kako biste mogli da kliknete na poruku i rešite problem. Međutim, kada objavljujete radne sveske, trebalo bi da uključite rukovanje greškama da biste sprečili neočekivane vrednosti da dovode do otkazivanja izračunavanja.
Da biste izbegli vraćanje grešaka u izračunatoj koloni, koristite kombinaciju logičkih funkcija i funkcija informacija za testiranje grešaka i uvek vraćanje važećih vrednosti. Sledeće teme pružaju neke jednostavne primere kako to da uradite u programu DAX:
Scenariji: Korišćenje vremenske inteligencije
DAX funkcije vremenske inteligencije uključuju funkcije koje vam pomažu da preuzmete opsege datuma ili datuma iz podataka. Zatim možete da koristite te datume ili opsege datuma da biste izračunali vrednosti u sličnim periodima. Funkcije vremenske inteligencije obuhvataju i funkcije koje rade sa standardnim intervalima datuma kako bi vam omogućile da uporedite vrednosti između meseci, godina ili kvartala. Možete da napravite i formulu koja poredi vrednosti za prvi i poslednji datum navedenog perioda.
Listu svih funkcija vremenske inteligencije potražite u članku Funkcije vremenske inteligencije (DAX). Savete o tome kako da efikasno koristite datume i vremena u analizi Power Pivot potražite u članku Datumi u programskom dodatku Power Pivot.
Izračunavanje kumulativne prodaje
Sledeće teme sadrže primere kako da izračunate zatvorena i otvorena salda. Primeri vam omogućavaju da kreirate trenutna salda u različitim intervalima kao što su dani, meseci, kvartali ili godine.
Upoređivanja vrednosti tokom vremena
Sledeće teme sadrže primere kako da uporedite zbirove u različitim vremenskim periodima. Podrazumevani vremenski periodi koje podržava DAX su meseci, kvartali i godine.
Izračunavanje vrednosti preko prilagođenog opsega datuma
Pogledajte sledeće teme da biste videli primere kako da preuzmete prilagođene opsege datuma, kao što je prvih 15 dana nakon početka promocije prodaje.
Ako koristite funkcije vremenske inteligencije da biste preuzeli prilagođeni skup datuma, taj skup datuma možete da koristite kao unos u funkciju koja vrši izračunavanja kako biste kreirali prilagođene agregatne funkcije tokom vremenskih perioda. Pogledajte sledeću temu da biste videli primer kako to da uradite:
-
Napomena: Ako ne morate da navedete prilagođeni opseg datuma, ali radite sa standardnim računovodstvenim jedinicama kao što su meseci, kvartali ili godine, preporučujemo da izvršite izračunavanja pomoću funkcija vremenske inteligencije dizajnirane za tu svrhu, kao što su TOTALQTD, TOTALMTD, TOTALQTD itd.
Scenariji: rangiranje i upoređivanje vrednosti
Da biste prikazali samo prvi n broj stavki u koloni ili izvedenoj tabeli, imate nekoliko opcija:
-
Možete da koristite funkcije u programu Excel da biste kreirali najbolji filter. U izvedenoj tabeli možete da izaberete i nekoliko najviših ili najniže vrednosti. Prvi deo ovog odeljka opisuje kako da filtrirate prvih 10 stavki u izvedenoj tabeli. Više informacija potražite u Excel dokumentaciji.
-
Možete kreirati formulu koja dinamički rangirati vrednosti, a zatim filtrirati po vrednostima rangiranja ili koristiti vrednost rangiranja kao modul "Slicer". Drugi deo ovog odeljka opisuje kako da kreirate ovu formulu, a zatim koristite to rangiranje u modulu "Slicer".
Svaki metod ima prednosti i mane.
-
Excel filter Top se lako koristi, ali filter je samo u svrhu prikazivanja. Ako se podaci koji se zasniju na izvedenoj tabeli promene, morate ručno da osvežite izvedenu tabelu da biste videli promene. Ako treba dinamički da radite sa rangiranjem, možete da koristite DAX da biste kreirali formulu koja poredi vrednosti sa drugim vrednostima u koloni.
-
DAX formula je moćnija; Štaviše, dodavanjem vrednosti rangiranja u modul "Slicer", možete jednostavno kliknuti na modul "Slicer" da biste promenili broj prikazanih najviših vrednosti. Međutim, izračunavanja su skupa i ovaj metod možda neće odgovarati tabelama sa mnogo redova.
Prikaz samo prvih deset stavki u izvedenoj tabeli
Da biste prikazali najviše ili najniže vrednosti u izvedenoj tabeli
|
Dinamičko poručivanje stavki pomoću formule
Sledeća tema sadrži primer kako da koristite DAX za kreiranje rangiranja uskladištenog u izračunatoj koloni. Budući da se DAX formule dinamički izračunavaju, uvek možete biti sigurni da je rangiranje ispravno čak i ako se osnovni podaci promene. Takođe, pošto se formula koristi u izračunatoj koloni, možete da koristite rangiranje u modulu "Slicer", a zatim izaberete prvih 5, prvih 10 ili čak prvih 100 vrednosti.