Kontekst u DAX formulama

Napomena:  Želimo da vam što pre pružimo najnoviji sadržaj pomoći čim na vašem jeziku. Ova stranica je prevedena automatski i može da sadrži gramatičke greške ili netačnosti. Naš cilj je da ovaj sadržaj bude koristan. Možete li nam na dnu ove stranice saopštiti da li su vam informacije bile od koristi? Ovo je članak na engleskom jeziku za brzu referencu.

Kontekst vam omogućava da obavljate dinamičke analize u kojima se rezultati formule menjaju tako da odražavaju trenutni izbor reda ili ćelije i sve povezane podatke. Razumevanje konteksta i njegovo efikasno korišćenje su vrlo važni za pravljenje formula sa visokim performansama, dinamičkih analiza i za rešavanje problema u formulama.

Ovaj odeljak definiše različiti tipovi konteksta: kontekst reda, kontekst upita i kontekst filtera. To objašnjava kako se procenjuje kontekst za formule u izračunatim kolonama i u izvedenim tabelama.

U poslednjem delu ovog članka navedene su veze za detaljne primere koji ilustruju kako se rezultat formule menja u zavisnosti od konteksta.

Razumevanje konteksta

Formule u Power Pivot može uticati na filterima primenjenim u izvedenoj tabeli, relacije između tabela i filteri koristiti u formulama. Kontekst nije ono što omogućava da izvršite dinamičke analizu. Razumevanje konteksta važno je za izgradnju i za rešavanje problema sa formulama.

Postoje različiti tipovi konteksta: kontekst reda, kontekst upita i kontekst filtera.

Kontekst reda mogu se smatrati „trenutni red”. Ako ste kreirali izračunatu kolonu, kontekst reda se sastoji od vrednosti u svakom redu pojedinačne i vrednosti u kolonama koje su povezane sa trenutnim redom. Postoje i neke funkcije (Funkcija EARLIER i Funkcija EARLIEST) koji se vrednosti iz trenutnog reda, a zatim koristite vrednost tokom obavljanja operaciju preko celu tabelu.

Kontekst upita odnosi se na podskup podataka koji se implicitno kreiraju za svaku ćeliju u izvedenoj tabeli, u zavisnosti od zaglavlja reda i kolone.

Kontekst filtera je skup vrednosti dozvoljeno u svakoj koloni, na osnovu filtera ograničenja koja su primenjena na red ili koji definiše filter izraza u formuli.

Vrh stranice

Kontekst reda

Ako kreirate formulu u izračunatu kolonu, kontekst reda za ta formula uključuje vrednosti iz svih kolona u trenutnom redu. Ako je tabela povezana sa druge tabele, sadržaj takođe sadrži sve vrednosti iz druge tabele koje su povezane sa trenutnim redom.

Na primer, pretpostavimo da ste kreirali izračunatu kolonu, = [troškovi prevoza] + [poreza],

koja sabira dve kolone iz iste tabele. Ova formula se ponaša kao formule u Excel tabeli, koje automatski upućuju na vrednosti iz istog reda. Imajte na umu da se tabele razlikuju od opsega: ne možete da uputite na vrednost iz prethodnog reda pomoću zapisivanja opsega i ne možete da uputite na bilo koju proizvoljnu pojedinačnu vrednost u tabeli ili ćeliji. Morate uvek da radite sa tabelama i kolonama.

Kontekst reda automatski prati veze između tabela da bi utvrdio koji su redovi u povezanim tabelama pridruženi trenutnom redu.

Na primer, sledeća formula koristi funkciju RELATED za pribavljanje vrednosti poreza iz povezane tabele, na osnovu oblasti u koju je porudžbina poslata. Vrednost poreza se određuje korišćenjem vrednosti za oblast u trenutnoj tabeli, traženjem te oblasti u povezanoj tabeli, a zatim preuzimanjem poreske stope za tu oblast iz povezane tabele.

= [Troškovi prevoza] + RELATED('Region'[TaxRate])

Ova formula na jednostavan način iz tabele „Oblast“ dobavlja poresku stopu za trenutnu oblast. Ne morate da znate niti da navodite ključ koji povezuje tabele.

Kontekst većeg broja redova

Pored toga, DAX uključuje funkcije koje ponavljaju izračunavanja u okviru tabele. Ove funkcije mogu da imaju više trenutnih redova i konteksta trenutnog reda. Kada je reč o programiranju, možete da kreirate formule koje se ponavljaju u okviru unutrašnje i spoljašnje petlje.

Na primer, pretpostavimo da vaša radna sveska sadrži u tabeli sa proizvodima i tabele Prodaja . Možda želite da prođete kroz čitavu prodaje tabelu, koja je puna transakcije koje uključuju više proizvoda, a pronađete najveću količinu poručili za svaki proizvod u bilo kom jednoj transakciji.

U programu Excel, izračunavanje zahteva niz pomoćnih rezimea koji morali da budu napravljeni ponovo u slučaju promene podataka. Ako ste napredan korisnik programa Excel, mogli biste da napravite formule nizova koje bi to uradile. Pored toga, u povezanu bazu podataka mogli biste da zapišete ugnežđene podizbore.

Međutim, uz DAX možete da napravite jednu formulu koja će vraćati tačnu vrednost, a rezultati će se ažurirati automatski svaki put kada u tabele dodate podatke.

=Maxx(filter(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Detaljna praktična objašnjenja ove formule potražite u članku Funkcija EARLIER.

Ukratko, funkcija EARLIER skladišti kontekst reda iz operacije koja je prethodila trenutnoj. U svakom trenutku, funkcija u memoriji skladišti dva skupa konteksta: jedan predstavlja trenutni red za unutrašnju petlju formule, a drugi predstavlja trenutni red za spoljašnju petlju formule. DAX automatski pruža vrednosti između dve petlje, pa možete da kreirate složene agregacije.

Vrh stranice

Kontekst upita

Kontekst upita odnosi se na podskup podataka koji se implicitno preuzima za formulu. Kad otpustite mera ili drugim vrednost u ćeliju u izvedenoj tabeli, Power Pivot mašina ispituje zaglavlja redova i kolona, moduli za sečenje i filteri za izveštaje za određivanje konteksta. Zatim, Power Pivot čini neophodne izračunavanja za popunjavanje svaku ćeliju u izvedenoj tabeli. Skup podataka koji se preuzima je kontekst upita za svaku ćeliju.

Budući da kontekst može da se promeni u zavisnosti od toga gde postavite formulu, rezultati formule se takođe menjaju u zavisnosti od toga da li koristite formulu u izvedenoj tabeli sa mnogo grupisanja i filtera ili u izračunatoj koloni bez filtera i sa minimalnim kontekstom.

Na primer, pretpostavimo da kreirate ovu prostu formulu koja sabira vrednosti u koloni Profitprodaje table:=SUM('Sales'[Profit]).

Ako koristite ovu formulu u izračunatu kolonu u tabeli prodaje , za rezultate formula će biti isti za celu tabelu, jer kontekst upita za formulu uvek ceo skup podataka u tabeli prodaje . Rezultati će imati profita za sve regione, svi proizvodi, svih godina i tako dalje.

Međutim, obično ne želite da vidite isti rezultat stotine puta, već umesto toga želite da dobijete profit za određenu godinu, određenu zemlju ili oblast, određeni proizvod ili neku kombinaciju svega toga, a zatim želite da vidite ukupan zbir.

U izvedenoj tabeli, to je jednostavno promeniti kontekst dodavanjem ili uklanjanjem zaglavlja kolona i redova i dodavanjem ili uklanjanjem module za sečenje. Možete da kreirate formule kao iznad, mera i otpustite ga u izvedenoj tabeli. Svaki put kada dodate naslova kolone ili reda u izvedenoj tabeli, možete da promenite upit kontekst u kojem se procenjuje na meru. Secenje i filtriranje operacije takođe utiče na kontekst. Stoga, ista je formula koristi u izvedenoj tabeli, se procenjuje u kontekstu različitih upita za svaku ćeliju.

Vrh stranice

Kontekst filtera

Kontekst filtera se dodaje kada navedete filtera ograničenja skup vrednosti dozvoljena u kolonu ili tabelu, pomoću argumenata u formuli. Kontekst filtera primenjuje preko drugih kontekst, kao što je kontekst reda ili kontekst upita.

Na primer, izvedena tabela izračunava vrednosti za svaku ćeliju na osnovu naslova redova i kolona, kao što je opisano u prethodnom odeljku na kontekst upita. Međutim, u okviru mere ili izračunate kolone koje dodate u izvedenoj tabeli, možete da navedete izrazi filtera da biste kontrolisali vrednosti koje se koriste pomoću formule. Takođe Selektivno možete da obrišete filtere na određeni kolona.

Više informacija o tome kako da kreirate filtere u okviru formula potražite u članku Funkcije filtera (DAX).

Primer toga kako možete obrisati filteri kreirati ukupni zbirovi potražite u članku Funkcija ALL.

Primere kako da po želji obrišete i primenite filtere u okviru formula potražite u članku Funkcija ALLEXCEPT.

Stoga, morate da pregledate definiciju mere ili formula upotrebljenih u izvedenoj tabeli, tako da ste imali na umu kontekst filtera prilikom tumačenja rezultata formula.

Vrh stranice

Određivanje konteksta u formulama

Kada kreirate formulu, Power Pivot za Excel prvo proverava opštu sintaksu, a zatim proverava imena kolona i tabela koje navedete prema mogućim kolonama i tabelama u trenutnom kontekstu. Ako Power Pivot ne može da pronađe kolone i tabele koje navodi formula, dobićete poruku o grešci.

Kako je opisano u prethodnim odeljcima, kontekst određuje korišćenje dostupnih tabela u radnoj svesci, sve relacije između tabela i svi filtere koji su primenjeni.

Na primer, ako ste upravo uvezli neke podatke u novu tabelu i niste primenili nijedan filter, ceo skup kolona u tabeli biće deo trenutnog konteksta. Ako imate više tabela koje su povezane relacijama, a vi radite u izvedenoj tabeli koja je filtrirana dodavanjem zaglavlja kolona i upotrebom modula „Slicer“, kontekst uključuje povezane tabele i sve filtere primenjene na podacima.

Kontekst je moćan koncept koji može i da oteža rešavanje problema u formulama. Preporučujemo vam da počnete sa prostim formulama i relacijama da biste videli kako kontekst funkcioniše, a da zatim počnete da eksperimentišete sa prostim formulama u izvedenim tabelama. U sledećem odeljku dati su neki primeri toga kako formule koriste različite tipove konteksta za dinamičko vraćanje rezultata.

Primeri konteksta u formulama

  • Funkcija RELATED širi kontekst trenutnog reda tako da on obuhvati vrednosti u povezanoj koloni. To vam omogućava obavljanje pretraživanja. Primer u ovoj temi ilustruje interakciju filtriranja i konteksta reda.

  • Funkcija FILTER vam omogućava da navedete redove koje treba uključiti u trenutni kontekst. Primeri u ovoj temi ilustruju i to kako da ugradite filtere u okviru drugih funkcija koje obavljaju agregaciju.

  • Funkcija ALL postavlja kontekst u okviru formule. Možete da je koristite da biste zamenili filtere koji su primenjeni kao rezultat konteksta upita.

  • Funkcija ALLEXCEPT vam omogućava da uklonite sve filtere osim onog koji ste naveli. Obe teme obuhvataju primere koji vam objašnjavaju postupak pravljenja formula i razumevanje složenih konteksta.

  • Funkcije EARLIER i EARLIEST omogućavaju vam da pravite petlje kroz tabele obavljanjem izračunavanja, a da pritom upućujete na vrednost iz unutrašnje petlje. Ako ste upoznati sa konceptom ponavljanja i unutrašnjih i spoljašnjih petlji, umećete da iskoristite prednosti moćnih funkcija EARLIER i EARLIEST. Ako vam ovi koncepti nisu poznati, trebalo bi da pažljivo pratite korake iz primera da biste videli kako se unutrašnji i spoljašnji konteksti koriste u izračunavanjima.

Vrh stranice

Referencijalni integritet

U ovom odeljku razmatrani su neki napredni koncepti povezani sa vrednostima koje nedostaju u Power Pivot tabelama koje su povezane relacijama. Ovaj odeljak vam može koristiti ako imate radne sveske sa većim brojem tabela i složenim formulama i ako želite pomoć za razumevanje rezultata.

Ako ste radili sa konceptima povezanih relacionih podataka, preporučujemo vam da prvo pročitate uvodnu temu Pregled relacija.

Referencijalni integritet i relacije u programskom dodatku Power Pivot

Power Pivot ne zahteva da se referencijalni integritet nametne između dve tabele da bi se definisala važeća relacija. Umesto toga, kreira se prazan red na „jednom“ kraju svake od mnoštva relacija i koristiće se za upravljanje svim redovima iz povezane tabele koji se ne podudaraju. U suštini, on se ponaša kao SQL spoljašnji spoj.

Ako u izvedenim tabelama grupišete podatke sa jedne strane relacije, svi nepodudareni podaci na mnoštvo strana relacije biće grupisani zajedno i biće uključeni u zbirove sa zaglavljem praznog reda. Prazno zaglavlje je skoro isto što i „nepoznati član“.

Razumevanje nepoznatog člana

Koncept nepoznatog člana vam je verovatno poznat ako ste radili sa višedimenzionalnim sistemima baza podataka, kao što su SQL Server Analysis Services. Ako vam je pojam nov, sledeći primer objašnjava šta je to nepoznati član i kako utiče na izračunavanja.

Pretpostavimo da kreirate izračunavanja koja sabira mesečna vrednost prodaje za svaku radnju, ali kolone u tabeli " Prodaja " nedostaje vrednost za ime iz prodavnice. S obzirom da tabele za skladištenje i Prodaja povezani tako što ćete na ime prodavnice, Šta očekujete da se desi u formuli? Kako bi trebalo da izvedena tabela grupisanje ili prikazali podatke o prodaji koji nisu povezani sa postojeće skladište?

Ovaj problem je uobičajen u skladištima podataka, u kojima velike tabele sa podacima o činjenicama moraju biti logički povezane sa tabelama dimenzija koje sadrže informacije o prodavnicama, oblastima i ostalim atributima koji se koriste za kategorizaciju i izračunavanje činjenica. Da biste rešili problem, sve nove činjenice koje nisu povezane sa postojećim entitetom privremeno će biti dodeljene nepoznatom članu. Zbog toga će se nepovezane činjenice u izvedenoj tabeli pojaviti grupisane u okviru praznog zaglavlja.

Tretiranje praznih vrednosti nasuprot praznom redu

Prazne vrednosti se razlikuju od praznih redova koje se dodaju prilagođava nepoznatog člana. Prazna vrednost je posebno vrednost koja se koristi za predstavljanje poljima bez vrednosti i praznim niskama druge vrednosti koje nedostaju. Za više informacija o praznu vrednost, kao i druge DAX tipovi podataka potražite u članku Tipovi podataka u modelima podataka.

Vrh stranice

Razvijte Office veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Office Insider korisnicima

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Zvuči da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×