S kontekstom lahko izvedete dinamično analizo, v kateri se rezultati formule lahko spremenijo tako, da odražajo trenutno vrstico ali izbor celice in morebitne povezane podatke. Razumevanje konteksta in učinkovito uporabo konteksta je zelo pomembno pri oblikovanju formul z visoko rezultati, dinamičnih analiz in odpravljanju težav v formulah.

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

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

Razumevanje konteksta

Na formule v Power Pivot formule lahko vplivajo filtri, uporabljeni v vrtilni tabeli, odnosi med tabelami in filtri, uporabljeni v formulah. S kontekstom lahko izvedete dinamično analizo. Razumevanje konteksta je pomembno pri oblikovanju in odpravljanju težav s formulami.

Na voljo so različne vrste konteksta: kontekst vrstice, kontekst poizvedbe in kontekst filtra.

Kontekst vrstice je lahko »trenutna vrstica«. Če ste ustvarili izračunan stolpec, so v kontekstu vrstice vrednosti v vsaki posamezni vrstici in vrednosti v stolpcih, ki so povezane s trenutno vrstico. Na voljo so tudi nekatere funkcije (EARLIER in EARLIEST), ki dobi vrednost iz trenutne vrstice in jo nato uporabi med izvajanjem operacije prek celotne tabele.

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

Kontekst filtra je nabor vrednosti, dovoljenih v posameznem stolpcu, na podlagi omejitev filtra, ki so bile uporabljene v vrstici ali ki so določene z izrazi filtra v formuli.

Na vrh strani

Kontekst vrstice

Če v izračunanem stolpcu ustvarite formulo, 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.

Denimo, da ustvarite izračunan stolpec =[Prevoz] + [Davek],

, ki sešteje dva stolpca iz iste tabele. Ta formula deluje kot formule v Excel, ki se samodejno sklicijo na vrednosti iz iste vrstice. Upoštevajte, da se tabele razlikujejo od obsegov: z zapisom obsega se ne morete sklicevati na vrednost od vrstice pred trenutno vrstico in se ne morete sklicevati na poljubno posamezno vrednost v tabeli ali celici. Vedno morate delati s tabelami in stolpci.

Kontekst vrstice samodejno sledi relacijam med tabelami, da določi, katere vrstice v povezanih tabelah so povezane s trenutno vrstico.

Ta formula na primer uporablja funkcijo RELATED za pridobivanje davčne vrednosti iz povezane tabele, ki temelji na regiji, v kateri je bilo naročilo poslano. Davčna vrednost je določena z vrednostjo za regijo v trenutni tabeli, ki išče regijo v povezani tabeli, in nato iz povezane tabele pridobivanje davčne stopnje za to regijo.

= [Prevoz] + RELATED('Regija'[DavčnaRate])

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

Kontekst več vrstic

POLEG TEGA DAX vključuje funkcije, ki iterate izračune prek tabele. Te funkcije lahko imajo več trenutnih vrstic in kontekste trenutnih vrstic. V programskih izrazih lahko ustvarite formule, ki se ponavljajo prek notranje in zunanje zanke.

Denimo, da vaš delovni zvezek vsebuje tabelo »Izdelki«in tabelo »Prodaja«. Morda boste želeli prešteti celotno tabelo prodaje, ki je polna transakcij, ki vključujejo več izdelkov, in poiskati največjo naročeno količino za vsak izdelek v poljubni transakciji.

V Excel izračun zahteva niz vmesnih povzetkov, ki jih je treba preračunati, če se spremenijo podatki. Če ste na power-user of Excel, boste morda lahko zgradili matrične formule, ki bi to opravilo naredili. Namesto tega lahko v relacijski zbirki podatkov napišete ugnezdene podizbore.

Toda z izrazom DAX lahko ustvarite eno samo formulo, ki vrne pravilno vrednost, rezultati pa so samodejno posodobljeni vsakič, ko dodate podatke v tabele.

=MAXX(FILTER(Prodaja,[ProdKey]=EARLIER([ProdKey])),Prodaja[Naročila])

Če želite podrobna navodila za to formulo, glejte PREJŠNJO RAZLIČICO.

Na kratko, funkcija EARLIER shrani kontekst vrstice iz operacije, ki je bila pred trenutno operacijo. Funkcija vedno shrani dva nabora konteksta v pomnilnik: en nabor konteksta predstavlja trenutno vrstico za notranjo zanko formule, drug nabor konteksta pa predstavlja trenutno vrstico za zunanjo zanko formule. DAX samodejno vnese vrednosti med dvema zankama, tako da lahko ustvarite zapletene združene vrednosti.

Na vrh strani

Kontekst poizvedbe

Kontekst poizvedbe se nanaša na podnabor podatkov, ki so implicitno pridobljeni za formulo. Ko spustite mero ali drugo polje z vrednostjo v celico v vrtilni tabeli, mehanizem za Power Pivot pregleda glave vrstic in stolpcev, razčlenjevalnike in filtre poročila, da določi kontekst. Nato Power Pivot izračune, ki jih je treba izračunati za vsako celico v vrtilni tabeli. Nabor podatkov, ki se pridobiva, je kontekst poizvedbe za vsako celico.

Ker se kontekst lahko spreminja glede na to, kam jo postavite, se spremenijo tudi rezultati formule, odvisno od tega, ali uporabljate formulo v vrtilni tabeli s številnimi združevanjemi in filtri ali v izračunanem stolpcu brez filtrov in najmanjšega konteksta.

Recimo, da ustvarite to preprosto formulo, ki sešteje vrednosti v stolpcu »Dobiček« tabele »Prodaja«:=SUM('Prodaja'[Dobiček]).

Če uporabite to formulo v izračunanem stolpcu v tabeli »Prodaja«, bodo rezultati za formulo enaki za celotno tabelo, ker je kontekst poizvedbe za formulo vedno celoten nabor podatkov tabele »Prodaja«. Vaši rezultati bodo na voljo v dobičku za vse regije, vse izdelke, vsa leta itd.

Vendar pa običajno ne želite, da se isti rezultat vidi več stokrat, ampak želite dobiti dobiček določenega leta, določene države ali regije, določenega izdelka ali kombinacije teh, in nato dobite skupno vsoto.

V vrtilni tabeli lahko preprosto spremenite kontekst tako, da dodate ali odstranite glave stolpcev in vrstic ter dodate ali odstranite razčlenjevalnike. Ustvarite lahko formulo, podobno zgornji, v meri, in jo spustite v vrtilno tabelo. Vsakič ko dodate glave stolpcev ali vrstic v vrtilno tabelo, spremenite kontekst poizvedbe, v katerem je mera ovrednotena. Na kontekst vplivajo tudi operacije navlake in filtriranje. Zato je ista formula, uporabljena v vrtilni tabeli, ovrednotena v drugem kontekstu poizvedbe za vsako celico.

Na vrh strani

Kontekst filtra

Kontekst filtra je dodan, ko določite omejitve filtra za nabor vrednosti, dovoljenih v stolpcu ali tabeli, z uporabo argumentov v formuli. Kontekst filtra je mogoče na primer nanašati na druge kontekste, na primer kontekst vrstice ali kontekst poizvedbe.

Vrtilna tabela na primer izračuna vrednosti za vsako celico glede na glave vrstic in stolpcev, kot je opisano v prejšnjem razdelku v kontekstu poizvedbe. Vendar pa lahko znotraj mej ali izračunanih stolpcev, ki jih dodate v vrtilno tabelo, določite izraze filtra za nadzor vrednosti, ki jih uporablja formula. Lahko tudi selektivno počistite filtre za določene stolpce.

Če želite več informacij o ustvarjanju filtrov v formulah, glejte Funkcije za filtriranje.

Primer, kako lahko filtre počistite, če želite ustvariti skupne vsote, si oglejte ALL.

Za primere, kako selektivno počistite in uporabite filtre v formulah, glejte Funkcija ALLEXCEPT.

Zato morate pregledati definicijo mej ali formul, uporabljenih v vrtilni tabeli, tako da ste med interpretiranjem rezultatov formul seznanjeni s kontekstom filtra.

Na vrh strani

Določanje konteksta v formulah

Ko ustvarite formulo, Power Pivot za Excel najprej preveri splošno sintakso, nato pa preveri imena stolpcev in tabel, ki ste jih vneli, glede na morebitne stolpce in tabele v trenutnem kontekstu. Če Power Pivot ne najdete stolpcev in tabel, navedenih s formulo, se prikaže sporočilo o napaki.

Kontekst je določen, kot je opisano v prejšnjih razdelkih, tako da se uporabijo tabele v delovnem zvezku, ki so na voljo, morebitne relacije med tabelami in filtri, ki so bili uporabljeni.

Če ste na primer pravkar uvozili nekaj podatkov v novo tabelo in niste uporabili 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 z dodajanjem naslovov stolpcev in z razčlenjevalniki, kontekst vključuje povezane tabele in filtre za podatke.

Kontekst je zmogljiv koncept, ki lahko oteži tudi odpravljanje težav s formulami. Priporočamo, da začnete s preprostimi formulami in odnosi, da vidite, kako kontekst deluje, in nato začnite preskušati preproste formule v vrtilnih tabelah. V tem razdelku je tudi nekaj primerov, 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 vključi vrednosti v povezani stolpec. To vam omogoča, da izvedete iskanja. V primeru v tej temi je prikazana interakcija s filtriranjem in kontekstom vrstic.

  • S funkcijo FILTER lahko določite vrstice, ki jih želite vključiti v trenutni kontekst. Primeri v tej temi prav tako prikazujejo, kako vdelate filtre v druge funkcije, ki izvajajo združevanje.

  • Funkcija ALL nastavi kontekst v formuli. Uporabite jo lahko za preglasitev filtrov, ki so uporabljeni v kontekstu poizvedbe.

  • S funkcijo ALLEXCEPT lahko odstranite vse filtre, razen tistega, ki ga določite. Obe temi vključujeta primere, ki vas bodo pona mikali skozi oblikovanje formul in razumevanje zapletenih kontekstov.

  • Funkciji EARLIER in EARLIEST omogočata ponavljanje tabel z izvajanjem izračunov, medtem ko se sklicujete na vrednost iz notranje zanke. Če poznate koncept ponavljanja ter notranje in zunanje zanke, boste cenili moč, ki jo ponujata funkciji EARLIER in EARLIEST. Če teh konceptov še ne boste uporabljali, natančno upoštevajte navodila v primeru, da boste videli, kako so notranji in zunanji konteksti uporabljeni v izračunih.

Na vrh strani

Referenčna integriteta

V tem razdelku so nekateri napredni koncepti, povezani z manjkajočimi vrednostmi v Power Pivot, ki so povezane z odnosi. Ta razdelek vam bo morda uporaben, če imate delovne zvezke z več tabelami in zapletenimi formulami ter želite pomoč pri razumevanju rezultatov.

Če ste nov koncept relacijskih podatkov, vam priporočamo, da najprej preberete uvodno temo Pregled relacij.

Referenčna integriteta in Power Pivot relacije

Power Pivot ni treba referenčno integriteto vsiliti med dvema tabelama, da bi določili veljavno relacijo. Namesto tega je na koncu »ena« vsake relacije »ena proti mnogo« ustvarjena prazna vrstica, uporabljena pa je za obravnavo vseh vrstic, ki se ne ujemajo z ujemajočimi se vrsticami iz povezane tabele. Učinkovito deluje kot SQL združevanje.

Če v vrtilnih tabelah združite podatke na eni strani relacije, so vsi netchtched data on the many side of the relationship grouped and will be included in totals with a blank row heading. Prazen naslov je približno enakovreden »neznanem članu«.

Razumevanje neznanega člana

Koncept neznanega člana vam verjetno že poznate, če ste delali s sistemi večdimenzijskih zbirk podatkov, kot so storitve SQL Server Analysis Services. Če ste nov izraz, je v tem primeru razloženo, kaj je neznani član in kako ta vpliva na izračune.

Denimo, da želite ustvariti izračun, ki sešteje mesečne prodaje za vsako trgovino, v tabeli »Prodaja« pa manjka vrednost imena trgovine. Kaj bi pričakovali v formuli, glede na to, da sta tabeli za Trgovino in Prodajo povezani z imenom trgovine? Kako naj vrtilna tabela prikaže podatke o prodaji, ki niso povezani z obstoječo shrambo?

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

Obravnava praznih vrednosti in prazna vrstica

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

Na vrh strani

Ali potrebujete dodatno pomoč?

Razširite svoja znanja
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridruži se Microsoftu programa Insider

Vam je bila informacija v pomoč?

Kako ste zadovoljni s kakovostjo prevoda?

Kaj je vplivalo na vašo izkušnjo?

Ali imate še kakšne povratne informacije? (Izbirno)

Zahvaljujemo se vam za povratne informacije.

×