Jezik DAX se na prvi pogled sliši nekoliko zastrašujoče, vendar naj vas ime ne zavede. Osnove jezika DAX je zelo enostavno razumeti. Gremo po vrsti - DAX NI programski jezik. DAX je jezik formule. S formulo DAX lahko določite izračune po meri za izračunane stolpce in mere (znane tudi kot izračunana polja). DAX vključuje nekatere funkcije, ki se uporabljajo v Excelovih formulah, in dodatne funkcije, zasnovane za delo z relacijskimi podatki in izvajanje dinamičnega združevanja.
Razumevanje formul jezika DAX
Formule jezika DAX so zelo podobne Excelovim formulam. Če ga želite ustvariti, vnesite enačaj, nato ime funkcije ali izraz in morebitne zahtevane vrednosti ali argumente. Tako kot Excel tudi jezik DAX ponuja različne funkcije, ki jih lahko uporabite za delo z nizi, izvajanje izračunov z datumi in urami ali ustvarjanje pogojnih vrednosti.
Vendar pa se formule DAX razlikujejo na naslednje pomembne načine:
- Če želite prilagoditi izračune po vrsticah, DAX vključuje funkcije, s katerimi lahko uporabite trenutno vrednost vrstice ali povezano vrednost za izvajanje izračunov, ki se razlikujejo od konteksta.
- DAX vključuje vrsto funkcije, ki kot rezultat vrne tabelo in ne eno vrednost. S temi funkcijami je mogoče omogočiti vnos v druge funkcije.
- S funkcijami podatkov o časuv jeziku DAX lahko računate z obsegi datumov in primerjate rezultate v vzporednih obdobjih.
Kje uporabiti formule jezika DAX
V dodatku Power Pivot lahko ustvarite formule v izračunanih stolpcih ali v izračunanih poljih.
Izračunani stolpci
Izračunani stolpec je stolpec, ki ga dodate v obstoječo tabelo Power Pivot. Namesto lepljenja ali uvažanja vrednosti v stolpcu ustvarite formulo DAX, ki določa vrednosti stolpca. Če tabelo Power Pivot vključite v vrtilno tabelo (ali vrtilni grafikon), lahko izračunani stolpec uporabite kot kateri koli drug podatkovni stolpec.
Formule v izračunanih stolpcih so zelo podobne formulam, ki jih ustvarite v Excelu. Toda za razliko od Excela ne morete ustvariti drugačne formule za različne vrstice v tabeli; namesto tega je formula DAX samodejno uporabljena za celoten stolpec.
Če stolpec vsebuje formulo, je vrednost izračunana za vsako vrstico. Rezultati so izračunani za stolpec takoj, ko ustvarite formulo. Vrednosti stolpcev se znova izračunajo le, če so temeljni podatki osveženi ali če je uporabljen ročni izračun.
Ustvarite lahko izračunane stolpce, ki temeljijo na merah, in druge izračunane stolpce. Vendar se izogibajte uporabi istega imena za izračunani stolpec in mero, saj lahko to privede do zmedenih rezultatov. Ko se sklicujete na stolpec, je najbolje, da uporabite popolnoma določen sklic na stolpec, da se izognete nenamernemu priklicu mere.
Če želite podrobnejše informacije, glejte »Izračunani stolpci v orodju Power Pivot«.
Mere
Mera je formula, ustvarjena posebej za uporabo v vrtilni tabeli (ali vrtilnem grafikonu), ki uporablja podatke Power Pivot. Mere lahko temeljijo na standardnih funkcijah združevanja, kot sta COUNT ali SUM, lahko pa določite lastno formulo s pomočjo jezika DAX. Mera se uporablja v območju »Vrednosti « vrtilne tabele. Če želite izračunane rezultate postaviti v drugo območje vrtilne tabele, uporabite izračunani stolpec.
Ko določite formulo za eksplicitno mero, se nič ne zgodi, dokler mere ne dodate v vrtilno tabelo. Ko dodate mero, je formula ocenjena za vsako celico v območju vrednosti vrtilne tabele. Ker je rezultat ustvarjen za vsako kombinacijo glav vrstic in stolpcev, je rezultat mere lahko drugačen v vsaki celici.
Definicija mere, ki jo ustvarite, je shranjena v izvorni podatkovni tabeli. Prikazana so na seznamu polj vrtilne tabele in so na voljo vsem uporabnikom delovnega zvezka.
Če želite podrobnejše informacije, glejte Mere v orodju Power Pivot.
Ustvarjanje formul z vnosno vrstico
Power Pivot, tako kot Excel, omogoča vnosno vrstico za lažje ustvarjanje in urejanje formul ter funkcijo samodokončanja za zmanjšanje črkovalnih napak in napak v sintaksi.
Vnašanje imena tabele Začnite vnašati ime tabele. Funkcija za samodokončanje formul ponudi spustni seznam z veljavnimi imeni, ki se začnejo s temi črkami.
Vnos imena stolpca Vnesite oklepaj in nato na seznamu stolpcev v trenutni tabeli izberite stolpec. Za stolpec iz druge tabele začnite vnašati prve črke imena tabele in nato izberite stolpec s spustnega seznama »Samodokončaj«.
Če želite več podrobnosti in navodila za ustvarjanje formul, glejte »Ustvarjanje formul za izračune v dodatku Power Pivot«.
Namigi za uporabo funkcije samodokončanja
Funkcijo »Samodokončanje formule« lahko uporabite sredi obstoječe formule z ugnezdenimi funkcijami. Besedilo tik pred točko vstavljanja se uporabi za prikaz vrednosti na spustnem seznamu, celotno besedilo za točko vstavljanja pa ostane nespremenjeno.
Določena imena, ki jih ustvarite za konstante, niso prikazana na spustnem seznamu »Samodokončaj«, lahko pa jih vseeno vnesete.
Power Pivot ne doda zaključnega oklepaja funkcij ali oklepajev samodejno ujema. Preverite, ali so vse funkcije sintaktično pravilne, sicer formule ne morete shraniti ali uporabiti.
Uporaba več funkcij v formuli
Funkcije lahko ugnezdite, kar pomeni, da uporabite rezultate ene funkcije kot argument druge. V izračunane stolpce lahko ugnezdite do 64 ravni funkcij. Vendar pa lahko gnezdenje oteži ustvarjanje formul ali odpravljanje težav z njimi.
Številne funkcije jezika DAX so namenjene izključno uporabi kot ugnezdene funkcije. Te funkcije vrnejo tabelo, ki je posledično ni mogoče neposredno shraniti; Zagotoviti ga morate kot vhod za funkcijo tabele. Na primer, funkcije SUMX, AVERAGEX in MINX zahtevajo tabelo kot prvi argument.
Opomba
Znotraj mer obstajajo nekatere omejitve glede ugnezdenja funkcij, da se zagotovi, da na učinkovitost delovanja ne vplivajo številni izračuni, ki jih zahtevajo odvisnosti med stolpci.
Primerjava funkcij jezika DAX in Excelovih funkcij
Knjižnica funkcij DAX temelji na knjižnici Excelovih funkcij, vendar se knjižnici med njima veliko razlikujeta. V tem razdelku so povzete razlike in podobnosti med Excelovimi funkcijami in funkcijami jezika DAX.
- Številne funkcije jezika DAX imajo isto ime in delujejo tako splošno kot Excelove funkcije, vendar so bile spremenjene tako, da omogočajo različne vrste vnosov in v nekaterih primerih lahko vrnejo različne vrste podatkov. Na splošno ne morete uporabiti funkcij DAX v Excelovi formuli ali Excelovih formul v dodatku Power Pivot brez kakršnih koli sprememb.
- Funkcije DAX nikoli ne vzamejo sklica na celico ali obsega za sklic, temveč se funkcije DAX sklicujejo na stolpec ali tabelo.
- Funkcije datuma in ure DAX vrnejo podatkovni tip »Datetime«. Nasprotno pa Excelova funkcija za datum in čas vrne celo število, ki predstavlja datum kot zaporedno številko.
- Številne nove funkcije jezika DAX bodisi vrnejo tabelo vrednosti bodisi naredijo izračune na podlagi tabele vrednosti, ki predstavljajo vnos. Nasprotno pa Excel nima funkcij, ki bi vrnile tabelo, vendar nekatere funkcije delujejo s polji. Zmogljivost preprostega sklicevanja na celotne tabele in stolpce je nova funkcija v dodatku Power Pivot.
- V jeziku DAX so na voljo nove funkcije iskanja, ki so podobne funkcijam polja in vektorskega iskanja v Excelu. Vendar pa funkcije DAX zahtevajo, da je med tabelami ustvarjena relacija.
- Podatki v stolpcu naj bi bili vedno istega podatkovnega tipa. Če podatki niso iste vrste, DAX spremeni celoten stolpec v podatkovni tip, ki najbolje ustreza vsem vrednostim.
Podatkovni tipi jezika DAX
V podatkovni model Power Pivot lahko uvozite podatke iz številnih različnih virov podatkov, ki morda podpirajo različne podatkovne tipe. Ko uvozite ali naložite podatke in jih nato uporabite v izračunih ali v vrtilnih tabelah, so podatki pretvorjeni v enega od podatkovnih tipov dodatka Power Pivot. Če želite seznam vrst podatkov, glejte Podatkovni tipi v podatkovnih modelih.
Podatkovni tip tabele je nov podatkovni tip v jeziku DAX, ki se uporablja kot vhod ali izhod za številne nove funkcije. Funkcija FILTER na primer vzame tabelo za vnos in izpiše drugo tabelo, v kateri so samo vrstice, ki izpolnjujejo pogoje za filter. S kombinacijo funkcij tabele in funkcij združevanja lahko izvajate zapletene izračune v dinamično določenih naborih podatkov. Če želite več informacij, glejte Združevanja v dodatku Power Pivot.
Formule in relacijski model
Okno Power Pivot je območje, kjer lahko delate z več tabelami podatkov in povežete tabele v relacijski model. V tem podatkovnem modelu so tabele med seboj povezane z odnosi, s katerimi lahko ustvarite korelacije s stolpci v drugih tabelah in ustvarite bolj zanimive izračune. Ustvarite lahko na primer formule, ki seštejejo vrednosti za povezano tabelo, in nato shranite to vrednost v eno celico. Če pa želite nadzorovati vrstice v povezani tabeli, uporabite filtre za tabele in stolpce. Če želite več informacij, glejte Relacije med tabelami v podatkovnem modelu.
Ker lahko povežete tabele z relacijami, lahko vrtilne tabele vključujejo tudi podatke iz več stolpcev, ki so iz različnih tabel.
Ker pa formule lahko delujejo s celotnimi tabelami in stolpci, je treba izračune načrtovati drugače kot v Excelu.
- Na splošno velja, da je formula DAX v stolpcu vedno uporabljena za celoten nabor vrednosti v stolpcu (nikoli le za nekaj vrstic ali celic).
- Tabele v orodju Power Pivot morajo imeti vedno enako število stolpcev v vsaki vrstici, vse vrstice v stolpcu pa morajo vsebovati isti podatkovni tip.
- Ko so tabele povezane z relacijo, se od vas pričakuje, da imata dva stolpca, uporabljena kot ključa, večinoma enake vrednosti. Ker Power Pivot ne vsili referenčne integritete, je mogoče imeti neujemajoče se vrednosti v stolpcu ključa in kljub temu ustvariti relacijo. Vendar pa lahko prisotnost praznih ali neujemajočih se vrednosti vpliva na rezultate formul in videz vrtilnih tabel. Če želite več informacij, glejte »Iskanja v formulah dodatka Power Pivot«.
- Ko povežete tabele z relacijami, povečate obseg ali kontekst, v katerem so formule ovrednotene. Na formule v vrtilni tabeli lahko na primer vplivajo kateri koli filtri ali glave stolpcev in vrstic v vrtilni tabeli. Napišete lahko formule, ki spreminjajo kontekst, vendar lahko kontekst tudi povzroči, da se rezultati spremenijo na načine, ki jih morda ne pričakujete. Če želite več informacij, glejte Kontekst v formulah jezika DAX.
Posodabljanje rezultatov formul
Osveževanje podatkov in vnovično izračunavanje sta dve ločeni, vendar povezani operaciji, ki ju morate razumeti, ko načrtujete podatkovni model z zapletenimi formulami, velikimi količinami podatkov ali podatki, pridobljenimi iz zunanjih virov podatkov.
Osveževanje podatkov je postopek, med katerim se podatki v delovnem zvezku posodobijo z novimi podatki iz zunanjega vira podatkov. Podatke lahko ročno osvežite v intervalih, ki jih določite. Če pa ste delovni zvezek objavili na SharePointovem mestu, lahko načrtujete samodejno osveževanje iz zunanjih virov.
Vnovično izračunavanje je postopek posodabljanja rezultatov formul, da odražajo morebitne spremembe v samih formulah in temeljnih podatkih. Preračunavanje lahko vpliva na učinkovitost delovanja tako:
- V izračunanem stolpcu je treba rezultat formule vedno znova izračunati za celoten stolpec, kadar koli spremenite formulo.
- Za mero rezultati formule niso izračunani, dokler mera ni postavljena v kontekst vrtilne tabele ali vrtilnega grafikona. Formula bo znova izračunana tudi, ko spremenite glavo katere koli vrstice ali stolpca, ki vpliva na filtre podatkov, ali ko ročno osvežite vrtilno tabelo.
Odpravljanje težav s formulami
Napake pri pisanju formul
Če pride do napake pri določanju formule, formula morda vsebuje sintaktično napako, semantično napako ali napako računanja.
Sintaksične napake je najlažje odpraviti. Običajno vsebujejo manjkajoči oklepaj ali vejico. Če želite pomoč za sintakso posameznih funkcij, glejte sklic funkcije DAX.
Druga vrsta napake se pojavi, ko je sintaksa pravilna, vendar vrednost ali stolpec, na katerega se sklicuje, nista smiselna v kontekstu formule. Takšne semantične napake in napake v računanju lahko povzroči katera koli od teh težav:
- Formula se sklicuje na neobstoječ stolpec, tabelo ali funkcijo.
- Formula je videti pravilna, toda ko mehanizem podatkov poišče podatke, najde neujemanje vrste in javi napako.
- Formula funkciji poda napačno število ali vrsto parametrov.
- Formula se sklicuje na drug stolpec z napako, zato so njegove vrednosti neveljavne.
- Formula se sklicuje na stolpec, ki ni bil obdelan, kar pomeni, da vsebuje metapodatke, ni pa dejanskih podatkov, ki bi jih uporabil za izračune.
V prvih štirih primerih DAX označi celoten stolpec, v katerem je neveljavna formula. V zadnjem primeru DAX zatemni stolpec, kar pomeni, da je stolpec v neobdelanem stanju.
Nepravilni ali nenavadni rezultati pri razvrščanju ali razvrščanju vrednosti stolpcev
Pri razvrščanju ali razvrščanju stolpca, ki vsebuje vrednost NaN (ni število), boste morda dobili napačne ali nepričakovane rezultate. Ko na primer izračun deli 0 z 0, je vrnjen rezultat NaN.
To je zato, ker mehanizem formul izvaja razvrščanje in razvrščanje s primerjavo številskih vrednosti; Vendar pa NaN ni mogoče primerjati z drugimi števili v stolpcu.
Če želite zagotoviti pravilne rezultate, lahko s pogojnimi izjavami s funkcijo IF preverite vrednosti NaN in vrnete številsko vrednost 0.
Združljivost s tabelarnimi modeli storitev Analysis Services in načinom DirectQuery
Na splošno so formule DAX, ki jih ustvarite v dodatku Power Pivot, popolnoma združljive z tabelarnimi modeli analitičnih storitev. Če pa model dodatka Power Pivot preselite v primerek storitev Analysis Services in ga nato uvedete v načinu DirectQuery, obstaja nekaj omejitev.
- Nekatere formule DAX lahko vrnejo drugačne rezultate, če model uvedete v načinu DirectQuery.
- Nekatere formule lahko povzročijo napake pri preverjanju veljavnosti, ko model uvedete v način DirectQuery, ker formula vsebuje funkcijo DAX, ki ni podprta v relacijskem viru podatkov.
Če želite več informacij, glejte dokumentacijo za modeliranje Analysis Services v storitvi SQL Server 2012 BooksOnline.