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 izvršite dinamičke analize, kojim rezultate formule možete da promenite kako bi odražavali trenutni izbor reda ili ćeliju i takođe srodne podatke. Razumevanje konteksta i efikasno korišćenje kontekst su veoma važne za izgradnju visoko izvršavanje formule, dinamičke analize 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 ovaj članak obezbeđuje veze za detaljne primere koji ilustruju kako na rezultate formula 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 (EARLIER i 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 formula u Excel tabeli, koje se automatski odnose na vrednosti sa istom redu. Imajte na umu da tabela razlikuje od opsega: ne možete da upućujete na vrednost iz reda pre nego što trenutni red tako što ćete koristiti način zapisivanja opsega, a ne možete da upućujete sve proizvoljno jedne vrednosti u tabeli ili u ćeliji. Uvek moraju da radite sa tabelama i kolonama.

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

Na primer, sledeća formula koristi funkciju srodne za dobavljanje porez na vrednost iz povezane tabele, na osnovu regiona koje je isporučen redosled. Vrednost poreza određena je pomoću vrednost za region u ovoj tabeli, popravljaju regiona u povezanoj tabeli, a onda se porez stopa za taj region iz povezane tabele.

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

Ova formula jednostavno dobija porez za trenutni region, iz tabele "Region". Ne treba da znam ili da navedete ključa koja povezuje tabele.

Kontekst većeg broja redova

Pored toga, DAX obuhvata funkcije koje biste ponovili izračunavanja na tabelu. Ove funkcije možete imati više trenutnog reda i trenutnog reda konteksta. Programiranje rečeno, možete da kreirate formule koje recurse preko 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, obračun zahteva niz posredno rezimee, kojim bi mogao da se ponovo napraviti ako podaci menjaju. Ako ste Iskusni korisnik programa Excel, možda nećete moći da napravite formule niza koje se obaviti posao. Alternativno, u relacionoj bazi podataka možete pisati ugnežđene subselects.

Međutim, uz DAX možete da napravite jednu formulu koja će vraćati tačnu vrednost, a rezultati se automatski ažuriraju svaki put kada dodate podataka sa tabelama.

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

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

Ukratko, funkcija EARLIER skladišti kontekst reda iz operacije koji su prethodili trenutnu operaciju. Na sve vreme, funkcija skladišti u memorije dva skupa kontekst: jedan skup kontekst predstavlja trenutnog reda za unutrašnje toku formule, a drugi skup kontekstu trenutnog reda za spoljašnje petlje formule. DAX automatski feedovi vrednosti između dva kruga tako da možete da kreirate složenu agregatne funkcije.

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.

Jer konteksta možete promeniti u zavisnosti od toga gde formulu, na rezultate formula i da promenite u zavisnosti od toga da li koristite formulu u izvedenoj tabeli sa mnogo grupisanja i filtere ili u izračunatu kolonu bez filtera i minimalnim kontekst.

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, ali umesto toga želite da dobit za određenu godinu, određenu zemlju ili region, određeni proizvod ili kombinacija ove, a zatim sveukupne vrednosti.

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.

Primer toga kako se mogu obrisati filteri da biste kreirali sveukupne vrednosti, pogledajte na sve.

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 formule, Power Pivot za Excel prvo proverava da li opšte sintaksu, a zatim ga proverava imena kolona i tabela koje navodite protiv moguće kolona i tabela u trenutnom kontekstu. Ako Power Pivot ne možete da pronađete kolona i tabela naveo formulu, dobićete grešku.

Kontekst određuje kao što je opisano u prethodnim odeljcima, pomoću dostupnih tabela u radnoj svesci, sve relacije između tabela i svi filtere koji su primenjeni.

Na primer, ako ste upravo uvezli podatke u novu tabelu i ne primenili filtere, čitav skup kolona u tabeli je deo trenutni kontekst. Ako imate više tabela koje su povezane po relacije i radite u izvedenu tabelu koja filtrirani tako što ćete dodati naslove kolona i koristite module za sečenje, kontekst uključuje povezanih tabela i svi filtere na podatke.

Kontekst je moćna koncept koji takođe, možete učiniti je teško rešavanje problema sa formulama. Preporučujemo da počnete sa jednostavne formule i veze da biste videli kako funkcioniše kontekst, a zatim počnite da eksperimentišete sa jednostavne formule u izvedenim tabelama. Sledeći odeljak obezbeđuje primere kako formule koriste različiti tipovi konteksta da dinamički daje rezultate.

Primeri konteksta u formulama

  • SRODNA funkcija širi kontekst trenutnog reda da biste obuhvatili vrednosti u srodnoj koloni. Ovo vam omogućava da izvršavate pronalaženja. Na primer u ovoj temi ilustruje interakciji filtriranje i red kontekst.

  • Funkcija FILTER omogućava da navedete redove da biste uključili u trenutnom kontekstu. Primeri u ovoj temi takođe prikazuju kako da ugradite filtere u okviru druge funkcije koje izvršavaju agregatne funkcije.

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

  • Funkcija ALLEXCEPT omogućava vam da biste uklonili sve filtere osim onaj koji ste naveli. Obe teme uključuju primere koji sprovede kroz izradu formule i razumevanje složene konteksta.

  • Za EARLIER i NAJRANIJI funkcije neka vam prođite kroz tabele tako što ćete izvršiti izračunavanja, prilikom upućivanja na vrednost iz unutrašnje petlje. Ako ste upoznati sa koncept ponavljanja i sa unutrašnje i spoljašnje petlje, će cene power koje obezbeđuju funkcije EARLIER i EARLIEST. Ako ste novi u ovi koncepti, trebalo bi da pratite korake u primeru pažljivo da biste videli kako unutrašnjih i spoljašnjih konteksta se koriste u izračunavanjima.

Vrh stranice

Referencijalni integritet

Ovaj odeljak opisuje neke napredne koncepata u vezi sa vrednosti koje nedostaju u tabelama Power Pivot koji su povezani tako što ćete relacije. Ovaj odeljak možda korisno ako imate radne sveske sa više tabela i složene formule i potrebna pomoć u razumevanju rezultate.

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

Referencijalni integritet i relacije Power Pivot

Power Pivot ne zahteva da se referencijalni integritet nameće između dve tabele kako biste definišete relaciju važeći. Umesto toga, prazan red se kreira na kraju svaka od tih relacija jedan-prema-više „jedan” i koristi rukovanja sve neodgovarajući redove iz povezane tabele. Efikasno se ponaša kao SQL spoljni spoj.

U izvedenim tabelama, ako grupišete podatke tako što ćete sa jedne strane relacije, bez podudaranja podatke na strani "više" relacije je grupisane i će biti uključeni u ukupne vrednosti u prazan red zaglavlja. Prazno zaglavlje je otprilike jednaka „nepoznatog člana”.

Razumevanje nepoznatog člana

Koncept nepoznatog člana je verovatno poznato ako ste radili sa sistemima višedimenzionalnim baze podataka, kao što su SQL Server Analysis Services. Ako termin novo, sledeći primer objašnjava šta je to nepoznatog člana i kako to 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čajeni u podataka skladišta, gde velike tabele sa činjenicama podacima mora biti logično vezana za dimenzije tabele koje sadrže informacije o radnjama, regiona i druge atribute koji se koriste za kategorizovanje i izračunavanje činjenice. Da biste rešili problem, sve nove činjenice koje nisu povezane postojeće entitet privremeno dodeljene nepoznatog člana. Zato nepovezanih činjenica će se pojaviti grupisane u izvedenoj tabeli u okviru prazne naslova.

Tretiranje prazne vrednosti u odnosu na prazan red

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.

×