Kontekst u DAX formulama

Važno :  Ovaj je članak strojno preveden. Pogledajteizjavu o odricanju od odgovornosti. Verziju ovog članka na engleskom potražite ovdje.

Kontekst omogućuje izvođenje dinamičke analize tijekom koje se rezultati formule mogu promijeniti da bi odražavali trenutno odabrane retke i ćelije te povezane podatke. Razumijevanje konteksta i njegovo učinkovito korištenje vrlo su važni za stvaranje formula visokih performansi, dinamičkih analiza te za otklanjanje poteškoća s formulama.

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

U posljednjem dijelu članka navedene su veze na detaljne primjere koji pokazuju kako se rezultati formula mijenjaju u ovisnosti o kontekstu.

Kontekst

Formula u Power Pivot možete utjecati tako da primijenjenim u zaokretnoj tablici, odnosi između tablica i filtri koristiti u formulama. Kontekst je zahvaljujući za dinamičku analizu. Važno sastavnih i za otklanjanje poteškoća s formulama je kontekst.

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

Kontekst retka može si predočiti kao "trenutni redak". Ako ste stvorili izračunati stupac, kontekst retka sastoji se od vrijednosti u svakom pojedinačnom retku te vrijednosti u stupcima koji su povezani s trenutnim retkom. Postoje i funkcije (Funkcija EARLIER i Funkcija EARLIEST) koje uzimaju vrijednost iz trenutnog retka, a zatim tu vrijednost koriste za izvođenje operacije na cijeloj tablici.

Kontekst upita odnosi se na podskup podataka implicitno stvorenih za svaku ćeliju zaokretne tablice, ovisno o naslovima redaka i stupaca.

Kontekst filtra skup je vrijednosti dopuštenih u svakom stupcu na temelju ograničenja filtra primijenjenog na redak ili ograničenja definiranih izrazima filtra unutar formule.

Vrh stranice

Kontekst retka

Ako u izračunatom stupcu stvorite formulu, kontekst retka za tu formulu uključuje vrijednosti iz svih stupaca trenutnog retka. Ako je tablica povezana s drugom tablicom, njen sadržaj uključuje i sve vrijednosti iz druge tablice povezane s trenutnim retkom.

Na primjer, pretpostavimo da ste stvorili izračunati stupac, = [Vozarina] + [porez]

koji zbraja dva stupca iz iste tablice. Ta se formula ponaša kao formule u tablici programa Excel, koje automatski referenciraju vrijednosti iz istog retka. Primijetite da se tablice razlikuju od raspona: nije moguće referencirati vrijednost iz retka prije trenutnog retka pomoću označavanja raspona i nije moguće referencirati bilo koju proizvoljnu pojedinačnu 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.

Sljedeća formula, primjerice, koristi funkciju RELATED za dohvaćanje vrijednosti poreza iz povezane tablice na temelju regije u koju je narudžba otpremljena. Vrijednost poreza određena je korištenjem vrijednosti za regiju u trenutnoj tablici, traženjem regije u povezanoj tablici, a zatim dohvaćanjem porezne stope za tu regiju iz povezane tablice.

= [Vozarina] + RELATED('Region'[TaxRate])

Formula jednostavno dohvaća poreznu stopu za trenutnu regiju iz tablice Regija. Ne morate znati ni navesti ključ koji povezuje tablice.

Kontekst više redaka

Osim toga DAX sadrži i funkcije koje ponavljaju izračune nad nekom tablicom. Te funkcije mogu imati više trenutnih redaka i konteksta trenutnih redaka. Rečeno programerskim rječnikom, možete stvoriti formule koje su rekurzivne nad unutrašnjom i vanjskom petljom.

Na primjer, pretpostavimo da radna knjiga možda sadrži tablice Proizvodi i tablice Prodaja . Možda želite da bude obrađen cijelu tablicu prodaje, koja je pune transakcije koje obuhvaćaju više proizvoda, pa pronađite najvećoj posluženoj naručili za svaki proizvod sve jedan transakcije.

U programu Excel za takav je izračun potreban niz posrednih sažetaka koje je potrebno ponovno stvoriti u slučaju da se podaci promijene. Ako ste napredni korisnik programa Excel, možda ćete moći stvoriti formule polja koje će to učiniti. Umjesto toga biste mogli i u relacijskoj bazi podataka napisati ugniježđene pododabire.

Međutim u DAX-u možete stvoriti jednu jedinu formulu koja će vratiti točnu vrijednost, a rezultati će se automatski ažurirati uvijek kada dodate podatke u tablice.

=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Detaljno objašnjenje te formule potražite u članku Funkcije EARLIER.

Ukratko, funkcija EARLIER pohranjuje kontekst retka iz operacije koja je prethodila trenutnoj operaciji. Funkcija u svakom trenutku u memoriju pohranjuje dva skupa konteksta: jedan skup konteksta predstavlja trenutni redak za unutrašnju petlju formule, a drugi trenutni redak za vanjsku petlju formule. DAX automatski isporučuje vrijednosti između dviju petlji da biste mogli stvarati složene agregate.

Vrh stranice

Kontekst upita

Kontekst upita odnosi se na podskup podataka implicitno dohvaćene formulu. Kada odbacite mjera ili neko drugo polje vrijednosti u ćeliju u zaokretnoj tablici, Power Pivot engine ispituje zaglavlja redaka i stupaca, rezači i filtri izvješća da biste odredili kontekstu. Nakon toga Power Pivot čini potrebne izračuna za popunjavanje svaku ćeliju u zaokretnoj tablici. Skup podataka koji se dohvaćaju je kontekst upita za svaku ćeliju.

Kontekst se može promijeniti ovisno o tome gdje smjestite formulu pa se i rezultati formule mijenjaju ovisno o tome jeste li upotrijebili formulu u zaokretnoj tablici s brojnim grupiranjima i filtrima ili u izračunatom stupci bez filtra i uz minimalan kontekst.

Na primjer, pretpostavimo da ste stvorili jednostavnu formulu koja zbraja vrijednosti u stupcu dobit table:=SUM('Sales'[Profit]) prodaje .

Ako koristite ovu formulu u izračunatom stupcu unutar tablice Prodaja , rezultati formule bit će na isti način za cijelu tablicu, jer kontekst upita za formulu uvijek je i cijeli skup podataka tablice Prodaja . Rezultati imat će dobiti za sve regije, svi proizvodi, svih godina i tako dalje.

No obično nećete htjeti da se isti rezultati prikazuju stotinama puta, već dobiti dobit u određenoj godini, u određenoj državi ili regiji, za određeni proizvod ili u nekoj kombinaciji navedenoga, a zatim dobiti i ukupni zbroj.

U zaokretnoj tablici, jednostavno da biste promijenili kontekst dodavanjem ili uklanjanjem zaglavlja redaka i stupaca i dodavanjem ili uklanjanjem rezači je. Stvaranje formule kao ovo iznad u mjera i ispustite ga u zaokretnoj tablici. Kada dodate stupaca ili redaka u zaokretnoj tablici, promijenite kontekst upita u kojem procijeni mjere. Operacije filtriranja i istjecanju utječe i kontekst. Stoga isti formula koja se koristi u zaokretnoj tablici, vrednuje u kontekstu drugi upit za svaku ćeliju.

Vrh stranice

Kontekst filtra

Kontekst filtra dodaje se kada navodite ograničenja filtra nad skupom vrijednosti dopuštena u stupcu ili tablici pomoću argumenata formule. Kontekst filtra primjenjuje se nakon svih ostalih konteksta, kao što su kontekst retka ili upita.

Na primjer, zaokretnu tablicu izračunava vrijednosti za svaku ćeliju na temelju naslova redaka i stupaca kao što je opisano u prethodnom odjeljku na kontekst upita. Međutim, unutar mjere ili izračunati stupci koje dodate u zaokretnoj tablici, možete odrediti izraze filtra da biste odredili vrijednosti koje se koriste u formuli. Selektivno također možete očistiti filtre na određene stupce.

Dodatne informacije o stvaranju filtara unutar formula potražite u članku Filtarske funkcije (DAX).

Primjere uklanjanja filtra radi stvaranja sveukupnih zbrojeva potražite u članku Funkcija ALL.

Primjere selektivnog uklanjanja i primjenjivanja filtara unutar formula potražite u članku Funkcija ALLEXCEPT.

Stoga je potrebno pogledati definiciju mjere ili formula korištenih u zaokretnoj tablici da ste umu kontekst filtra pri interpretiranju rezultata formula imali.

Vrh stranice

Određivanje konteksta u formulama

Prilikom stvaranja formule Power Pivot za Excel najprije provjerava opću sintaksu, a zatim nazive stupaca i tablica koje ste naveli u usporedbi s mogućim stupcima i tablicama u trenutnom kontekstu. Ako Power Pivot ne može pronaći stupce i tablice navedene u formuli, prikazat će se pogreška.

Kontekst se određuje kako je navedeno u prethodnim odjeljcima pomoću dostupnih tablica u radnoj knjizi, bilo kakvih odnosa između tablica i bilo kakvih primijenjenih filtara.

Primjerice, ako ste netom uvezli podatke u novu tablicu i niste primijenili nijedan filtar, čitav skup stupaca tablice dio je trenutnog konteksta. Imate li više tablica povezanih odnosima i radite u zaokretnoj tablici koja je filtrirana dodavanjem zaglavlja stupaca i pomoću rezača, kontekst uključuje povezane tablice i bilo kakve filtre primijenjene na podatke.

Kontekst je moćan pojam koji također može otežati otklanjanje poteškoća s formulama. Preporučujemo da započnete s jednostavnim formulama i odnosima da biste vidjeli kako funkcionira kontekst, a zatim krenete s eksperimentiranjem s jednostavnim formulama u zaokretnim tablicama. U sljedećem odjeljku pronaći ćete primjere formula koje koriste različite vrste konteksta za dinamičko vraćanje rezultata.

Primjeri konteksta u formulama

  • Funkcija RELATED proširuje kontekst trenutnog retka tako da uključuje vrijednosti u povezanom stupcu. Time je omogućeno pretraživanje. Primjer u ovoj temi pokazuje povezanost između filtriranja i konteksta retka.

  • Funkcija FILTER omogućuje navođenje redaka koji će biti uključeni u trenutni kontekst. Primjeri u ovoj temi također pokazuju kako umetnuti filtre u druge funkcije koje provode zbrajanja.

  • Funkcija ALL postavlja kontekst u formuli. Koristi se za nadjačavanje filtara primijenjenih kao rezultat konteksta upita.

  • Funkcija ALLEXCELPT omogućuje uklanjanje svih filtara osim onih koje navedete. U obje se teme nalaze primjeri koji će vas provesti kroz izradu formula i pomoći u razumijevanju složenih konteksta.

  • Funkcije EARLIER i EARLIEST omogućuju izvođenje petlji s podacima iz tablica uz izvođenje izračuna i referenciranje na vrijednost iz unutrašnje petlje. Ako vam je poznat pojam rekurzije i unutrašnjih i vanjskih petlji, znat ćete cijeniti ono što nude funkcije EARLIER i EARLIEST. Ako su vam ti pojmovi novi, pažljivo slijedite korake navedene uz primjere da biste vidjeli kako se unutrašnji i vanjski konteksti koriste u izračunima.

Vrh stranice

Referencijalni integritet

U ovom se odjeljku govori o naprednim pojmovima vezanima uz vrijednosti koje nedostaju u odnosima vezanim tablicama dodatka Power Pivot. Ovaj će vam sadržaj biti koristan ako imate radne knjige s više tablica i složenih formula i želite razumjeti rezultate.

Ako su vam pojmovi relacijskih podataka novi, preporučujemo da prvo pročitate uvodnu temu Pregled odnosa.

Referencijalni integritet i odnosi u dodatku Power Pivot

Power Pivot ne traži da između dviju tablica bude uspostavljen referencijalni integritet da bi odnos bio valjan. Umjesto toga u dijelu "jedan" odnosa "jedan-prema-više" stvara se prazan redak koji se koristi za rad sa svim neuparenim recima iz povezane tablice. On se zapravo ponaša kao vanjski spoj u sustavu SQL.

Ako se u zaokretnim tablicama grupiraju podaci prema strani odnosa "jedan", svi neupareni podaci na strani odnosa "više" grupiraju se i uključuju u ukupne rezultate s praznim zaglavljem retka. Prazno zaglavlje otprilike odgovara pojmu "nepoznat član".

Pojedinosti o nepoznatom članu

Pojam nepoznatog člana vjerojatno vam je blizak ako ste radili sa sustavima višedimenzionalnih baza podataka kao što je servis Analysis Services sustava SQL Server. Ako vam je ovaj pojam nov, u sljedećem je primjeru objašnjeno što je nepoznat član i kako utječe na izračune.

Pretpostavimo da stvarate izračuna koji zbraja Mjesečna prodaja za svaki spremište, ali stupca u tablici prodaje nedostaje vrijednost za naziv trgovine. Given da tablice za pohranu i Prodaja spojeni prema nazivu trgovine, što očekujete da se dogodi u formuli? Kako treba zaokretnu tablicu grupiranje ili prikazati podatke o prodaji koji se odnose na postojeće spremište?

Taj je problem čest u skladištima podataka gdje je potrebno logički povezati velike tablice činjeničnih podataka s tablicama dimenzija koje sadrže informacije o trgovinama, regijama i ostale atribute korištene za kategoriziranje i izračunavanje činjenica. Da bi se riješio taj problem, potrebno je sve nove podatke nepovezane s nekim postojećim entitetom privremeno dodijeliti nepoznatom članu. Zahvaljujući tome nepovezane će činjenice biti prikazane kao grupirane u zaokretnoj tablici pod praznim zaglavljem.

Rad s praznim vrijednostima u odnosu na prazan redak

Prazne vrijednosti razlikuju se od praznih redaka koji se dodaju radi smještaja nepoznatog člana. Prazna je vrijednost posebna vrijednost kojom se predstavljaju nul-vrijednosti, prazni nizovi i ostale vrijednosti koje nedostaju. Više informacija o praznoj vrijednosti i ostalim vrstama podataka u DAX-u potražite u članku Vrste podataka u podatkovnim modelima.

Vrh stranice

Napomena : Izjava o odricanju od odgovornosti za strojni prijevod: ovaj je članak preveo računalni sustav bez ljudske intervencije. Microsoft nudi strojne prijevode da bi korisnicima koji ne razumiju engleski omogućio čitanje sadržaja o Microsoftovim proizvodima, uslugama i tehnologijama. Budući da je preveden strojno, članak možda sadrži pogreške u vokabularu, sintaksi ili gramatici.

Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×