Kontekst v formulah jezika DAX

Pomembno : Besedilo članka je prevedeno strojno. Glejte zavrnitev odgovornosti. Angleško različico tega članka najdete tukaj .

Kontekst omogoča izvajanje dinamične analize, v kateri se rezultati formule lahko spremenijo tako, da predstavljajo izbor trenutne vrstice oziroma celice in tudi vse z njo povezane podatke. Razumevanje konteksta in učinkovita uporaba konteksta sta zelo pomembna za ustvarjanje visokoučinkovitih formul, dinamičnih analiz in odpravljanje težav v formulah.

V tem razdelku so opredeljene različne vrste konteksta: kontekst vrstice, kontekst poizvedbe in kontekst filtra. Razloženo je, kako je kontekst ovrednoten v formulah v izračunanih stolpcih in v vrtilnih tabelah.

V zadnjem delu tega članka so povezave za podrobne primere, ki predstavljajo, kako se rezultati formul spremenijo glede na kontekst.

Razumevanje konteksta

Formule v Power Pivot lahko vpliva filtri, ki so uporabljeni v vrtilnih tabelah, relacije med tabelami in filtri, ki se uporabi v formulah. Kontekst je, kar omogoča dinamično analizo. Razumevanje konteksta je pomembno za zgradbe in odpravljanje težav s formulami.

Obstajajo različne vrste konteksta: kontekst vrstice, kontekst poizvedbe in kontekst filtra.

Kontekst vrstice se lahko razume kot »trenutna vrstica«. Če ste ustvarili izračunani stolpec, kontekst vrstice sestavljajo vrednosti v posameznih vrsticah in vrednosti v vrsticah, ki so povezane s trenutno vrstico. Obstajata tudi funkciji (funkcija EARLIER in funkcija EARLIEST), ki izračunata vrednost iz trenutne vrstice in nato to vrednost uporabita pri izvajanju postopka, ki zadeva celotno tabelo.

Kontekst poizvedbe se nanaša na podnabor podatkov, ki se implicitno ustvari za vsako celico vrtilne tabele glede na glave vrstic in stolpcev.

Kontekst filtra je nabor vrednosti, dovoljenih v posameznem stolpcu, glede na omejitve filtra, ki so veljale za vrstico oziroma ki so določene z izrazi filtra v formuli.

Na vrh strani

Kontekst vrstice

Če ustvarite formulo v izračunanem stolpcu, kontekst vrstice za to formulo vključuje vrednosti iz vseh stolpcev trenutne vrstice. Če je tabela povezana z drugo drugo tabelo, vsebina vključuje tudi vse vrednosti iz te druge tabele, ki so povezane s trenutno vrstico.

Recimo, da ustvarite izračunani stolpec, = [prevoz] + [davkov]

ki združi dva stolpca iz iste tabele. Ta formula deluje kot formule v Excelovi tabeli, ki se samodejno sklicujejo na vrednosti iz iste vrstice. Tabele se razlikujejo od obsegov; ne morete se sklicevati na vrednost iz vrstice pred trenutno vrstico tako, da uporabite zapis obsega, in ne morete se sklicevati na posamezno poljubno vrednost v tabeli ali celici. Vedno je treba delati s tabelami in stolpci.

Kontekst vrstice samodejno upošteva relacije med tabelami, da določi, katere vrstice v povezanih tabelah so povezane s trenutno vrstico.

Naslednja formula na primer s funkcijo RELATED išče vrednosti davka iz povezane tabele glede na območje, kamor je bilo zadevno naročilo dostavljeno. Vrednost davka se določi tako, da se uporabi vrednost za območje v trenutni tabeli, poišče območje v povezani tabeli in nato pridobi davčna stopnja za zadevno območje iz povezane tabele.

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

Ta formula preprosto izračuna davčno stopnjo za trenutno območje iz tabele Region. Ključa, ki povezuje tabele, ni treba poznati ali izbrati.

Kontekst več vrstic

Poleg tega DAX vključuje funkcije, ki ponavljajo izračune v celotni tabeli. Te funkcije imajo lahko kontekst ene ali več trenutnih vrstic. Pri načrtovanju izrazov lahko ustvarite formule, ki uporabljajo notranje in zunanje zanke.

Recimo, da delovni zvezek vsebuje tabelo in tabele Sales . Morda želite pregledati celotnega prodaje tabele, ki je polna transakcije, ki vključujejo več izdelkov, in poiskati največjo količino naročila za vsak izdelek, v kateri koli posel.

V Excelu bi za to morali opraviti vrsto vmesnih povzetkov, ki bi jih bilo treba pri spremembah podatkov znova opraviti. Če zelo dobro obvladate delo v Excelu, lahko ustvarite formule polja v ta namen. Ali pa v relacijski zbirki podatkov napišete ugnezdene podizbore.

DAX pa omogoča, da ustvarite eno formulo, ki vrne pravilno vrednost, in rezultati se samodejno posodobijo vsakič, ko dodate podatke tabelam.

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

Za podrobnejšo predstavitev te formule glejte Funkcija EARLIER.

Funkcija EARLIER shrani kontekst vrstice iz postopka, ki se je izvajal pred trenutnim postopkom. Funkcija vedno shrani v pomnilnik dva nabora konteksta: eden predstavlja trenutno vrstico za notranjo zanko formule, drugi pa trenutno vrstico za zunanjo zanko formule. DAX samodejno podaja vrednosti med zankama, tako da lahko ustvarite kompleksne skupke.

Na vrh strani

Kontekst poizvedbe

Kontekst poizvedbe se nanaša na podnabor podatkov, ki je implicitno pridobljeni za formule. Ko spustite mera ali drugo polje vrednost v celico v vrtilni tabeli, Power Pivot mehanizem pregleda na glave vrstic in stolpcev, razčlenjevalniki in filtri poročila, za določanje konteksta. Nato Power Pivot naredi potrebne izračune za izpolnjevanje vsako celico v vrtilni tabeli. Nabor podatkov, ki so pridobljeni je kontekst poizvedbe za vsako celico.

Ker se kontekst lahko spreminja glede na to, kam postavite formulo, se rezultati formule lahko prav tako spreminjajo glede na to, ali uporabljate formulo v vrtilni tabeli z več skupki in filtri ali v izračunanem stolpcu brez filtrov in minimalnega konteksta.

Recimo, da ustvarite to preprosto formulo, ki sešteje vrednosti v stolpcu dobiček od prodaje table:=SUM('Sales'[Profit]).

Če uporabite to formulo v izračunani stolpec v tabeli Sales , rezultate formule bodo enaki za celotno tabelo, ker kontekst poizvedbe za formula je vedno celoten nabor podatkov tabele Sales . Rezultati bodo imeli dobiček za vse regije, vseh izdelkov, vsa leta, in tako naprej.

Vendar običajno ne želite stokrat prikazati enakega rezultata, ampak želite izračunati dobiček za določeno leto, državo ali območje, določen izdelek ali določeno kombinacijo navedenih elementov ter nato izračunati skupno vsoto.

V vrtilni tabeli, se lahko preprosto spremenite kontekst, dodajanje ali odstranjevanje glave stolpcev in vrstic in tako, da dodate ali odstranite razčlenjevalniki. Ustvarjanje formule kot eno zgoraj, v mera in nato spustite v vrtilni tabeli. Kadar koli dodate naslovoma stolpcev ali vrstic v vrtilni tabeli, spremenite poizvedbo kontekst, v katerem je ovrednoten merilo. Rezanje in filtriranje, vpliva tudi na kontekst. Zato iste formule, uporabljene v vrtilni tabeli, se ovrednoti v drugo poizvedbo kontekst za vsako celico.

Na vrh strani

Kontekst filtra

Kontekst filtra se doda, ko z argumenti formule določite omejitve filtra za nabor vrednosti, dovoljenih v stolpcu ali tabeli. Kontekst filtra velja poleg drugih kontekstov, kot je kontekst vrstice ali kontekst poizvedbe.

Primer vrtilne tabele izračuna vrednosti za vse celice glede na glave vrstic in stolpcev, kot je opisano v prejšnjem odseku na kontekst poizvedbe. Pa znotraj mere ali izračunani stolpci, ki jih dodate v vrtilno tabelo, lahko določite z izrazi filtra za nadzor vrednosti, ki jih uporablja formulo. Lahko tudi selektivno počistite filtrov za določene stolpce.

Če želite več informacij o tem, kako ustvariti filtre v okviru formul, glejte Funkcije filtrov (DAX).

Za primer, kako se lahko odstranijo filtri za ustvarjanje skupnih vsot, glejte Funkcija ALL.

Za primere, kako selektivno odstraniti in uporabiti filtre v formulah, glejte Funkcija ALLEXCEPT.

Zato morate pregledati definicijo mere ali formule, uporabljene v vrtilni tabeli, da poznate kontekst filtra ko si razlagate rezultate formul.

Na vrh strani

Določanje konteksta v formulah

Ko ustvarite formulo, Power Pivot za Excel najprej preveri splošno sintakso ter nato še imena stolpcev in tabel, ki jih navedete za možne stolpce in tabele v trenutnem kontekstu. Če Power Pivot ne more najti stolpcev in tabel, ki jih določa formula, je vrnjeno sporočilo o napaki.

Kot je opisano v prejšnjih razdelkih, je kontekst določen z uporabo razpoložljivih tabel v delovnem zvezku, relacij med tabelami in uporabljenih filtrov.

Če ste na primer uvozili podatke v novo tabelo in niste uporabili nobenega filtra, je celoten nabor stolpcev v tabeli del trenutnega konteksta. Če imate več tabel, ki so povezane z relacijami, in delate v vrtilni tabeli, ki ste jo filtrirali tako, da ste dodali naslove stolpcev in uporabili razčlenjevalnike, kontekst vključuje povezane tabele in filtre za podatke.

Kontekst je zmogljiv koncept, ki lahko tudi oteži odpravljanje težav v zvezi s formulami. Priporočljivo je, da začnete s preprostimi formulami in relacijami, da se seznanite z načinom delovanja konteksta, in nato začnete preskušati delovanje s preprostimi formulami v vrtilnih tabelah. V naslednjem razdelku so tudi nekateri primeri, kako formule uporabljajo različne vrste konteksta za dinamično vračanje rezultatov.

Primeri konteksta v formulah

  • Funkcija RELATED razširi kontekst trenutne vrstice, da so vključene vrednosti v povezanem stolpcu. To omogoča iskanje. Primer v tej temi prikazuje medsebojno delovanje filtriranja in konteksta vrstice.

  • Funkcija FILTER omogoča določanje vrstic za vključitev v trenutni kontekst. Primeri v tej temi prav tako prikazujejo, kako vstaviti filtre v druge funkcije, ki izvajajo združevanje.

  • Funkcija ALL nastavi kontekst v formuli. Lahko jo uporabite, da preskočite filtre, ki so uporabljeni kot rezultat konteksta poizvedbe.

  • Funkcija ALLEXCEPT omogoča odstranjevanje vseh filtrov razen tistega, ki ga določite. Obe temi vključujeta primere, ki uporabnika vodijo skozi ustvarjanje formul in razumevanje kompleksnih kontekstov.

  • Funkciji EARLIER in EARLIEST omogočata uporabo zanke v tabelah, tako da izvajata izračune in se pri tem sklicujeta na vrednost iz notranje zanke. Če poznate pojem rekurzije ter notranje in zunanje zanke, boste znali ceniti zmogljivost, ki jo zagotavljata funkciji EARLIER in EARLIEST. Če teh pojmov ne poznate, natančno sledite korakom iz primera, da boste videli, kako sta notranji in zunanji kontekst uporabljena v izračunih.

Na vrh strani

Referenčna integriteta

Ta razdelek obravnava nekatere napredne pojme, povezane z manjkajočimi vrednostmi v tabelah Power Pivot, ki jih povezujejo relacije. Ta razdelek je lahko uporaben, če imate delovne zvezke z več tabelami in kompleksnimi formulami ter želite pomoč pri razumevanju rezultatov.

Če še ne poznate dobro pojmov relacijskih podatkov, je priporočljivo najprej prebrati uvodno temo Pregled relacij.

Referenčna integriteta in relacije v orodju Power Pivot

V orodju Power Pivot za določitev veljavne relacije ni potrebno, da se med tabelama uveljavi referenčna integriteta. Namesto tega se ustvari prazna vrstica na enem koncu vsakega od odnosov »ena na mnogo« in se uporabi za obravnavo vse neujemajočih se vrstic iz povezane tabele. Dejansko je tako učinkovita kot zunanji stik SQL.

Če v vrtilnih tabelah združite podatke na strani »ena« odnosa, se vsi neujemajoči se podatki odnosa na strani »mnogo« združijo in se vključijo v vsote z naslovom prazne vrstice. Prazen naslov je približno enakovreden pojmu »neznanega člana«.

Razumevanje neznanega člana

Pojem neznanega člana verjetno poznate, če ste kdaj uporabljali sisteme večdimenzionalnih podatkovnih zbirk, kot je SQL Server Analysis Services. Če je izraz za vas nov, je v naslednjem primeru razloženo, kaj je neznani član in kako vpliva na izračune.

Recimo, da ustvarite izračun, ki sešteje mesečna prodaja za vsako trgovino, vendar stolpca v tabeli prodaje manjka vrednost za ime trgovine. Glede na to, tabel za shranjevanje in Prodaja vzpostavljeno povezavo z imenom v trgovini, kar bi pričakovali zgodilo v formuli? Kako naj v vrtilni tabeli združiti ali prikazati prodajne številke, ki niso povezane z obstoječo trgovine?

Ta težava je pogosta v skladiščih podatkov, kjer morajo biti velike tabele podatkov logično povezane s tabelami dimenzij, ki vsebujejo informacije o trgovinah, območjih in drugih lastnostih, ki se uporabljajo za razvrščanje in računanje podatkov. Če želite to težavo odpraviti, neznanemu članu začasno dodelite vse nove podatke, ki niso povezani z obstoječo entiteto. Zato se bodo nepovezani podatki prikazali kot združeni v skupine v vrtilni tabeli pod praznim naslovom.

Obravnava praznih vrednosti v primerjavi z obravnavo praznih vrstic

Prazne vrednosti se razlikujejo od praznih vrstic, ki se dodajo za neznanega člana. Prazna vrednost je posebna vrednost, ki se uporablja za predstavitev ničelnih vrednosti, praznih nizov in drugih manjkajočih vrednosti. Če želite več informacij o prazni vrednosti in drugih podatkovnih tipih jezika DAX, glejte Podatkovni tipi v podatkovnih modelih.

Na vrh strani

Opomba : Strojni prevod – zavrnitev odgovornosti: Ta članek je bil preveden z računalniškim programom brez človeškega posredovanja. Microsoft skuša s strojno prevedenimi članki vsebino o Microsoftovih izdelkih, storitvah in tehnologijah približati osebam, ki ne razumejo angleščine. Ker je bil članek strojno preveden, so lahko v njem jezikovne, slovnične in pravopisne napake.

Razširite svoja znanja
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×