Kontekst v formulah jezika DAX

Opomba: Najnovejšo vsebino pomoči v vašem jeziku vam želimo zagotoviti v najkrajšem možnem času. Ta stran je bila prevedena z avtomatizacijo in lahko vsebuje slovnične napake ali nepravilnosti. Naš namen je, da bi bila vsebina za vas uporabna. Ali nam lahko na dnu te strani sporočite, ali so bile informacije za vas uporabne? Tukaj je angleški članek za preprosto referenco.

Kontekst vam omogoča, da izvedete dinamično analizo, v kateri se lahko rezultati formule spremenijo, da odražajo trenutno izbiro vrstic ali celic in tudi vse povezane podatke. Razumevanje konteksta in učinkovito uporabo konteksta sta zelo pomembna za ustvarjanje visoko delujočih formul, dinamičnih analiz in odpravljanje težav v formulah.

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

V zadnjem delu tega članka so na voljo povezave do podrobnih primerov, ki ponazarjajo, kako se rezultati formul spremenijo glede na kontekst.

Razumevanje konteksta

Filtri, ki so uporabljeni v vrtilni tabeli, lahko vplivajo na formule v Power Pivot za relacije med tabelami in s filtri, ki so uporabljeni v formulah. Kontekst je tisto, kar omogoča, da izvedete dinamično analizo. Razumevanje konteksta je pomembno za ustvarjanje in odpravljanje težav s formulami.

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

Kontekst vrstice se lahko pomisli kot» Trenutna vrstica «. Če ste ustvarili izračunani stolpec, je kontekst vrstice sestavljen iz vrednosti v posameznih vrsticah in vrednostih v stolpcih, ki so povezani s trenutno vrstico. Na voljo so tudi nekatere funkcije (Prejšnja in Najzgodnejša), ki prejmejo vrednost iz trenutne vrstice in nato uporabite to vrednost, medtem ko izvajate operacijo nad celotno tabelo.

Kontekst poizvedbe se sklicuje na podnabor podatkov, ki so implicitno ustvarjeni za vsako celico v vrtilni tabeli, odvisno od glav vrstic in stolpcev.

Kontekst filtra je nabor vrednosti, ki so dovoljene v posameznem stolpcu, ki temeljijo na omejitvah filtra, ki so bile uporabljene v vrstici ali so določene s filtrom izraze v formuli.

Vrh strani

Kontekst vrstice

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

Recimo, da ustvarite izračunani stolpec, = [tovor] + [davek],

, ki doda dva stolpca iz iste tabele. Ta formula se obnaša kot formule v Excelovi tabeli, v kateri so samodejno sklicne vrednosti iz iste vrstice. Upoštevajte, da se tabele razlikujejo od obsegov: ne morete se sklicevati na vrednost iz vrstice pred trenutno vrstico z uporabo zapisa obsega in ne morete sklicevati poljubne posamezne vrednosti v tabeli ali celici. Vedno morate delati s tabelami in stolpci.

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

Ta formula na primer uporablja funkcijo» SORODNo «, da dobi davčno vrednost iz povezane tabele, ki temelji na regiji, na katero je bil naročilo dobavljeno. Davčna vrednost je določena z vrednostjo za regijo v trenutni tabeli, ki išče regijo v povezani tabeli in nato dobi davčno stopnjo za to regijo iz povezane tabele.

= [Freight] + reLATED ("regija" [TaxRate])

Ta formula preprosto dobi davčno stopnjo za trenutno regijo iz tabele regija. Ni vam treba poznati ali določiti ključa, ki povezuje tabele.

Kontekst več vrstic

Poleg tega DAX vključuje funkcije, ki ponovitev izračunov v tabeli. Te funkcije lahko imajo več trenutnih vrstic in vrstice s trenutnimi vrsticami. V programskih izrazih lahko ustvarite formule, ki se ponavljajo nad notranjo in zunanjo zanko.

Recimo, da delovni zvezek vsebuje tabelo» izdelki «in tabelo prodaje . Morda želite pregledati celotno tabelo prodaje, ki je polna transakcij, ki vključujejo več izdelkov, in poiskati največjo količino, razvrščeno za vsak izdelek v eni transakciji.

V Excelu ta izračun zahteva niz vmesnih povzetkov, ki bi jih bilo treba znova ustvariti, če so se podatki spremenili. Če ste uporabnik za Power Excel, boste morda lahko gradili formule s polji, ki bi opravile delo. Druga možnost je, da lahko v relacijski zbirki podatkov napišete ugnezdene podizbore.

Vendar pa lahko z DAX zgradite eno formulo, ki vrne pravilno vrednost, rezultati pa se samodejno posodobijo vsakič, ko dodate podatke v tabele.

= MAXX (FILTER (prodaja, [ProdKey] = EARLIER ([ProdKey])), prodaja [OrderQty])

Če želite podroben pregled te formule, si oglejte Prejšnja.

Na kratko, prejšnja funkcija shrani kontekst vrstice iz operacije, ki je pred trenutno operacijo. Ob vsakem času je funkcija shranjena v pomnilniku dva niza konteksta: en nabor konteksta predstavlja trenutno vrstico za notranjo zanko formule in drug nabor konteksta predstavlja trenutno vrstico za zunanjo zanko formule. DAX samodejno hrani vrednosti med dvema zankami, tako da lahko ustvarite zapletene agregate.

Vrh strani

Kontekst poizvedbe

Kontekst poizvedbe se sklicuje na podnabor podatkov, ki so implicitno pridobljeni za formulo. Ko spustite merilo ali drugo vrednost v celico v vrtilni tabeli, mehanizem Power Pivot pregleda glave vrstic in stolpcev, razčlenjevalnike in filtre poročila za določanje konteksta. Nato Power Pivot naredi potrebne izračune, da zapolni vsako celico v vrtilni tabeli. Nabor podatkov, ki so pridobljeni, je kontekst poizvedbe za vsako celico.

Ker se kontekst lahko spremeni, odvisno od tega, kam postavite formulo, se rezultati formule razlikujejo glede na to, ali uporabite formulo v vrtilni tabeli s številnimi skupinami 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 tabele prodaje : = sum ("prodaja" [dobiček]).

Če uporabite to formulo v izračunanem stolpcu v tabeli prodaje , bodo rezultati formule enaki za celotno tabelo, ker je kontekst poizvedbe za formulo vedno celoten nabor podatkov v tabeli» Prodaja «. Vaši rezultati bodo imeli dobiček za vse regije, vse izdelke, vsa leta in tako dalje.

Vendar pa po navadi ne želite več stokrat videti rezultata, temveč želite pridobiti dobiček za določeno leto, določeno državo ali regijo, določen izdelek ali nekaj kombinacije teh in nato pridobiti skupno vsoto.

V vrtilni tabeli lahko spremenite kontekst tako, da dodate ali odstranite glave stolpcev in vrstic ter dodate ali odstranite razčlenjevalnike. Formulo, kot je na primer zgoraj, lahko ustvarite na merilo in jo nato spustite v vrtilno tabelo. Ko v vrtilno tabelo dodate glave stolpcev ali vrstic, spremenite kontekst poizvedbe, v katerem je merilo ovrednoteno. Delovanje za rezanje in filtriranje vpliva tudi na kontekst. Zato je ista formula, uporabljena v vrtilni tabeli, ovrednotena v drugem kontekstu poizvedbe za vsako celico.

Vrh strani

Kontekst filtra

Kontekst filtra je dodan, ko določite omejitve filtra na naboru vrednosti, ki so dovoljene v stolpcu ali tabeli, in sicer tako, da uporabite argumente v formuli. Kontekst filtra velja na vrhu drugih kontekstov, kot je kontekst vrstice ali kontekst poizvedbe.

Na primer Vrtilna tabela izračuna vrednosti za vsako celico, ki temelji na glavah vrstic in stolpcev, kot je opisano v prejšnjem razdelku v kontekstu poizvedbe. Vendar pa lahko v okviru mer ali izračunanih stolpcev, ki jih dodate v vrtilno tabelo, določite izraze filtra za nadzor vrednosti, ki jih uporablja formula. Prilagodite lahko tudi filtre za določene stolpce.

Če želite več informacij o tem, kako ustvarite filtre v formulah, glejte funkcije filtra.

Za primer, kako je mogoče filtre počistiti, da ustvarite skupne vsote, si oglejte vse.

Če želite primere, kako selektivno počistiti in uporabiti filtre v formulah, si oglejte funkcijo ALLEXCEPT.

Zato morate pregledati definicijo mer ali formul, ki se uporabljajo v vrtilni tabeli, tako da se zavedate konteksta filtra pri razlagi rezultatov formul.

Vrh strani

Določanje konteksta v formulah

Ko ustvarite formulo, Power Pivot za Excel najprej preveri za splošno sintakso in nato preveri imena stolpcev in tabel, ki jih navedete v razdelku Možni stolpci in tabele v trenutnem kontekstu. Če Power Pivot ne najde stolpcev in tabel, ki jih določa formula, se prikaže sporočilo o napaki.

Kontekst je določen, kot je opisano v prejšnjih razdelkih, in sicer tako, da uporabite tabele, ki so na voljo v delovnem zvezku, vse relacije med tabelami in vsi uporabljeni filtri.

Če ste na primer pravkar uvozili nekaj podatkov v novo tabelo in niste uporabili nobenih filtrov, je celoten nabor stolpcev v tabeli del trenutnega konteksta. Če imate več tabel, ki so povezane z relacijami in delate v vrtilni tabeli, ki je bila filtrirana tako, da dodate glave stolpcev in uporabite razčlenjevalnike, kontekst vključuje sorodne tabele in vse filtre podatkov.

Kontekst je močan koncept, ki lahko oteži odpravljanje težav s formulami. Priporočamo, da začnete s preprostimi formulami in relacijami, da si ogledate, kako kontekst deluje, in nato začnete eksperimentirati s preprostimi formulami v vrtilnih tabelah. V tem razdelku so na voljo tudi nekateri primeri, kako formule uporabljajo različne vrste konteksta, da dinamično vrnejo rezultate.

Primeri konteksta v formulah

  • SORODNa funkcija razširi kontekst trenutne vrstice, da vključi vrednosti v povezanem stolpcu. S tem lahko izvedete poizvedbe. Primer v tej temi prikazuje interakcijo med filtriranjem in kontekstom vrstice.

  • Funkcija FILTER vam omogoča, da določite vrstice, ki jih želite vključiti v trenutni kontekst. Primeri v tej temi ponazarjajo tudi, kako vdelati filtre znotraj drugih funkcij, ki izvajajo združevalne funkcije.

  • Funkcija ALL functions določa kontekst v formuli. Uporabite ga lahko, če želite preglasiti filtre, ki so uporabljeni kot rezultat konteksta poizvedbe.

  • S funkcijo ALLEXCEPT lahko odstranite vse filtre, razen tistega, ki ga navedete. Obe temi vključujeta primere, ki vas pospremita skozi ustvarjanje formul in razumevanje zapletenih kontekstov.

  • PREJ in najSTAREJŠa funkcija omogočata zanko med tabelami, in sicer tako, da izvedete izračune, pri čemer se sklicujete na vrednost iz notranje zanke. Če poznate koncept rekurzije in z notranjimi in zunanjimi zankami, boste cenili moč, ki jo nudijo prej in najstarejša funkcija. Če ste novi v teh konceptih, upoštevajte navodila v tem primeru, da si ogledate, kako so notranja in zunanja konteksta uporabljena v izračunih.

Vrh strani

Referenčna integriteta

V tem razdelku so obravnavani nekateri napredni pojmi, povezani z manjkajočimi vrednostmi v Power Pivot tabelah, ki so povezane z relacijami. Ta razdelek je morda uporaben za vas, če imate delovne zvezke z več tabelami in zapletenimi formulami ter želite pomoč pri razumevanju rezultatov.

Če uporabljate nove koncepte relacijskih podatkov, priporočamo, da najprej preberete uvodno temo, pregled odnosov.

Referenčna integriteta in Power Pivot relacije

Power Pivot ne zahteva, da se referenčna integriteta uveljavi med dvema tabelama, da bi določila veljavno relacijo. Namesto tega je prazna vrstica ustvarjena na koncu vsake relacije» ena proti mnogo «in se uporablja za obravnavanje vseh neujemajočih se vrstic iz povezane tabele. Učinkovito se obnaša kot SQL zunanje združevanje.

Če v vrtilnih tabelah združite podatke po eni strani relacije, so vsi neujemajoči se podatki na številnih straneh relacije združeni in bodo vključeni v vsote s prazno glavo vrstice. Prazen naslovi je približno enakovreden» neznan član «.

Razumevanje neZnanega člana

Koncept neznanega člana je verjetno seznanjen z vami, če ste delali z večdimenzionalnimi sistemi zbirke podatkov, kot so storitve SQL Server Analysis Services. Če je izraz nov za vas, je v tem primeru razloženo, kaj je neznani član in kako vpliva na izračune.

Recimo, da ustvarjate izračun, ki povzema mesečno prodajo za vsako trgovino, vendar stolpec v tabeli prodaje manjka vrednosti za ime shrambe. Glede na to, da so tabele za shranjevanje in prodajo vezane na ime shrambe, kaj pričakujete, da se bo zgodilo v formuli? Kako naj skupina vrtilne tabele ali prikaže številke prodaje, ki niso povezane z obstoječo trgovino?

Ta težava je pogosta v podatkovnih skladiščih, kjer morajo biti velike tabele dejstev logično povezane s tabelami dimenzij, ki vsebujejo informacije o shrambah, območjih in drugih atributih, ki se uporabljajo za razvrščanje in izračunavanje dejstev. Če želite odpraviti težavo, so vsa nova dejstva, ki niso povezana z obstoječo entiteto, začasno dodeljena neznanemu članu. Zaradi tega bodo nepovezana dejstva prikazana v skupini v vrtilni tabeli pod praznim naslovom.

Obdelava praznih vrednosti v primerjavi s prazno vrstico

Prazne vrednosti se razlikujejo od praznih vrstic, ki so dodane za namestitev neznanega člana. Prazna vrednost je posebna vrednost, ki se uporablja za predstavljanje ničelnih vrednosti, praznih nizov in drugih manjkajočih vrednost. Če želite več informacij o prazni vrednosti in drugih podatkovnih vrstah DAX, glejte podatkovni tipi v podatkovnih modelih.

Na vrh strani

Razširite poznavanje Officea
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.

×