Kontekst u DAX formulama

Važno : Ovaj članak je mašinski prevesti potražite u članku Odricanje odgovornosti. O referencu pronaći verzija ovaj članak ovde na engleskom jeziku.

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.

U ovom odeljku definisani su različiti tipovi konteksta: kontekst reda, kontekst upita i kontekst filtera. U njemu je objašnjeno kako se kontekst procenjuje 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 može da se zamisli kao „trenutni red“. Ako ste kreirali izračunatu kolonu, kontekst reda se sastoji od vrednosti u svakom pojedinačnom redu i vrednosti u kolonama koje su povezane sa trenutnim redom. Takođe, postoje neke funkcije (Funkcija EARLIER i Funkcija EARLIEST) koje dobavljaju vrednost iz trenutnog reda, a zatim tu vrednost koriste prilikom obavljanja operacije u okviru cele tabele.

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 dozvoljenih vrednosti za svaku kolonu, zasnovan na ograničenjima filtera koja se primenjuju na red ili su definisana izrazima filtera u okviru formule.

Vrh stranice

Kontekst reda

Ako kreirate formulu u izračunatoj koloni, kontekst reda za tu formulu uključuje vrednosti iz svih kolona u trenutnom redu. Ako je tabela povezana sa drugom tabelom, sadržaj uključuje i sve vrednosti iz te 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 pomoću argumenata za formulu navedete ograničenja filtera za skup dozvoljenih vrednosti u koloni ili tabeli. Kontekst filtera se primenjuje preko drugih konteksta, kao što su kontekst reda ili 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 se mogu obrisati filteri i kreirati ukupni zbirovi potražite u članku Funkcija ALL.

Primere koji pokazuju 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 niste ranije radili sa konceptima povezanih 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 koji se dodaju kao prostor za nepoznati član. Prazna vrednost je posebna vrednost koja se koristi za predstavljanje nula, praznih niski i ostalih vrednosti koje nedostaju. Više informacija o praznoj vrednosti i ostalim DAX tipovima podataka potražite u članku Tipovi podataka u modelima podataka.

Vrh stranice

Napomena : Odricanje odgovornosti mašinskog prevođenja: ovaj članak je preveden sistem računara bez ljudski interventne. Microsoft nudi ove mašinskog prevoda da pomogne koja nije na engleskom govornih korisnicima da uživate u sadržaju za Microsoft proizvode, usluge i tehnologijama. U članku bio mašinskog prevesti, mogu da sadrže greške u rečnik, sintaksa ili gramatiku.

Unapredite 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.

×