Kontekst u DAX formulama

Kontekst omogućuje izvođenje dinamičke analize u kojoj se rezultati formule mogu promijeniti tako da odražavaju postojeći redak ili odabir ćelije i sve srodne podatke. Kontekst razumijevanja i učinkovito korištenje konteksta vrlo su važni za izgradnju formula visokih performansi, dinamičkih analiza i otklanjanja poteškoća u formulama.

U ovom se odjeljku definiraju različite vrste konteksta: kontekst retka, kontekst upita i kontekst filtra. Objašnjava kako se kontekst procjenjuje na formule u izračunatim stupcima i u zaokretnim tablicama.

U zadnjem dijelu ovog članka nalaze se veze na detaljne primjere koji ilustriraju kako se rezultati formula mijenjaju u skladu s kontekstom.

Kontekst razumijevanja

Formule u Power Pivot mogu utjecati filtri primijenjeni u zaokretnoj tablici, prema odnosima između tablica i filtrima koji se koriste u formulama. Kontekst je ono što omogućuje izvršavanje dinamičke analize. Kontekst razumijevanja važan je za izgradnju i otklanjanje poteškoća s formulama.

Postoje različite vrste konteksta: kontekst retka, kontekst upita i kontekst filtra.

Kontekst retka može se misliti kao "sadašnji redak". Ako ste stvorili izračunati stupac, kontekst retka sastoji se od vrijednosti u svakom pojedinom retku i vrijednosti u stupcima koji su vezani uz postojeći redak. Postoje i neke funkcije (starije i najstarije) koje dobiju vrijednost iz tekućeg retka, a zatim koriste tu vrijednost dok obavljaju operaciju u cijeloj tablici.

Kontekst upita odnosi se na podskup podataka koji je implicitno stvoren za svaku ćeliju u zaokretnoj tablici, ovisno o zaglavljima redaka i stupaca.

Kontekst filtra skup je vrijednosti koji su dopušteni u svakom stupcu, na temelju ograničenja filtra koje su primijenjene na redak ili koje su definirane izrazima filtra unutar formule.

Vrh stranice

Kontekst retka

Ako stvorite formulu u izračunatom stupcu, kontekst retka za tu formulu obuhvaća vrijednosti iz svih stupaca u trenutnim recima. Ako je tablica vezana uz drugu tablicu, sadržaj obuhvaća i sve vrijednosti iz te druge tablice koje su vezane uz postojeći redak.

Pretpostavimo, primjerice, da stvarate izračunati stupac, = [teret] + [porez],

, koja objedinjuje dva stupca iz iste tablice. Ova formula ponaša se kao formule u tablici programa Excel, što automatski referenca vrijednosti iz istog retka. Primjetite da su tablice različite od raspona: ne možete referencirati vrijednost iz retka prije tekućeg retka korištenjem notacije raspona i ne možete referencirati bilo koju proizvoljnu jedinstvenu vrijednost u tablici ili ćeliji. Uvijek morate raditi s tablicama i stupcima.

Kontekst retka automatski slijedi odnose između tablica da bi se utvrdilo koji su reci u povezanim tablicama povezani s trenutnim retkom.

Na primjer, sljedeća formula koristi povezanu funkciju za dohvaćanje porezne vrijednosti iz srodne tablice na temelju regije na koju je nalog otpremljen. Vrijednost porezne vrijednosti određuje se pomoću vrijednosti za regiju u tekućoj tablici, koja traži regiju u povezanoj tablici, a zatim dobiva poreznu stopu za to područje iz srodne tablice.

= [Teret] + RELATED (' regija ' [TaxRate])

Ova formula jednostavno dobiva poreznu stopu za trenutno područje iz tablice regija. Ne morate znati ili navesti ključ koji povezuje tablice.

Kontekst više redaka

Osim toga, DAX obuhvaća funkcije koje opetuju izračuni u tablici. Te funkcije mogu imati više trenutnih redaka i kontekstnih redaka. U programskim uvjetima možete stvarati formule koje se ponavljaju iznad unutrašnje i vanjske petlje.

Pretpostavimo, primjerice, da radna knjiga sadrži tablicu proizvodi i tablicu Prodaja . Možda želite proći kroz cijelu tablicu prodaje, koja je puna transakcija koje obuhvaćaju više proizvoda i pronaći najveću željenu količinu za svaki proizvod u bilo koju transakciju.

U programu Excel ovaj izračun zahtijeva niz srednjih sažetaka, koji bi se morali obnoviti ako se podaci promijene. Ako ste napredni korisnik programa Excel, mogli biste stvoriti formule polja koje će obaviti taj posao. Alternativno, u relacijskoj bazi podataka možete pisati ugniježđene subodabire.

No uz DAX možete stvoriti jednu formulu koja vraća ispravnu vrijednost, a rezultati će se automatski ažurirati kad god dodate podatke u tablice.

= MAXX (filtar (prodaja; [ProdKey] = raniji ([ProdKey])), prodaja [količina narudžbe])

Detaljne upute za prikaz ove formule potražite u prethodnom.

Ukratko, funkcija ranija pohranjuje kontekst retka iz operacije koja je prethodila tekućoj operaciji. U svakom trenutku funkcija pohranjuje u memoriji dva skupa konteksta: jedan skup konteksta predstavlja sadašnji redak za unutarnju petlju formule, a drugi skup konteksta predstavlja sadašnji redak za vanjsku petlju formule. DAX automatski sažete vrijednosti između dvaju petlja da biste mogli stvarati složene agregate.

Vrh stranice

Kontekst upita

Kontekst upita odnosi se na podskup podataka koji se implicitno dohvaćaju za formulu. Kada odbacite polje mjera ili druge vrijednosti u ćeliju u zaokretnoj tablici, Power Pivot motor provjerava zaglavlja redaka i stupaca, rezače i filtre izvješća da bi se utvrdilo kontekst. Zatim Power Pivot stvara potrebne proračune za popunjavanje svake ćelije u zaokretnoj tablici. Skup dohvaćenih podataka jest kontekst upita za svaku ćeliju.

Budući da se kontekst može promijeniti ovisno o tome gdje se formula nalazi, rezultati formule također se mijenjaju ovisno o tome koristite li formulu u zaokretnoj tablici s mnogo grupiranja i filtara ili u izračunatom stupcu bez filtara i minimalnog konteksta.

Pretpostavimo, primjerice, da stvorite ovu jednostavnu formulu koja zbraja vrijednosti u stupcu dobit tablice Prodaja : = Sum (' Prodaja ' [Dobit]).

Ako ovu formulu koristite u izračunatom stupcu unutar tablice Prodaja , rezultati za formulu bit će jednaki za cijelu tablicu jer je kontekst upita za formulu uvijek cijeli skup podataka u tablici Prodaja . Vaši će rezultati imati profit za sve regije, sve proizvode, sve godine i tako dalje.

Međutim, obično ne želite vidjeti isti rezultat stotinama puta, ali umjesto toga želite dobiti profit za određenu godinu, određenu državu ili regiju, određeni proizvod ili neku kombinaciju njih, a zatim dobiti ukupni zbroj.

U zaokretnoj tablici jednostavno je promijeniti kontekst dodavanjem ili uklanjanjem zaglavlja stupaca i redaka te dodavanjem ili uklanjanjem rezača. Formulu možete stvoriti kao što je ona iznad, u mjeri, a zatim je odbaciti u zaokretnu tablicu. Kada dodate naslove stupaca ili redaka u zaokretnu tablicu, promijenite kontekst upita u kojem se mjera procjenjuje. Operacije rezanja i filtriranja utječu i na kontekst. Stoga se ista formula, koja se koristi u zaokretnoj tablici, procjenjuje u drugom kontekstu upita za svaku ćeliju.

Vrh stranice

Kontekst filtra

Kontekst filtra dodaje se kada navedete ograničenja filtra na skupu vrijednosti koje su dopuštene u stupcu ili tablici, pomoću argumenata formule. Kontekst filtra primjenjuje se povrh ostalih konteksta, kao što su kontekst redaka ili kontekst upita.

Zaokretna tablica, primjerice, izračunava vrijednosti za svaku ćeliju na temelju zaglavlja redaka i stupaca, kao što je opisano u prethodnom odjeljku u kontekstu upita. No u mjerama ili izračunatim stupcima koje dodate u zaokretnu tablicu možete navesti izraze filtra da biste kontrolirali vrijednosti koje formula koristi. Možete i selektivno očistiti filtre u određenim stupcima.

Dodatne informacije o stvaranju filtara unutar formula potražite u članku funkcije filtra.

Primjer načina na koji se filtri mogu očistiti da bi se stvorili ukupni zbrojevi, pročitajte članak sve.

Primjere selektivnog čišćenja i primjene filtara u formulama potražite u članku funkcija Allexcept.

Stoga morate pregledati definiciju mjera ili formula koje se koriste u zaokretnoj tablici da biste saznali za kontekst filtra prilikom tumačenja rezultata formula.

Vrh stranice

Određivanje konteksta u formulama

Kada stvorite formulu, Power Pivot za Excel prvo provjerava opću sintaksu, a zatim provjerava nazive stupaca i tablica koje ste omogućili za moguće stupce i tablice u trenutnim kontekstu. Ako Power Pivot ne mogu pronaći stupce i tablice navedene u formuli, prikazat će vam se pogreška.

Kontekst se određuje kao što je opisano u prethodnim odjeljcima pomoću dostupnih tablica u radnoj knjizi, bilo koje odnose između tablica i svih primijenjenih filtara.

Ako ste, primjerice, upravo uvezli neke podatke u novu tablicu i niste primijenili filtre, cijeli skup stupaca u tablici dio je sadašnjeg konteksta. Ako imate više tablica povezanih vezama i radite u zaokretnoj tablici koja je filtrirana dodavanjem naslova stupaca i pomoću rezača, kontekst obuhvaća povezane tablice i sve filtre na podacima.

Context je moćan koncept koji otežava otklanjanje poteškoća s formulama. Preporučujemo da počnete s jednostavnim formulama i odnosima da biste vidjeli kako kontekst funkcionira, a zatim počnite eksperimentirati s jednostavnim formulama u zaokretnim tablicama. U sljedećem se odjeljku nalaze i neki primjeri načina na koji formule koriste različite vrste konteksta za dinamičko vraćanje rezultata.

Primjeri konteksta u formulama

  • Funkcija RELATED proširuje kontekst tekućeg retka tako da obuhvaća vrijednosti u povezanom stupcu. To vam omogućuje izvođenje pretraživanja. Primjeri u ovoj temi ilustrira interakciju konteksta filtriranja i retka.

  • Funkcija FILTER omogućuje vam da navedete retke koje želite uvrstiti u sadašnji kontekst. Primjeri u ovoj temi ilustriraju i kako ugraditi filtre unutar drugih funkcija koje obavljaju agregate.

  • Funkcija ALL postavlja kontekst unutar formule. Možete ga koristiti za nadjačavanje filtara koji se primjenjuju kao rezultat konteksta upita.

  • Funkcija ALLEXCEPT omogućuje uklanjanje svih filtara osim onog koji navedete. Obje teme obuhvaćaju primjere koji vas prolaze kroz izgradnju formula i razumijevanja složenih konteksta.

  • STARIJE i najstarije funkcije omogućuju vam da zaobilazite tablice pomoću izračuna, dok referenciranje vrijednosti iz unutrašnje petlje. Ako ste upoznati s konceptom rekurzije i unutarnjim i vanjskim petljama, cijenit ćete moć koju predstavljaju starije i najstarije funkcije. Ako ste novi u tim konceptima, slijedite upute u primjeru pažljivo da biste vidjeli kako se unutarnji i vanjski konteksti koriste u izračunima.

Vrh stranice

Referencijalni integritet

U ovom se odjeljku razmatraju neki Napredni koncepti vezani uz vrijednosti koje nedostaju u Power Pivot tablicama koje su povezane vezama. Ovaj će vam odjeljak biti koristan ako imate radne knjige s više tablica i kompleksnim formulama i želite pomoć u razumijevanju rezultata.

Ako ste novi u konceptima relacijskih podataka, preporučujemo da prvi put pročitate uvodnu temu, Pregled odnosa.

Referencijalni integritet i Power Pivot odnosi

Power Pivot ne zahtijeva da se referencijalni integritet primjenjuje između dviju tablica radi definiranja valjanog odnosa. Umjesto toga, na kraju svakog odnosa jedan-prema-više stvara se prazan redak, a koristi se za rukovanje svim recima koji nisu podudarni iz srodne tablice. Ona se učinkovito ponaša kao vanjski spoj SQL-a.

Ako u zaokretnim tablicama grupirajte podatke s jedne strane odnosa, svi Nepodudarni podaci s mnoge strane odnosa grupirani su i bit će uvršteni u ukupne zbrojeve uz prazni zaglavlje retka. Prazno zaglavlje približno je ekvivalentno "nepoznatom članu".

Razumijevanje nepoznatog člana

Pojam nepoznatog člana vjerojatno vam je poznat ako ste radili s multidimenzionalnim sustavima baze podataka, kao što je SQL Server Analysis Services. Ako vam je termin novi, sljedeći primjer objašnjava što je nepoznati član i kako utječe na izračune.

Pretpostavimo da stvarate izračun koji zbraja mjesečnu prodaju za svaku trgovinu, ali stupcu u tablici Prodaja nedostaje vrijednost za naziv trgovine. S obzirom na to da su tablice za pohranu i prodaju povezane s nazivom trgovine, što očekujete da će se dogoditi u formuli? Kako u grupi zaokretne tablice ili prikazati prodajne brojke koje nisu vezane uz postojeću trgovinu?

Taj je problem uobičajen u skladištima podataka, gdje se velike tablice podataka o činjenici moraju logički odnose na tablice dimenzija koje sadrže informacije o trgovinama, regijama i drugim atributima koji se koriste za kategoriziranje i izračunavanje činjenica. Da biste riješili problem, sve nove činjenice koje nisu vezane uz postojeći entitet privremeno su dodijeljene nepoznatom članu. Zbog toga će se nepovezane činjenice pojavljivati grupirani u zaokretnoj tablici ispod praznog naslova.

Liječenje praznih vrijednosti nasuprot praznom retku

Prazne vrijednosti razlikuju se od praznih redaka koji su dodani da bi se mogao smjestiti nepoznati član. Prazna vrijednost posebna je vrijednost koja se koristi za predstavljanje nullsa, praznih nizova i drugih vrijednosti koje nedostaje. Dodatne informacije o praznom vrijednosti, kao i ostalim vrstama DAX podataka potražite u članku vrste podataka u podatkovnim modelima.

Vrh stranice

Napomena:  Ova je stranica strojno prevedena te može sadržavati gramatičke pogreške ili netočnosti. Naša je namjera da vam ovaj sadržaj bude koristan. Jesu li vam te informacije bile korisne? Kao referencu možete pogledati i članak na engleskom jeziku.​

Potrebna vam je dodatna pomoć?

Proširite svoje vještine korištenja sustava Office
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

×