Kontekst u DAX formulama

Kontekst vam omogućava da uradite dinamičku analizu u kojoj se rezultati formule mogu promeniti da bi se odrazili trenutni izbor reda ili ćelije, kao i bilo koji povezani podaci. Razumevanje konteksta i korišćenje konteksta su vrlo važne za izgradnju visokih formula, dinamičkih analiza i rešavanja problema u formulama.

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

Poslednji deo ovog članka pruža veze ka detaljnim primerima koji ilustruje kako se rezultate formula menja u skladu sa kontekstujom.

Razumevanje konteksta

Formule u Power Pivot mogu uticati filteri koji se primene u izvedenoj tabeli, pomoću relacija između tabela i za filtere koji se koriste u formulama. Kontekst je ono što omogućava obavljanje dinamičkih analiza. Razumevanje konteksta je važno 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 smatra "trenutnim zbirom". Ako ste kreirali izračunatu kolonu, Kontekstualni okvir se sastoji od vrednosti u svakom pojedinačnom nizu i vrednosti u kolonama koje su povezane sa trenutnim redom. Postoje i neke funkcije (starije i najstarije) koje dobijaju vrednost iz trenutnog posla, a zatim koriste tu vrednost tokom izvođenja operacije iznad cele tabele.

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

Kontekst filtera je skupa dozvoljenih vrednosti u svakoj koloni, na osnovu ograničenja filtera koji su zatvoreni na red ili koji su definisani pomoću izraza filtera unutar formule.

Vrh stranice

Kontekst reda

Ako kreirate formulu u izračunatoj koloni, kontekst te formule za tu formulu sadrži vrednosti iz svih kolona trenutnog reda. Ako je tabela povezana sa drugom tabelom, sadržaj obuhvata i sve vrednosti iz te druge tabele koje su povezane sa trenutnim redom.

Na primer, pretpostavimo da kreirate izračunatu kolonu, = [tovar] + [porez],

, koji sabira dve kolone iz iste tabele. Ova formula se ponaša kao formule u Excel tabeli koja automatski upućuje na vrednosti iz istog polja. Imajte u vidu da se tabele razlikuju od opsega: ne možete da pozivate vrednost iz tog polja pre trenutnog polja pomoću funkcije Range i ne možete da pozivate nijednu proizvoljnu jedinstvenu vrednost iz tabele ili ćelije. Uvek morate da radite sa tabelama i kolonama.

Kontekst reda automatski prati relacije između tabela da bi se utvrdilo koji su redovi u povezanim tabelama povezani sa trenutnim redom.

Na primer, sledeća formula koristi funkciju srodna funkcija za povraćaj poreske vrednosti iz povezane tabele, na osnovu regiona na koji je nalog isporučen. Poreska vrednost se određuje korišćenjem vrednosti za region u trenutnoj tabeli, pretraživanje regiona u povezanoj tabeli, a zatim dobijanje poreske stope za taj region iz povezane tabele.

= [Tovar] + povezano (' region ' [porez])

Ova formula jednostavno dobija poresku stopu za trenutnu oblast, iz tabele "region". Ne morate da znate ili da navedete taster koji povezuje tabele.

Kontekst većeg broja reda

Pored toga, DAX uključuje funkcije koje su iziteralisala izračunavanje iznad tabele. Ove funkcije mogu da imaju više trenutnih redova i trenutne redove reda. U okviru programiranja možete da kreirate formule koje su prekletve preko unutrašnje i spoljne petlje.

Na primer, pretpostavimo da radna sveska sadrži tabelu " proizvodi " i " Prodaja ". Možda ćete želeti da kroz celu tabelu prodaje, koja je puna transakcija koje uključuju više proizvoda i pronađete najveću količinu za svaki proizvod u bilo kojoj jednoj transakciji.

U programu Excel, ovaj obračun zahteva seriju međupodataka, koje bi trebalo obnoviti ako se podaci promene. Ako ste korisnik programa Excel, možda ćete moći da napravite formule niza koje će uraditi posao. Alternativno, u relacionu bazu podataka koju možete da napišete ugnežđene ste izbor.

Međutim, uz DAX možete da napravite jednu formulu koja daje tačnu vrednost i rezultati se automatski ažuriraju svaki put kada dodate podatke u tabele.

= MAXX (FILTER (prodaja, [doznaci] = RANIJI ([Dodokey]), prodaja [Kol...)

Detaljna uputstva ove formule potražite u prethodnomčlanku.

Ukratko, prethodna funkcija skladišti kontekst reda iz operacije koja prethodi trenutnoj operaciji. Funkcija se u svakom trenutku skladišti u memoriji dva skupa konteksta: jedan niz konteksta predstavlja trenutni reda za unutrašnju petlje formule, a drugi niz konteksta predstavlja trenutni reda za spoljnu sukob formule. DAX automatski hrani vrednosti između dve petlje da biste mogli da kreirate složene agregatne funkcije.

Vrh stranice

Kontekst upita

Kontekst upita upućuje na podskup podataka koji su implicitno preuzeti za formulu. Kada u ćeliju izvedene tabele otpustite meru ili drugo polje vrednosti, Power Pivot mašina ispituje zaglavlja reda i kolone, filtere za filtriranje i izveštaje za utvrđivanje konteksta. Zatim Power Pivot pravi neophodna izračunavanja za popunjavanje svake ćelije u izvedenoj tabeli. Broj preuzetih podataka je kontekst upita za svaku ćeliju.

Budući da se kontekst može promeniti 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 velikim brojem grupisanja i filterima ili u izračunatoj koloni bez filtera i minimalnog konteksta.

Na primer, pretpostavimo da kreirate ovu jednostavnu formulu koja sabira vrednosti u koloni " profit " u tabeli " Prodaja ": = SUM (' prodaja ' [profit]).

Ako koristite ovu formulu u izračunatoj koloni u tabeli Prodaja , rezultati formule će biti isti za celu tabelu, zato što je kontekst upita za formulu uvek ceo skupu podataka tabele " Prodaja ". Rezultati će imati profit za sve regione, sve proizvode, sve godine itd.

Međutim, najčešće ne želite da vidite isti rezultat stotinu puta, ali umesto toga želite da dobijete profit za određenu godinu, određenu zemlju ili region, određeni proizvod ili neku kombinaciju ovih, a zatim nabavite ukupan zbir.

U izvedenoj tabeli možete lako da promenite kontekst dodavanjem ili uklanjanjem zaglavlja kolone i reda i dodavanjem ili uklanjanjem modula. Možete da kreirate formulu kao što je ona gorenavedenu, a zatim je otpustite u izvedenu tabelu. Svaki put kada dodate kolone ili naslove reda u izvedenu tabelu, menjate kontekst upita u kom se izračunava mera. Operacije iseka i filtriranja takođe utiču na kontekst. Samim tim, formula koja se koristi u izvedenoj tabeli procenjuje se u drugom kontekstu upita za svaku ćeliju.

Vrh stranice

Kontekst filtriranja

Kontekst filtera se dodaje kada navedete polja filtriranja za skupa dozvoljenih vrednosti u koloni ili tabeli, pomoću parametara za formulu. Kontekst filtera se primenjuje iznad drugih konteksta, kao što je kontekst reda ili kontekst upita.

Na primer, izvedena tabela izračunava vrednosti za svaku ćeliju na osnovu naslova reda i kolona, kao što je opisano u prethodnom odeljku u kontekstu upita. Međutim, u okviru mera ili izračunate kolone koje dodajete u izvedenu tabelu, možete da precizirate izraze za filtriranje da biste kontrolisali vrednosti koje formula koristi. Filtere možete selektivno i da opozovete u određenim kolonama.

Više informacija o tome kako da kreirate filtere u okviru formule potražite u članku funkcije filtera.

Da biste videli kako se filtrira filteri za kreiranje ukupnih zbirova, pogledajte sve.

Primere kako selektivno brisanje i primene filtera u okviru formula potražite u članku funkcija Allexosim.

Zbog toga morate da pregledate definiciju mera ili formula koje se koriste u izvedenoj tabeli kako biste znali za kontekst filtera prilikom interpretacija rezultata formula.

Vrh stranice

Utvrđivanje konteksta u formulama

Kada kreirate formulu, Power Pivot za Excel prvo proverava da li postoji Opšta sintaksa, a zatim proverava imena kolona i tabela koje obezbedite u okviru trenutnog konteksta. Ako Power Pivot ne mogu da pronađu kolone i tabele koje je odredila formula, imaćete grešku.

Kontekst se određuje kao što je opisano u prethodnim odeljcima, koristeći dostupne tabele u radnoj svesci, sve relacije između tabela i sve filtere koji su primenjeni.

Na primer, ako ste upravo uvezli neke podatke u novu tabelu i niste koristili filtere, ceo skupa kolona u tabeli je deo trenutnog konteksta. Ako imate više tabela koje su povezane relacijama i radite na izvedenoj tabeli koja je filtrirana tako što ćete dodati naslove kolona i koristiti filter, kontekst uključuje srodne tabele i sve filtere na podacima.

Kontekst je snažan koncept koji takođe može otežati rešavanje problema sa formulama. Preporučujemo da počnete sa jednostavnim formulama i relacijama da biste videli kako kontekst funkcioniše, a zatim započnite eksperimentisati sa jednostavnim formulama u izvedenim tabelama. Sledeći odeljak pruža i primere kako formule koriste razne tipove konteksta za dinamički povraćaj rezultata.

Primeri konteksta u formulama

  • Funkcija srodna funkcija proširuje kontekst trenutnog reda da bi obuhvaćala vrednosti u srodnoj koloni. To vam omogućava da obavljate preglede. Primer u ovoj temi ilustruje interakciju konteksta filtriranja i reda.

  • Funkcija filtera vam omogućava da navedete redove koje želite da dodate u trenutni kontekst. Primeri u ovoj temi takođe ilustruje kako se ugrađuju filteri u okviru drugih funkcija koje obavljaju agregatne funkcije.

  • Funkcija ALL podešava kontekst unutar formule. Možete da ga koristite da biste zamenili filtere koji se primenjuju kao rezultat konteksta upita.

  • Funkcija ALLEXOSIM vam omogućava da uklonite sve filtere osim onog koji navedete. Dve teme sadrže primere koji vam prolaze kroz formule za pravljenje formula i razumevanje složenih konteksta.

  • Funkcije starije i NAJSTARIJE vam dozvoljava da prolazite kroz tabele izvršavanjem izračunavanja, dok koristite referencu unutrašnje petlje. Ako ste upoznati sa konceptom isrekurzije i sa unutrašnjim i spoljnim luskama, cenićete moć i NAJRANIJA funkcija. Ako ste novi u ovim konceptima, trebalo bi da izvršite korake u primeru pažljivo da biste videli kako se unutrašnji i spoljni kontekst koriste u izračunavanjima.

Vrh stranice

Referencijalni integritet

Ovaj odeljak govori o naprednim konceptima povezanim sa vrednostima koje nedostaju u Power Pivot tabelama koje povezuju relacije. Ovaj odeljak vam može biti koristan ako imate radne sveske sa više tabela i složenih formula i želite pomoć u razumevanju rezultata.

Ako ste novi u konceptima relacionih podataka, preporučujemo da prvo pročitate uvodni temu, Pregled relacija.

Referencijalni integritet i Power Pivot relacije

Power Pivot ne zahteva da se referencijalni integritet primenjuje između dve tabele da bi se definisala važeća relacija. Umesto toga, na kraju svake relacije "jedan" se kreira prazan red i koristi se za rukovanje svim redovima koji se ne podudaraju iz srodne tabele. Efikasno se ponaša kao SQL spoljni spoj.

U izvedenim tabelama, ako podatke grupišete po jednoj strani relacije, svi Nepodudarni podaci na brojnim strani relacije se grupišu i biće uključeni u ukupne vrednosti sa praznim naslovom. Prazan naslov je približno jednak "nepoznatom članu".

Razumevanje nepoznatog člana

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

Pretpostavimo da kreirate izračunavanje koji iznosi vrednosti mesečne prodaje za svako skladište, ali koloni u tabeli Prodaja nedostaje vrednost za ime prodavnice. Sa obzirom na to da su tabele za prodavnicu prodavnice i prodaje povezane imenom prodavnice, Šta očekujete da se desi u formuli? Kako treba da grupa izvedene tabele ili prikazuju cifre prodaje koje nisu povezane sa postojećim prodavom?

Ovaj problem je uobičajen u magacinima sa podacima, gde velike tabele podataka u činjenici moraju biti logički povezani sa tabelama dimenzija koje sadrže informacije o prodavnicama, regionima i drugim atributima koji se koriste za kategorisanje i računanje činjenica. Da biste rešili problem, sve nove činjenice koje nisu povezane sa postojećim entitetom privremeno su dodeljene nepoznatom članu. Zbog toga se nepovezane činjenice pojavljuju grupisane u izvedenoj tabeli ispod praznog naslova.

Lečenje praznih vrednosti naspram praznog polja

Prazne vrednosti se razlikuju od praznih redova koji se dodaju da bi se smestili nepoznati član. Prazna vrednost je specijalna vrednost koja se koristi za predstavljanje nulls, praznih niski i drugih nestalih vrednosti. Više informacija o praznoj vrednosti, kao i drugim DAX tipovima podataka potražite u članku tipovi podataka u modelima podataka.

Vrh stranice

Napomena:  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 da nam javite da li su informacije bile korisne? Ovo je članak na engleskom jeziku za referencu.​

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! Izgleda da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×