U ovom se odjeljku nalaze veze na primjere koji pokazuju korištenje DAX formula u sljedećim scenarijima.
- Složeni izračuni
- Rad s tekstom i datumima
- Uvjetne vrijednosti i testiranje pogrešaka
- Korištenje inteligencije vremena
- Rangiranje i usporedba vrijednosti
Sadržaj članka
Početak rada
Posjetite wiki centar za resurse za DAX na kojem možete pronaći razne informacije o programu DAX, uključujući blogove, uzorke, studiju i videozapise vodećih stručnjaka u industriji i Microsofta.
Scenariji: složeni izračuni
DAX formule mogu izvoditi složene izračune koji obuhvaćaju prilagođene agregacije, filtriranje i korištenje uvjetnih vrijednosti. U ovom se odjeljku navode primjeri za početak rada s prilagođenim izračunima.
Stvaranje prilagođenih izračuna za zaokretnu tablicu
CALCULATE i CALCULATETABLE snažne su, fleksibilne funkcije korisne za definiranje izračunatih polja. Te funkcije omogućuju promjenu konteksta u kojem će se izračun izvoditi Možete i prilagoditi vrstu izvođenja agregacije ili matematičke operacije. Primjere potražite u sljedećim temama.
Primjena filtra na formulu
Na većini mjesta gdje DAX funkcija uzima tablicu kao argument, obično možete proslijediti filtriranu tablicu, bilo korištenjem funkcije FILTER umjesto naziva tablice ili navođenjem izraza filtra kao jednog od argumenata funkcije. U sljedećim se temama navode primjeri stvaranja filtara i kako filtri utječu na rezultate formula. Dodatne informacije potražite u članku Filtriranje podataka u DAX formulama.
Funkcija FILTER omogućuje navođenje kriterija filtriranja pomoću izraza, dok su druge funkcije dizajnirane isključivo za filtriranje praznih vrijednosti.
Selektivno uklanjanje filtara radi stvaranja dinamičnog omjera
Stvaranjem dinamičkih filtara u formulama možete jednostavno odgovoriti na sljedeća pitanja:
- Koji je bio doprinos prodaje trenutnog proizvoda ukupnoj prodaji tijekom godine?
- Koliko je ova divizija pridonijela ukupnoj dobiti za sve poslovne godine u usporedbi s drugim odjelima?
Na formule koje koristite u zaokretnoj tablici može utjecati kontekst zaokretne tablice, no možete ga selektivno promijeniti dodavanjem ili uklanjanjem filtara. U primjeru u temi SVE prikazano je kako to učiniti. Da biste saznali omjer prodaje određenog prodavača i prodaje svih prodavača, stvorite mjeru koja izračunava vrijednost za trenutni kontekst podijeljenu s vrijednošću za kontekst ALL.
Tema ALLEXCEPT nudi primjer selektivnog čišćenja filtara u formuli. Oba primjera provest će vas kroz način na koji se rezultati mijenjaju ovisno o dizajnu zaokretne tablice.
Druge primjere izračuna omjera i postotaka potražite u sljedećim člancima:
Korištenje vrijednosti iz vanjske petlje
Osim korištenja vrijednosti iz trenutnog konteksta u izračunima, DAX može koristiti vrijednost iz prethodne petlje pri stvaranju skupa povezanih izračuna. Sljedeća tema sadrži vodič za sastavljanje formule koja se poziva na vrijednost iz vanjske petlje. Funkcija EARLIER podržava do dvije razine ugniježđenih petlji.
Dodatne informacije o kontekstu retka i povezanim tablicama te upute za korištenje tog koncepta u formulama potražite u kontekstu u DAX formulama.
Scenariji: rad s tekstom i datumima
U ovom se odjeljku nalaze veze na teme za DAX koje sadrže primjere uobičajenih scenarija koji obuhvaćaju rad s tekstom, izdvajanje i sastavljanje vrijednosti datuma i vremena ili stvaranje vrijednosti na temelju uvjeta.
Stvaranje stupca ključa prema povezivanju
Power Pivot ne dopušta složene tipke. Stoga ako u izvoru podataka imate složene ključeve, možda ćete ih morati objediniti u jedan stupac ključa. U sljedećoj se temi navodi primjer stvaranja izračunatog stupca na temelju složenog ključa.
Sastavljanje datuma na temelju dijelova datuma izdvojenih iz tekstnog datuma
Power Pivot za rad s datumima koristi vrstu podataka datuma/vremena sustava SQL Server Prema tome, ako vanjski podaci sadrže datume koji su drugačije oblikovani, primjerice, ako su datumi zapisani u regionalnom obliku datuma koji podatkovni modul dodatka Power Pivot ne prepoznaje, ili ako podaci koriste cjelobrojne zamjenske ključeve, možda ćete morati pomoću DAX formule izdvojiti dijelove datuma i vremena te dijelove sastaviti u valjani prikaz datuma/vremena.
Ako, na primjer, imate stupac s datumima koji su predstavljeni kao cijeli brojevi, a zatim su uvezeni kao tekstni niz, niz možete pretvoriti u vrijednost datuma/vremena pomoću sljedeće formule:
=DATE(RIGHT([Vrijednost1];4);LEFT([Vrijednost1];2);MID([Vrijednost1];2))
| Vrijednost1 | Rezultat |
|---|---|
| 01032009 | 1/3/2009 |
| 12132008 | 12/13/2008 |
| 06252007 | 6/25/2007 |
U sljedećim su temama navedene dodatne informacije o funkcijama koje služe za izdvajanje i sastavljanje datuma.
Definiranje prilagođenog oblika datuma ili broja
Ako podaci sadrže datume ili brojeve koji nisu predstavljeni u jednom od standardnih oblika teksta u sustavu Windows, možete definirati prilagođeni oblik da biste bili sigurni da se vrijednostima pravilno rukuje. Ti se oblici koriste prilikom pretvaranja vrijednosti u nizove ili iz nizova. U sljedećim je člancima naveden i detaljan popis unaprijed definiranih oblika dostupnih za rad s datumima i brojevima.
- Unaprijed definirani numerički oblici za funkciju FORMAT
- Prilagođeni numerički oblici za funkciju FORMAT
- Unaprijed definirani oblici datuma i vremena za funkciju FORMAT
- Prilagođeni oblici datuma i vremena za funkciju FORMAT
Promjena vrsta podataka pomoću formule
U dodatku Power Pivot vrstu podataka izlaza određuju izvorni stupci i ne možete izričito navesti vrstu podataka rezultata jer optimalnu vrstu podataka određuje Power Pivot. No za manipulaciju vrstom izlaznih podataka možete koristiti implicitne pretvorbe vrste podataka koje izvršava Power Pivot.
- Da biste pretvorili datum ili niz brojeva u broj, pomnožite ih s 1,0. Sljedeća formula, primjerice, izračunava trenutni datum minus tri dana, a zatim vraća odgovarajući cjelobrojnu vrijednost.
=(TODAY()-3)*1,0 - Da biste pretvorili datum, broj ili valutu u niz, spojite vrijednost s praznim nizom. Sljedeća formula, primjerice, vraća današnji datum kao niz.
=""& TODAY()
Da bi se osiguralo vraćanje određene vrste podataka, mogu se koristiti i sljedeće funkcije:
Pretvaranje realnih brojeva u cijele brojeve
- Funkcija ROUND
- Funkcija CEILING
-
Funkcija FLOOR
Pretvorba realnih brojeva, cijelih brojeva ili datuma u nizove - Funkcija FIXED
-
Funkcija FORMAT
Pretvaranje nizova u realne brojeve ili datume - VALUE Function
- Funkcija DATEVALUE
- Funkcija TIMEVALUE
Scenarij: uvjetne vrijednosti i testiranje pogrešaka
Kao i Excel, DAX ima funkcije koje omogućuju testiranje vrijednosti u podacima i vraćanje različitih vrijednosti na temelju uvjeta. Mogli biste, primjerice, stvoriti izračunati stupac koji označava prodavače kao Preferirano ili Vrijednost , ovisno o godišnjem iznosu prodaje. Funkcije koje testiraju vrijednosti korisne su i za provjeru raspona ili vrste vrijednosti da bi se spriječilo da neočekivane pogreške podataka dovedu do pogrešnih izračuna.
Stvaranje vrijednosti na temelju uvjeta
Pomoću ugniježđenih uvjeta IF možete testirati vrijednosti i uvjetno generirati nove. Sljedeće teme sadrže nekoliko jednostavnih primjera uvjetne obrade i uvjetnih vrijednosti:
Testiranje pogrešaka u formuli
Za razliku od programa Excel, u jednom retku izračunatog stupca ne možete imati valjane vrijednosti, a u drugom nevaljane vrijednosti. To jest, ako postoji pogreška u bilo kojem dijelu stupca dodatka Power Pivot, cijeli se stupac označava pogreškom, stoga uvijek morate ispravljati pogreške u formuli koje rezultiraju vrijednostima koje nisu valjane.
Ako, primjerice, stvorite formulu koja dijeli s nulom, možda će vam se prikazati rezultat beskonačnosti ili pogreška. Neke formule neće uspjeti ni ako funkcija naiđe na praznu vrijednost kada očekuje brojčanu vrijednost. Tijekom razvoja podatkovnog modela najbolje je dopustiti pojavu pogrešaka da biste mogli kliknuti poruku i riješiti problem. No kada objavljujete radne knjige, trebali biste uvrstiti obradu pogrešaka da biste spriječili neuspjeh izračuna u neočekivanim vrijednostima.
Da biste izbjegli vraćanje pogrešaka u izračunatom stupcu, koristite kombinaciju logičkih i informacijskih funkcija za provjeru pogrešaka i uvijek vraćate valjane vrijednosti. Sljedeće teme sadrže nekoliko jednostavnih primjera kako to učiniti u jeziku DAX:
Scenariji: korištenje inteligencije vremena
DAX funkcije inteligencije vremena obuhvaćaju funkcije koje pomažu u dohvaćanju datuma ili raspona datuma iz podataka. Te datume ili raspone datuma zatim možete koristiti za izračun vrijednosti za slična razdoblja. Funkcije inteligencije vremena sadrže i funkcije koje rade sa standardnim intervalima datuma te omogućuju usporedbu vrijednosti kroz mjesece, godine ili tromjesečja. Možete stvoriti i formulu koja uspoređuje vrijednosti prvog i posljednjeg datuma navedenog razdoblja.
Popis svih funkcija inteligencije vremena potražite u članku Funkcije inteligencije vremena (DAX). Savjete o učinkovitom korištenju datuma i vremena u analizi dodatka Power Pivot potražite u članku Datumi u dodatku Power Pivot.
Izračun kumulativne prodaje
Sljedeće teme sadrže primjere izračuna završnog i početnog salda. Primjeri vam omogućuju stvaranje tekućih salda za različite intervale, kao što su dani, mjeseci, tromjesečja ili godine.
- Funkcija CLOSINGBALANCEMONTH, funkcija CLOSINGBALANCEQUARTER,funkcija CLOSINGBALANCEYEAR
- Funkcija OPENINGBALANCEMONTH, funkcija OPENINGBALANCEQUARTER,funkcija OPENINGBALANCEYEAR
Usporedba vrijednosti tijekom vremena
Sljedeće teme sadrže primjere načina usporedbe zbrojeva u različitim vremenskim razdobljima. Zadana vremenska razdoblja koja podržava DAX su mjeseci, tromjesečja i godine.
- Funkcija PREVIOUSMONTH, PREVIOUSQUARTER,PREVIOUSYEAR
- Funkcija TOTALMTD, Funkcija TOTALQTD, Funkcija TOTALYTD
- Funkcija PARALLELPERIOD
Izračun vrijednosti tijekom prilagođenog raspona datuma
Primjere dohvaćanja prilagođenih raspona datuma, npr. prvih 15 dana nakon početka promidžbe prodaje, potražite u sljedećim temama.
Ako koristite funkcije inteligencije vremena za dohvaćanje prilagođenog skupa datuma, taj skup datuma možete koristiti kao ulaz za funkciju koja izvodi izračune da biste stvorili prilagođene zbrajanja za vremenska razdoblja. Primjer tog postupka potražite u sljedećoj temi:
-
Napomena
Ako ne morate odrediti prilagođeni raspon datuma, ali radite sa standardnim računovodstvenim jedinicama kao što su mjeseci, tromjesečja ili godine, preporučujemo da izračune obavljate pomoću funkcija inteligencije vremena koje su dizajnirane za tu svrhu, kao što su TOTALQTD, TOTALMTD, TOTALQTD itd.
Scenariji: rangiranje i usporedba vrijednosti
Da bi se prikazao samo n najviši broj stavki u stupcu ili zaokretnoj tablici, imate nekoliko mogućnosti:
- Pomoću značajki u programu Excel možete stvoriti gornji filtar. Možete odabrati i više najvećih ili najmanjih vrijednosti u zaokretnoj tablici. U prvom dijelu ovog odjeljka opisuje se filtriranje prvih 10 stavki u zaokretnoj tablici. Dodatne informacije potražite u dokumentaciji programa Excel.
- Možete stvoriti formulu koja dinamički rangira vrijednosti, a zatim filtrirati prema vrijednostima rangiranja ili koristiti vrijednost rangiranja kao rezač. U drugom dijelu ovog odjeljka opisuje se kako stvoriti formulu i zatim koristiti taj položaj u rezaču.
Svaka metoda ima prednosti i nedostatke.
- Filtar Vrh programa Excel jednostavan je za korištenje, no služi samo za prikaz. Ako se podaci na kojima se temelji zaokretna tablica promijene, morate ručno osvježiti zaokretnu tablicu da biste vidjeli promjene. Ako želite dinamično raditi s rangiranjem, pomoću jezika DAX možete stvoriti formulu koja uspoređuje vrijednosti s drugim vrijednostima unutar stupca.
- DAX formula je snažnija; štoviše, dodavanjem vrijednosti rangiranja u rezač, možete jednostavno kliknuti rezač da biste promijenili broj prikazanih najviših vrijednosti. Međutim, izračuni su računski skupi i ova metoda možda nije prikladna za tablice s mnogo redaka.
Prikaz samo prvih deset stavki u zaokretnoj tablici
Prikaz najvećih ili najmanjih vrijednosti u zaokretnoj tablici
|
|---|
Dinamično redoslijed stavki pomoću formule
Sljedeća tema sadrži primjer korištenja jezika DAX radi stvaranja rangiranja pohranjenog u izračunatom stupcu. Budući da se DAX formule izračunavaju dinamički, uvijek možete biti sigurni da je rangiranje točno, čak i ako se temeljni podaci promijenili. Budući da se formula koristi u izračunatom stupcu, možete koristiti rangiranje u rezaču, a zatim odabrati 5 najvećih, 10 najvećih ili čak 100 najvećih vrijednosti.