Jezik DAX v dodatku Power Pivot

Velja za
Excel za Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Izrazi za analizo podatkov (DAX) se sprva slišijo nekoliko zastrašujoče, vendar naj vas ime ne zavede. Osnove jezika DAX so zelo enostavne za razumevanje. Najprej - DAX NI programski jezik. DAX je jezik formule. Z jezikom 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, ki so zasnovane za delo z relacijskimi podatki in izvajanje dinamičnega združevanja.

Razumevanje formul jezika DAX

Formule DAX so zelo podobne formulam v Excelu. Če ga želite ustvariti, vnesite enačaj, ki mu sledi ime funkcije ali izraz in vse zahtevane vrednosti ali argumenti. Tako kot Excel tudi DAX ponuja različne funkcije, ki jih lahko uporabite za delo z nizi, izvajanje izračunov z datumi in časi ali ustvarjanje pogojnih vrednosti.

Vendar pa se formule DAX razlikujejo na te pomembne načine:

  • Če želite prilagoditi izračune po vrsticah, DAX vključuje funkcije, ki omogočajo uporabo trenutne vrednosti vrstice ali sorodne vrednosti za izvajanje izračunov, ki se razlikujejo glede na kontekst.
  • DAX vključuje vrsto funkcije, ki vrne tabelo kot rezultat in ne ene vrednosti. Te funkcije se lahko uporabljajo za zagotavljanje vnosa za druge funkcije.
  • Funkcije časovne inteligencev jeziku DAX omogočajo izračune z uporabo obsegov datumov in primerjavo rezultatov v vzporednih obdobjih.

Kje uporabljati formule DAX

Formule v dodatku Power Pivot lahko ustvarite 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 uvoza vrednosti v stolpec ustvarite formulo DAX, ki določa vrednosti stolpcev. Če tabelo dodatka Power Pivot vključite v vrtilno tabelo (ali vrtilni grafikon), lahko izračunani stolpec uporabite enako kot kateri koli drug stolpec s podatki.

Formule v izračunanih stolpcih so podobne formulam, ki jih ustvarite v Excelu. Za razliko od Excela pa ne morete ustvariti drugačne formule za različne vrstice v tabeli; namesto tega se formula DAX samodejno uporabi za celoten stolpec.

Ko stolpec vsebuje formulo, se vrednost izračuna 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 ponovni izračun.

Ustvarite lahko izračunane stolpce, ki temeljijo na meritvah in drugih izračunanih stolpcih. Vendar se izogibajte uporabi istega imena za izračunani stolpec in mero, saj lahko to povzroči zmedene rezultate. Ko se sklicujete na stolpec, je najbolje, da uporabite popolnoma kvalificirano sklicevanje na stolpec, da se izognete nenamernemu sklicevanju na ukrep.

Če želite podrobnejše informacije, glejte Izračunani stolpci v dodatku Power Pivot.

Ukrepi

Mera je formula, ki je ustvarjena posebej za uporabo v vrtilni tabeli (ali vrtilnem grafikonu), ki uporablja podatke dodatka Power Pivot. Merke lahko temeljijo na standardnih združevalnih funkcijah, kot sta COUNT ali SUM, ali pa določite lastno formulo z jezikom DAX. Mera je uporabljena v območju »Vrednosti « vrtilne tabele. Če želite izračunane rezultate postaviti v drugo območje vrtilne tabele, namesto tega uporabite izračunani stolpec.

Ko določite formulo za eksplicitno mero, se nič ne zgodi, dokler ne dodate mere v vrtilno tabelo. Ko dodate mero, se formula ovrednoti za vsako celico v območju »Vrednosti « vrtilne tabele. Ker je rezultat ustvarjen za vsako kombinacijo glav vrstic in stolpcev, je lahko rezultat za mero v vsaki celici drugačen.

Definicija mere, ki jo ustvarite, je shranjena skupaj s tabelo izvornih podatkov. Prikaže se na seznamu Polja vrtilne tabele in je 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, ponuja vnosno vrstico za lažje ustvarjanje in urejanje formul ter funkcijo samodokončanja, da zmanjšate napake pri tipkanju in sintaksi.

Vnos imena tabele Začnite vnašati ime tabele. Samodokončanje formul ponuja spustni seznam z veljavnimi imeni, ki se začnejo s temi črkami.

Vnos imena stolpca Vnesite oklepaj in nato izberite stolpec s seznama stolpcev v trenutni tabeli. Za stolpec iz druge tabele začnite vnašati prve črke imena tabele in nato izberite stolpec s spustnega seznama »Samodokončanje«.

Č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

Samodokončanje formule lahko uporabite sredi obstoječe formule z ugnezdenimi funkcijami. Besedilo tik pred mestom vstavljanja se uporablja za prikaz vrednosti na spustnem seznamu, vse besedilo za mestom vstavljanja pa ostane nespremenjeno.

Določena imena, ki jih ustvarite za konstante, niso prikazana na spustnem seznamu »Samodokončanje«, vendar jih lahko vseeno vnesete.

Power Pivot ne doda končnih oklepajev funkcij ali se samodejno ujema z oklepaji. Prepričajte se, da je vsaka funkcija skladenjsko pravilna, sicer formule ne morete shraniti ali uporabiti. 

Uporaba več funkcij v formuli

Funkcije lahko ugnezdite, kar pomeni, da rezultate ene funkcije uporabite kot argument druge funkcije. 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 zasnovane tako, da se uporabljajo samo kot ugnezdene funkcije. Te funkcije vrnejo tabelo, ki je zato ni mogoče neposredno shraniti; Zagotoviti ga je treba kot vhod v funkcijo tabele. Funkcije SUMX, AVERAGEX in MINX na primer zahtevajo tabelo kot prvi argument.

Opomba

V merilih obstajajo nekatere omejitve za gnezdenje funkcij, ki zagotavljajo, da na učinkovitost delovanja ne vplivajo številni izračuni, ki jih zahtevajo odvisnosti med stolpci.

Primerjava funkcij DAX in Excelovih funkcij

Knjižnica funkcij DAX temelji na Excelovi knjižnici funkcij, vendar se knjižnice veliko razlikujejo. V tem razdelku so povzete razlike in podobnosti med Excelovimi funkcijami in funkcijami DAX.

  • Številne funkcije DAX imajo enako ime in enako splošno vedenje kot Excelove funkcije, vendar so bile spremenjene tako, da sprejemajo različne vrste vnosov, v nekaterih primerih pa lahko vrnejo drugačen podatkovni tip. Na splošno ne morete uporabljati funkcij DAX v Excelovi formuli ali uporabiti Excelovih formul v dodatku Power Pivot brez nekaterih sprememb.
  • Funkcije jezika DAX nikoli ne vzamejo sklica na celico ali obsega kot sklic, temveč funkcije jezika DAX kot sklic vzamejo stolpec ali tabelo.
  • Funkcije datuma in časa DAX vrnejo podatkovni tip datuma in časa. Nasprotno pa Excelove funkcije datuma in ure vrnejo celo število, ki predstavlja datum kot zaporedno število.
  • Številne nove funkcije jezika DAX vrnejo tabelo vrednosti ali izračunajo na podlagi tabele vrednosti kot vhoda. Nasprotno pa Excel nima funkcij, ki vrnejo tabelo, vendar lahko nekatere funkcije delujejo z matrikami. Možnost preprostega sklicevanja na celotne tabele in stolpce je nova funkcija v dodatku Power Pivot.
  • DAX ponuja nove funkcije iskanja, ki so podobne funkcijam iskanja polja in vektorja v Excelu. Vendar pa funkcije jezika DAX zahtevajo, da je med tabelami vzpostavljena relacija.
  • Pričakuje se, da bodo podatki v stolpcu vedno istega podatkovnega tipa. Če podatki niso enake vrste, DAX spremeni celoten stolpec v podatkovni tip, ki najbolje ustreza vsem vrednostim.

Podatkovni tipi jezika DAX

Podatke lahko uvozite v podatkovni model Power Pivot iz številnih različnih virov podatkov, ki morda podpirajo različne vrste podatkov. Ko uvozite ali naložite podatke in jih nato uporabite v izračunih ali vrtilnih tabelah, se podatki pretvorijo v enega od podatkovnih tipov dodatka Power Pivot. Če si želite ogledati seznam podatkovnih tipov, 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 kot vhod in izpiše drugo tabelo, ki vsebuje le vrstice, ki izpolnjujejo pogoje filtra. Če združite funkcije tabele z združevalnimi funkcijami, lahko izvajate zapletene izračune nad dinamično določenimi nabori podatkov. Če želite več informacij, glejte Združevanje v dodatku Power Pivot.

Formule in relacijski model

Okno dodatka Power Pivot je območje, kjer lahko delate z več tabelami podatkov in jih povežete v relacijski model. V tem podatkovnem modelu so tabele med seboj povezane z relacijami, ki omogočajo ustvarjanje korelacije s stolpci v drugih tabelah in ustvarjanje zanimivejših izračunov. Ustvarite lahko na primer formule, ki seštejejo vrednosti za povezano tabelo, in nato to vrednost shranite v eno celico. Če želite nadzorovati vrstice iz povezane tabele, lahko uporabite filtre za tabele in stolpce. Če želite več informacij, glejte Relacije med tabelami v podatkovnem modelu.

Ker lahko tabele povežete 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, morate izračune načrtovati drugače kot v Excelu.

  • Na splošno je formula DAX v stolpcu vedno uporabljena za celoten nabor vrednosti v stolpcu (nikoli le za nekaj vrstic ali celic).
  • Tabele v dodatku 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 pričakuje, da se prepričate, da imata dva stolpca, uporabljena kot ključa, večinoma enake vrednosti. Ker Power Pivot ne uveljavlja referenčne celovitosti, je mogoče, da so v stolpcu ključa neujemajoče se vrednosti, vendar še vedno ustvarite 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 ovrednotene vaše formule. Na formule v vrtilni tabeli lahko na primer vplivajo kateri koli filtri ali naslovi stolpcev in vrstic v vrtilni tabeli. Napišete lahko formule, ki spreminjajo kontekst, vendar lahko kontekst povzroči tudi spremembo rezultatov na načine, ki jih morda ne pričakujete. Če želite več informacij, glejte Kontekst v formulah DAX.

Posodabljanje rezultatov formul

Osveževanje in vnovični izračun podatkov sta dve ločeni, vendar povezani operaciji, ki ju morate razumeti pri načrtovanju podatkovnega modela, ki vsebuje zapletene formule, velike količine podatkov ali podatke, pridobljene iz zunanjih virov podatkov.

Osveževanje podatkov je postopek posodabljanja podatkov v delovnem zvezku z novimi podatki iz zunanjega vira podatkov. Podatke lahko ročno osvežite v intervalih, ki jih določite. Če ste delovni zvezek objavili na SharePointovem mestu, lahko načrtujete samodejno osveževanje iz zunanjih virov.

Preračun je postopek posodabljanja rezultatov formul, da odražajo vse spremembe samih formul in odražajo te spremembe v osnovnih podatkih. Preračun lahko vpliva na učinkovitost delovanja na naslednje načine:

  • Za izračunani stolpec je treba rezultat formule vedno znova izračunati za celoten stolpec, ko spremenite formulo.
  • Za mero se rezultati formule ne izračunajo, dokler mera ni postavljena v kontekst vrtilne tabele ali vrtilnega grafikona. Formula bo preračunana tudi, ko spremenite katero koli glavo 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 se pri določanju formule prikaže napaka, lahko formula vsebuje sintaktično napako, semantično napako ali napako pri izračunu.

Skladenjske napake je najlažje rešiti. Običajno vključujejo manjkajoči oklepaj ali vejico. Če potrebujete pomoč za sintakso posameznih funkcij, glejte Sklic na funkcije DAX.

Druga vrsta napake se pojavi, ko je sintaksa pravilna, vendar vrednost ali stolpec, na katerega se sklicuje, nima smisla v kontekstu formule. Takšne semantične napake in napake v izračunu lahko povzroči katera koli od naslednjih težav:

  • Formula se nanaša na neobstoječi stolpec, tabelo ali funkcijo.
  • Formula se zdi pravilna, toda ko podatkovni mehanizem pridobi podatke, najde neujemanje vrste in sproži napako.
  • Formula funkciji posreduje napačno število ali vrsto parametrov.
  • Formula se nanaša na drug stolpec, ki ima napako, zato so njegove vrednosti neveljavne.
  • Formula se nanaša na stolpec, ki ni bil obdelan, kar pomeni, da ima metapodatke, vendar ne dejanskih podatkov, ki bi jih lahko uporabili za izračune.

V prvih štirih primerih DAX označi celoten stolpec, ki vsebuje neveljavno formulo. 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 številka), boste morda dobili napačne ali nepričakovane rezultate. Na primer, ko izračun deli 0 z 0, se vrne rezultat NaN.

To je zato, ker mehanizem formul izvaja razvrščanje in razvrščanje s primerjavo številskih vrednosti; vendar NaN ni mogoče primerjati z drugimi številkami v stolpcu.

Če želite zagotoviti pravilne rezultate, lahko uporabite pogojne stave s funkcijo IF za preverjanje 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 s tabelarnimi modeli storitev Analysis Services. Če pa preselite model dodatka Power Pivot v primerek storitev Analysis Services in ga nato uvedete v načinu DirectQuery, obstajajo nekatere omejitve.

  • Nekatere formule jezika 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 za relacijski vir podatkov.

Če želite več informacij, glejte dokumentacijo za tabelarno modeliranje storitev Analysis Services v strežniku SQL Server 2012 BooksOnline.