U ovom su odjeljku navedene veze na primjere koji pokazuju korištenje DAX formula u sljedećim scenarijima.
-
Izvođenje složenih izračuna
-
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 dax resource center na kojem možete pronaći sve vrste informacija o DAX-u, uključujući blogove, uzorke, whitepapers i videozapise vodećih stručnjaka u industriji i Microsofta.
Scenariji: izvođenje složenih izračuna
DAX formule mogu izvoditi složene izračune koji obuhvaćaju prilagođene agregacije, filtriranje i korištenje uvjetnih vrijednosti. U ovom su odjeljku navedeni primjeri načina rada s prilagođenim izračunima.
Stvaranje prilagođenih izračuna za zaokretnu tablicu
FUNKCIJE CALCULATE i CALCULATETABLE snažne su i fleksibilne funkcije koje su korisne za definiranje izračunatih polja. Te funkcije omogućuju promjenu konteksta u kojem će se izvršiti izračun. Možete i prilagoditi vrstu agregacije ili matematičke operacije za izvođenje. Primjere potražite u sljedećim temama.
Primjena filtra na formulu
Na većini mjesta na kojima funkcija DAX uzima tablicu kao argument, obično možete proslijediti u filtriranoj tablici, bilo pomoću funkcije FILTER umjesto naziva tablice ili određivanjem izraza filtra kao jednog od argumenata funkcije. U sljedećim su temama navedeni 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 vam određivanje kriterija filtriranja pomoću izraza, dok su ostale funkcije osmišljene posebno za filtriranje praznih vrijednosti.
Selektivno uklanjanje filtara radi stvaranja dinamičnog omjera
Stvaranjem dinamičnih filtara u formulama možete jednostavno odgovoriti na pitanja kao što su sljedeća:
-
Koji je bio doprinos prodaje trenutnog proizvoda ukupnoj prodaji za godinu?
-
Koliko je ova podjela doprinijela ukupnoj dobiti za sve operativne godine, u usporedbi s drugim odjelima?
Kontekst zaokretne tablice može utjecati na formule koje koristite u zaokretnoj tablici, ali kontekst možete selektivno promijeniti dodavanjem ili uklanjanjem filtara. U primjeru u temi ALL prikazuje se kako to učiniti. Da biste pronašli omjer prodaje za određenog prodavača u prodaji za sve prodavače, stvorite mjeru koja izračunava vrijednost za trenutni kontekst podijeljen s vrijednošću za kontekst ALL.
Tema ALLEXCEPT sadrži primjer selektivnog čišćenja filtara u formuli. Oba primjera objašnjavaju kako se rezultati mijenjaju ovisno o dizajnu zaokretne tablice.
Ostale primjere izračuna omjera i postotaka potražite u sljedećim temama:
Korištenje vrijednosti iz vanjske petlje
Osim korištenja vrijednosti iz trenutnog konteksta u izračunima, DAX može koristiti vrijednost iz prethodne petlje u stvaranju skupa povezanih izračuna. U sljedećoj je temi opisano kako stvoriti formulu koja se poziva na vrijednost iz vanjske petlje. Funkcija EARLIER podržava do dvije razine ugniježđenih petlji.
Da biste saznali više o kontekstu retka i povezanim tablicama te kako koristiti taj koncept u formulama, pročitajte kontekst u DAX formulama.
Scenariji: rad s tekstom i datumima
Ovaj odjeljak sadrži veze na daX reference teme 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 spajanjem
Power Pivot ne dopušta složene ključeve; stoga, ako imate složene ključeve u izvoru podataka, možda ćete ih morati kombinirati u jedan stupac ključa. U sljedećoj je temi prikazan primjer stvaranja izračunatog stupca na temelju složenog ključa.
Sastavljanje datuma na temelju dijelova datuma izdvojenih iz tekstnog datuma
Power Pivot koristi vrstu podataka datuma/vremena sustava SQL Server za rad s datumima; stoga, ako vaši vanjski podaci sadrže datume koji su drugačije oblikovani – na primjer, ako su datumi napisani u regionalnom obliku datuma koji nije prepoznao podatkovni modul sustava Power Pivot ili ako vaši podaci koriste ključeve za zamjenske brojeve cijelih brojeva – možda ćete morati koristiti DAX formulu za izdvajanje dijelova datuma i sastavljanje dijelova u valjani prikaz datuma/vremena.
Ako, primjerice, imate stupac s datumima koji su predstavljeni kao cijeli broj, a zatim 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 temama navedene su dodatne informacije o funkcijama koje se koriste 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 tekstnih oblika sustava Windows, možete definirati prilagođeni oblik da biste bili sigurni da se vrijednosti pravilno rukuju. Ti se oblici koriste prilikom pretvaranja vrijednosti u nizove ili iz nizova. Sljedeće teme sadrže i detaljan popis unaprijed definiranih oblika koji su dostupni za rad s datumima i brojevima.
Promjena vrsta podataka pomoću formule
U Power Pivot, vrsta podataka izlaza određena je izvornim stupcima i ne možete izričito navesti vrstu podataka rezultata jer optimalnu vrstu podataka određuje Power Pivot. No možete koristiti implicitne pretvorbe vrsta podataka koje Power Pivot za rukovanje vrstom izlaznih podataka.
-
Da biste datum ili brojčani niz pretvorili u broj, pomnožite ga s 1,0. Sljedeća formula, primjerice, izračunava trenutni datum minus 3 dana, a zatim daje odgovarajuću cjelobrojnu vrijednost.
=(TODAY()-3)*1,0
-
Da biste vrijednost datuma, broja ili valute pretvorili u niz, vrijednost upišite u prazan niz. Sljedeća formula, primjerice, vraća današnji datum kao niz.
=""& TODAY()
Sljedeće se funkcije mogu koristiti i za osiguravanje da se vrati sljedeća vrsta podataka:
Pretvori realne brojeve u cijele brojeve
-
Pretvaranje realnih brojeva, cijelih brojeva ili datuma u nizove
-
Pretvaranje nizova u stvarne brojeve ili datume
Scenarij: uvjetne vrijednosti i testiranje pogrešaka
Kao i Excel, DAX sadrži funkcije koje vam omogućuju testiranje vrijednosti u podacima i vraćanje druge vrijednosti na temelju uvjeta. Možete, primjerice, stvoriti izračunati stupac koji prodavače označava kao Preferirano ili Vrijednost ovisno o godišnjem iznosu prodaje. Funkcije koje testne vrijednosti također su korisne za provjeru raspona ili vrste vrijednosti, kako bi se spriječilo neočekivane pogreške podataka u prekidu izračuna.
Stvaranje vrijednosti na temelju uvjeta
Pomoću ugniježđenih uvjeta IF možete testirati vrijednosti i uvjetno generirati nove vrijednosti. Sljedeće teme sadrže neke jednostavne primjere uvjetne obrade i uvjetnih vrijednosti:
Testiranje pogrešaka unutar formule
Za razliku od programa Excel, u jednom retku izračunatog stupca ne možete imati valjane vrijednosti i vrijednosti koje nisu valjane u drugom retku. To jest, ako u bilo kojem dijelu stupca Power Pivot postoji pogreška, cijeli se stupac označava pogreškom, pa uvijek morate ispraviti pogreške formula koje rezultiraju vrijednostima koje nisu valjane.
Ako, primjerice, stvorite formulu koja se dijeli s nulom, možda ćete dobiti beskonačni rezultat ili pogrešku. Neke formule neće uspjeti ako funkcija naiđe na praznu vrijednost kada očekuje brojčanu vrijednost. Tijekom razvoja podatkovnog modela najbolje je dopustiti prikaz pogrešaka da biste mogli kliknuti poruku i riješiti problem. No prilikom objavljivanja radnih knjiga trebali biste ugraditi rukovanje pogreškama da biste spriječili neočekivane vrijednosti da uzrokuju neuspjeh izračuna.
Da biste izbjegli vraćanje pogrešaka u izračunatom stupcu, koristite kombinaciju logičkih i informativnih funkcija da biste provjerili pogreške i uvijek vraćali valjane vrijednosti. Sljedeće teme sadrže neke jednostavne primjere kako to učiniti u programu DAX:
Scenariji: korištenje inteligencije vremena
DaX funkcije inteligencije vremena obuhvaćaju funkcije koje olakšavaju dohvaćanje datuma ili raspona datuma iz podataka. Nakon toga te datume ili raspone datuma možete koristiti za izračun vrijednosti u sličnim razdobljima. Funkcije inteligencije vremena obuhvaćaju i funkcije koje funkcioniraju sa standardnim intervalima datuma da biste omogućili usporedbu vrijednosti u mjesecima, godinama ili tromjesečjima. Možete stvoriti i formulu koja uspoređuje vrijednosti za prvi i zadnji datum navedenog razdoblja.
Popis svih funkcija inteligencije vremena potražite u članku Funkcije inteligencije vremena (DAX). Savjete o učinkovitoj upotrebi datuma i vremena u analizi Power Pivot potražite u članku Datumi u dodatku Power Pivot.
Izračun kumulativne prodaje
Sljedeće teme sadrže primjere izračuna salda zatvaranja i otvaranja. Primjeri vam omogućuju stvaranje funkcionalnih salda u različitim intervalima, kao što su dani, mjeseci, tromjesečja ili godine.
Usporedba vrijednosti tijekom vremena
Sljedeće teme sadrže primjere usporedbe zbroja u različitim vremenskim razdobljima. Zadana vremenska razdoblja koja PODRŽAVA DAX su mjeseci, tromjesečja i godine.
Izračun vrijednosti preko prilagođenog raspona datuma
Pogledajte sljedeće teme za primjere kako dohvatiti prilagođene datumske raspone, kao što su prvih 15 dana nakon početka promocije prodaje.
Ako za dohvaćanje prilagođenog skupa datuma koristite funkcije inteligencije vremena, taj skup datuma možete koristiti kao unos u funkciju koja izvodi izračune da biste stvorili prilagođene agregacije tijekom vremenskih razdoblja. Pogledajte sljedeću temu za primjer kako to učiniti:
-
Napomena: Ako ne morate navesti prilagođeni raspon datuma, ali radite sa standardnim računovodstvenim jedinicama, kao što su mjeseci, tromjesečja ili godine, preporučujemo izvođenje izračuna pomoću funkcija inteligencije vremena osmišljenih u tu svrhu, kao što su TOTALQTD, TOTALMTD, TOTALQTD itd.
Scenariji: rangiranje i usporedba vrijednosti
Da biste prikazali samo prvi n broj stavki u stupcu ili zaokretnoj tablici, imate nekoliko mogućnosti:
-
Pomoću značajki u programu Excel možete stvoriti filtar Top. Možete odabrati i broj gornjih ili donjih 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 rangi vrijednosti, a zatim filtrirati prema vrijednosti rangiranja ili koristiti vrijednost rangiranja kao rezač. U drugom dijelu ovog odjeljka opisuje se kako stvoriti ovu formulu, a zatim koristiti to rangiranje u rezaču.
Postoje prednosti i nedostaci za svaku metodu.
-
Filtar Excel Top jednostavan je za korištenje, ali filtar je isključivo u svrhu prikaza. Ako se podaci na kojima se temelji zaokretna tablica mijenjaju, morate ručno osvježiti zaokretnu tablicu da biste vidjeli promjene. Ako morate dinamički raditi s rangiranjem, pomoću DAX-a možete stvoriti formulu koja uspoređuje vrijednosti s drugim vrijednostima unutar stupca.
-
DAX formula je snažnija; Osim toga, dodavanjem vrijednosti rangiranja u rezač možete jednostavno kliknuti rezač da biste promijenili broj prikazanih najviših vrijednosti. No izračuni su računalno skupi i ta metoda možda nije prikladna za tablice s mnogo redaka.
Prikaz samo deset prvih stavki u zaokretnoj tablici
Prikaz gornjih ili donjih vrijednosti u zaokretnoj tablici
|
Dinamički redoslijed stavki pomoću formule
Sljedeća tema sadrži primjer korištenja DAX-a za stvaranje 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 su se temeljni podaci promijenili. Osim toga, budući da se formula koristi u izračunatom stupcu, možete koristiti rangiranje u rezaču, a zatim odabrati prvih 5, prvih 10 ili čak 100 prvih vrijednosti.