Ovaj odeljak obezbeđuje veze ka primerima koji pokazuju upotrebu DAX formula u sledećim scenarijima.
- Izvođenje 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 DAX resurse gde možete da pronađete razne informacije o jeziku DAX, uključujući blogove, uzorke, bele knjige i video zapise koje su obezbedili vodeći stručnjaci u industriji i 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 prvih koraka sa prilagođenim izračunavanjima.
Kreiranje prilagođenih izračunavanja za izvedenu tabelu
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 vršiti izračunavanje. Možete i da prilagodite tip agregacije ili matematičke operacije koja će se izvršiti. Pogledajte sledeće teme za primere.
Primena filtera na formulu
Na većini mesta gde DAX funkcija uzima tabelu kao argument, obično možete da prosledite filtriranu tabelu umesto toga, koristeći funkciju FILTER umesto imena tabele ili navodeći izraz filtera kao jedan od argumenata funkcije. Sledeće teme daju 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 posebno dizajnirane za filtriranje praznih vrednosti.
Selektivno uklanjanje filtera radi kreiranja dinamičkog odnosa
Pravljenjem dinamičkih filtera u formulama možete lako da odgovorite na sledeća pitanja:
- Kakav je doprinos prodaje trenutnog proizvoda ukupnoj prodaji za godinu?
- Koliko je ova divizija doprinela ukupnom profitu za sve operativne godine, u poređenju sa drugim divizijama?
Kontekst izvedene tabele može da utiče na formule koje koristite u izvedenoj tabeli, ali možete selektivno da promenite kontekst dodavanjem ili uklanjanjem filtera. Primer u temi ALL vam pokazuje kako da to uradite. Da biste pronašli odnos prodaje za određenog lokalnog prodavca i prodaje za sve lokalne prodavce, napravite meru koja izračunava vrednost za trenutni kontekst podeljenu vrednošću za kontekst ALL.
Tema ALLEXCEPT pruža primer selektivnog brisanja filtera na formuli. Oba primera vas vode kroz način na koji se rezultati menjaju u zavisnosti od dizajna izvedene tabele.
Druge primere kako da izračunate koeficijente i procente 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 prilikom pravljenja 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 petlji.
Da biste saznali više o kontekstu reda i srodnim tabelama, kao 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 DAX referentnim temama koje sadrže primere uobičajenih scenarija koji uključuju rad sa tekstom, izdvajanje i sastavljanje vrednosti datuma i vremena ili pravljenje vrednosti na osnovu uslova.
Kreiranje kolone ključa pomoću spajanja
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 kako da napravite izračunatu kolonu na osnovu složenog ključa.
Compose a date based on date parts extracted from a text date
Power Pivot koristi SQL Server tip podataka 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 zamenske ključeve sa celim brojem – možda ćete morati da koristite DAX formulu da biste izdvojili delove datuma, a zatim sastavili delove u važeći datum/ Predstavljanje 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 datuma/vremena 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 tekstualnih formata, možete da definišete prilagođeni format da biste se uverili da se ispravno rukuje vrednostima. Ovi formati se koriste prilikom konvertovanja vrednosti u niske ili iz niski. Sledeće teme takođe pružaju detaljnu listu unapred definisanih oblika koji su dostupni za rad sa datumima i brojevima.
- Unapred definisani numerički formati za funkciju FORMAT
- Prilagođeni numerički formati za funkciju FORMAT
- Unapred definisani formati datuma i vremena za funkciju FORMAT
- Prilagođeni formati datuma i vremena za funkciju FORMAT
Promena tipova podataka pomoću formule
U programskom dodatku Power Pivot tip podataka izlaza određuju izvorne kolone i ne možete eksplicitno da navedete tip podataka rezultata jer Power Pivot određuje optimalni tip podataka. Međutim, možete da koristite implicitne konverzije tipova podataka koje Power Pivot izvršava da biste manipulisali tipom izlaznih podataka.
- Da biste datum ili nisku brojeva konvertovali u broj, pomnožite sa 1,0. Na primer, sledeća formula izračunava trenutni datum minus 3 dana, a zatim daje odgovarajuću celobrojnu vrednost.
=(TODAY()-3)*1,0 - Da biste konvertovali datum, broj ili vrednost valute u nisku, spojite vrednost sa praznom niskom. Na primer, sledeća formula daje današnji datum u vidu niske.
=""& TODAY()
Sledeće funkcije takođe mogu da se koriste kako bi se obezbedilo da se dobije određeni tip podataka:
Konvertovanje realnih brojeva u cele brojeve
- Funkcija ROUND
- Funkcija CEILING
-
Funkcija FLOOR
Konvertovanje realnih brojeva, celih brojeva ili datuma u niske - Funkcija FIXED
-
Funkcija FORMAT
Konvertovanje niske u realne brojeve ili datume - Funkcija VALUE
- Funkcija DATEVALUE
- Funkcija TIMEVALUE
Scenario: Uslovne vrednosti i testiranje grešaka
Kao i Excel, DAX ima funkcije koje vam omogućavaju da testirate vrednosti u podacima i vratite drugu vrednost na osnovu uslova. Na primer, možete da napravite izračunatu kolonu koja označava prodavce kao " Poželjno " ili "Vrednost " u zavisnosti od godišnjeg iznosa prodaje. Funkcije koje testiraju vrednosti korisne su i za proveru opsega ili tipa vrednosti kako bi se sprečilo da neočekivane greške u podacima prekinu 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 da li postoje greške 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. To znači sledeće, ako postoji greška u bilo kom delu Power Pivot kolone, cela kolona se obeležava greškom, tako da uvek morate da ispravljate greške u formuli koje za posledicu daju nevažeće vrednosti.
Na primer, ako kreirate formulu koja 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 se očekuje numerička vrednost. Dok razvijate model podataka, najbolje je da dozvolite da se pojavljuju greške 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 da neočekivane vrednosti uzrokuju neuspeh izračunavanja.
Da biste izbegli vraćanje grešaka u izračunatoj koloni, koristite kombinaciju logičke i informacione funkcije za testiranje grešaka i uvek vraćanje važećih vrednosti. Sledeće teme daju neke jednostavne primere kako da to uradite u jeziku DAX:
Scenariji: Korišćenje vremenske inteligencije
Funkcije DAX vremenske inteligencije uključuju funkcije koje vam pomažu da preuzmete datume ili opsege datuma iz podataka. Te datume ili opsege datuma zatim možete da koristite za izračunavanje vrednosti za slične periode. Funkcije vremenske inteligencije takođe obuhvataju funkcije koje rade sa standardnim intervalima datuma kako bi vam omogućile da uporedite vrednosti tokom meseci, godina ili kvartala. Takođe možete da napravite 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 Power Pivot analizi potražite u članku "Datumi u programskom dodatku Power Pivot".
Izračunajte kumulativnu prodaju
Sledeće teme sadrže primere kako da izračunate zaključenje i početna bilansa. Primeri vam omogućavaju da napravite tekuće bilanse u različitim intervalima, kao što su dani, meseci, kvartali ili godine.
- Funkcija CLOSINGBALANCEMONTH, funkcija CLOSINGBALANCEQUARTER, funkcija CLOSINGBALANCEYEAR
- Funkcija OPENINGBALANCEMONTH, funkcija OPENINGBALANCEQUARTER, funkcija OPENINGBALANCEYEAR
Poređenje 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.
- Funkcija PREVIOUSMONTH, funkcija PREVIOUSQUARTER,funkcija PREVIOUSYEAR
- Funkcija TOTALMTD, funkcija TOTALQTD, funkcija TOTALYTD
- Funkcija PARALLELPERIOD
Izračunavanje vrednosti za prilagođeni opseg datuma
Pogledajte sledeće teme za primere kako da preuzmete prilagođene opsege datuma, kao što su 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 koristiti kao unos za funkciju koja vrši izračunavanja za kreiranje prilagođenih agregatnih funkcija u različitim vremenskim periodima. Pogledajte sledeću temu za 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 dizajniranih za tu svrhu, kao što su TOTALQTD, TOTALMTD, TOTALQTD itd.
Scenariji: Rangiranje i poređenje vrednosti
Da biste prikazali samo prvih n stavki u koloni ili izvedenoj tabeli, imate nekoliko opcija:
- Funkcije u programu Excel možete da koristite da biste kreirali gornji filter. Možete takođe da izaberete broj gornjih ili donjih vrednosti u izvedenoj tabeli. Prvi deo ovog odeljka opisuje kako da filtrirate prvih 10 stavki u izvedenoj tabeli. Dodatne informacije potražite u Excel dokumentaciji.
- Možete da kreirate formulu koja dinamički rangira vrednosti, a zatim da je filtrirate po vrednostima rangiranja ili da koristite vrednost rangiranja kao modul za sečenje. Drugi deo ovog odeljka opisuje kako da kreirate ovu formulu i kako da zatim koristite taj rang u modulu Slicer.
Postoje prednosti i mane svake metode.
- Filter "Vrh" u programu Excel jednostavan je za korišćenje, ali služi samo u svrhe prikaza. Ako se podaci od kojih se zasniva izvedena tabela promene, morate ručno osvežiti izvedenu tabelu da biste videli promene. Ako treba da dinamički radite sa rangiranjem, možete da koristite DAX da biste kreirali formulu koja poredi vrednosti sa drugim vrednostima unutar kolone.
- DAX formula je moćnija; štaviše, dodavanjem vrednosti rangiranja u Slicer, možete jednostavno da kliknete na Slicer da biste promenili broj prikazanih najvećih vrednosti. Međutim, izračunavanja su računarski skupa i ovaj metod možda nije prikladan za tabele sa mnogo redova.
Prikazivanje samo deset prvih stavki u izvedenoj tabeli
Da biste prikazali najviše ili najniže vrednosti u izvedenoj tabeli
|
|---|
Dinamički raspored stavki pomoću formule
Sledeća tema sadrži primer korišćenja jezika DAX za kreiranje rangiranja koje je uskladišteno u izračunatoj koloni. Pošto se DAX formule izračunavaju dinamički, uvek možete biti sigurni da je rangiranje tačno, čak i ako se osnovni podaci promene. Takođe, pošto se formula koristi u izračunatoj koloni, možete koristiti rangiranje u modulu Slicer, a zatim izabrati prvih 5, prvih 10 ili čak prvih 100 vrednosti.