DAX-i valemite kontekst

Kontekst võimaldab teil teha dünaamilist analüüsi, kus valemi tulemid võivad muutuda, peegeldamaks praegust rea või lahtri valikut ja ka sellega seotud andmeid. Konteksti mõistmine ja konteksti tõhus kasutamine on väga oluline suurte valemite, dünaamiliste analüüside ja valemite tõrkeotsingu probleemide lahendamiseks.

Selles jaotises määratletakse eri tüüpi kontekst: rea kontekst, päringu kontekst ja filtri kontekst. Selles selgitatakse, kuidas hinnata valemite põhjal arvutatud veergudes ja PivotTable-liigendtabelites.

Selle artikli viimases osas kirjeldatakse üksikasjalikke näiteid, mis illustreerivad, kuidas valemite tulemid vastavalt kontekstile muutuvad.

Konteksti mõistmine

Power Pivot valemeid võivad mõjutada PivotTable-liigendtabelis rakendatud filtrid, tabelite vahelised seosed ja valemis kasutatavad filtrid. Kontekst võimaldab dünaamilist analüüsi teha. Mõistmise kontekst on oluline valemite koostamiseks ja tõrkeotsinguks.

Eri tüüpi kontekst: rea kontekst, päringu kontekst ja filtri kontekst.

Rea konteksti saab mõelda kui "praegune rida". Kui olete loonud arvutatud veeru, koosneb rea kontekst iga üksiku rea väärtustest ja praeguse reaga seotud veergude väärtustest. Teatud funktsioone (varasemaid ja varasemaid) saab kasutada ka praeguse rea väärtusest ja seejärelkasutada seda väärtust kogu tabeli toimingu sooritamisel.

Päringu kontekst viitab PivotTable-liigendtabeli iga lahtri jaoks kaudselt loodud andmete alamhulga, olenevalt rea-ja veerupäistest.

Filtri kontekst on igas veerus lubatud väärtuste kogum, mis põhineb reale rakendatud filtri piirangutel või on määratletud valemi avaldiste filtri avaldistes.

Lehe algusesse

Rea kontekst

Kui loote valemi arvutatud veerus, kaasatakse selle valemi rea kontekst praeguse rea kõigi veergude väärtused. Kui tabel on seotud mõne muu tabeliga, sisaldab sisu ka kõiki selle teise tabeli väärtusi, mis on seotud praeguse reaga.

Oletagem näiteks, et loote arvutatud veeru = [kaubavedu] + [maksud];

, kus liidetakse kaks veergu samast tabelist. See valem käitub sarnaselt Exceli tabeli valemitega, mis viitavad automaatselt sama rea väärtustele. Pange tähele, et tabelid erineb vahemikest: te ei saa rea märke abil reale enne praeguse rea väärtust viidata ja te ei saa tabelis ega lahtris viidata suvalisele üksikule väärtusele. Peate alati töötama tabelite ja veergudega.

Rea kontekst järgib automaatselt tabelite vahelisi seoseid, et määrata, millised seotud tabelite read on praeguse reaga seotud.

Näiteks kasutab järgmine valem SEOSTUVAt funktsiooni, et tuua käibemaksu väärtus seotud tabelist, võttes aluseks tellimuse saatmise piirkonna. Tulumaksumäär määratakse praeguse tabeli piirkonna väärtuse alusel, otsides vastavas tabelis olevat piirkonda ja seejärel hankides selle piirkonna maksumäära seotud tabelist.

= [Kaubavedu] + seotud ("piirkond" [TaxRate])

See valem saab lihtsalt praeguse piirkonna maksumäära, mis asub tabelist piirkond. Te ei pea teadma ega täpsustama tabeleid ühendava võtme.

Mitme rea kontekst

Lisaks sisaldab DAX funktsioone, mis itereerimiseks arvutusi tabeli alusel. Nendel funktsioonidel võib olla mitu praegust rida ja praegune rida kontekst. Programmeerimise terminites saate luua valemeid, mis recursed sisemise ja välimise silmuse üle.

Oletagem näiteks, et töövihik sisaldab toodete tabelit ja tabelit Müük . Võib-olla soovite minna läbi kogu müügi tabeli, mis on täis mitu toodet hõlmavat tehingut, ja leida iga toote jaoks iga toote jaoks tellitud suurima koguse.

Excelis peab see arvutus sisaldama rea vahekokkuvõtteid, mis tuleb andmete muutmise korral uuesti koostada. Kui olete Exceli kasutaja, on võimalik, et saate koostada massiivsed valemid, mis teeks tööd. Teise võimalusena võite ka omavahel seotud andmebaasides kirjutada pesastatud valikuid.

DAX-i abil saate luua ühe valemi, mis annab tulemiks õige väärtuse, ja tulemusi värskendatakse automaatselt igal ajal, kui lisate andmed tabelisse.

= MAXX (FILTER (müük; [ProdKey] = varasem ([ProdKey])), müük [OrderQty])

Selle valemi üksikasjaliku ülevaate leiate teemast varasem.

Ühesõnaga, VARASEMAs funktsioonis talletatakse rea kontekst operatsioonist, mis eelnes praegusele operatsioonile. Funktsioon talletab mälus alati kahes kontekstis: üks kontekst tähistab valemi sisemise silmuse praegust rida ja teine kontekst tähistab valemite välimise silmuse praegust rida. DAX toidab automaatselt kahe silmuse vahelisi väärtusi, nii et saate luua keerulisi koondandmeid.

Lehe algusesse

Päringu kontekst

Päringu kontekst viitab andmete alamkogumile, mis on valemi jaoks kaudselt alla laaditud. Kui kukutate PivotTable-liigendtabelis mõnele väljale mõõdu või muu väärtuse, analüüsib Power Pivot mootor rea-ja veerupäiste, Tükeldite ja aruannete filtreid konteksti määratlemiseks. Seejärel teeb Power Pivot vajalikud arvutused, et asustada PivotTable-liigendtabeli iga lahter. Alla laaditud andmete kogum on iga lahtri päringu kontekst.

Kuna kontekst muutub olenevalt sellest, kus te valemi paigutate, muutuvad ka valemi tulemid olenevalt sellest, kas kasutate valemit PivotTable-liigendtabelis, kus on palju rühmi ja filtreid, või arvutatud veerus, kus pole filtreid ja minimaalset konteksti.

Oletagem näiteks, et loote selle lihtsa valemi, mis liidab tabeli Müük veerus kasum olevad väärtused: = SUM ("müük" [kasum]).

Kui kasutate seda valemit tabelis Müük arvutatud veerus, on valemi tulemid samad kogu tabeli jaoks, sest valemi päringu kontekst on alati kogu tabeli Müük . Teie tulemid saavad kasu kõigi piirkondade, kõigi toodete, kõigi aastate ja nii.

Kuid tavaliselt ei soovi te sama tulemust näha sadu kordi, kuid selle asemel soovite saada teatud aastaks, konkreetsele riigile või piirkonnale, konkreetsele tootele või nende kombinatsioonile kasumit ning seejärel saada kogusumma.

PivotTable-liigendtabelis on konteksti lihtne muuta, lisades või eemaldades veeru ja rea päiseid ning lisades või eemaldades tükeldid. Saate luua valemit (nt ülal ülal) ja seejärel kukutada need PivotTable-liigendtabelisse. Iga kord, kui lisate PivotTable-liigendtabelile veeru või rea pealkirjad, saate muuta selle päringu konteksti, kus meedet hinnatakse. Tükeldamise ja filtreerimise toimingud mõjutavad ka konteksti. Seetõttu hinnatakse sama valemit, mida kasutatakse PivotTable-liigendtabelis, iga lahtri korral eri päringute kontekstis.

Lehe algusesse

Filtri kontekst

Filtri kontekst lisatakse siis, kui määrate filtri kitsendused veerus või tabelis lubatud väärtuste kogumi alusel, kasutades valemis argumente. Filtri kontekst rakendub muudes kontekstides (nt rea kontekst või päringu kontekst).

Näiteks arvutab PivotTable-liigendtabeli iga lahtri väärtused rea-ja veerupäiste põhjal, nagu on kirjeldatud päringu konteksti eelnevas jaotises. PivotTable-liigendtabelisse lisatud mõõtudes või arvutatud veergudes saate määrata valemis kasutatavate väärtuste reguleerimiseks filtri avaldised. Samuti saate valikuliselt tühjendada teatud veergude filtreid.

Lisateavet valemites filtrite loomise kohta leiate teemast filtri funktsioonid.

Näide selle kohta, kuidas saab filtreid eemaldada üldkokkuvõtete loomiseks, leiate teemast Kõik.

Näiteid valemites olevate filtrite valikuliseks kinnitamise ja rakendamise kohta leiate teemast funktsioon ALLEXCEPT.

Seetõttu peate PivotTable-liigendtabelis kasutatavate mõõtude või valemite definitsiooni üle vaatama, et oleksite valemites olevate tulemite tõlgendamisel teada filtri konteksti.

Lehe algusesse

Valemite konteksti määratlemine

Kui loote valemi, Power Pivot Excel esmalt üldist süntaksit ja seejärel kontrollib see veergude ja tabelite nimesid, mida te praeguses kontekstis võimalike veergude ja tabelite vastu pakute. Kui Power Pivot ei leia valemis määratud veerge ja tabeleid, kuvatakse tõrketeade.

Kontekst määratakse vastavalt eelmistes jaotistes kirjeldatule, kasutades töövihikus saadaolevaid tabeleid, seoseid tabelite ja kõigi rakendatud filtrite vahel.

Kui olete näiteks äsja importinud mõned andmed uude tabelisse ja pole rakendanud filtreid, on tabeli veergude kogum osa praegusest kontekstist. Kui teil on mitu tabelit, mis on seostega lingitud ja te töötate PivotTable-liigendtabelis, mis on filtreeritud, lisades veerupäiste ja kasutades Tükeldiid, sisaldab kontekst seotud tabeleid ja filtreid.

Kontekst on võimas kontseptsioon, mis võib muuta ka valemite tõrkeotsingut keeruliseks. Soovitame teil alustada lihtsate valemite ja seostega, et näha, kuidas kontekst töötab, ja alustage lihtsate valemite katsetamist PivotTable-liigendtabelites. Järgmises jaotises on toodud ka mõned näited selle kohta, kuidas valemid kasutavad dünaamiliselt tulemite jaoks erinevat tüüpi konteksti.

Valemite konteksti näited

  • SEOSTUV funktsioon laiendab praeguse rea konteksti, et kaasata seotud veeru väärtused. See võimaldab teil teha otsinguid. Selles teemas toodud näide illustreerib filtreerimine ja rea konteksti interaktsiooni.

  • Funktsioon FILTER võimaldab määrata praeguses kontekstis kaasatavad read. Selles teemas toodud näited illustreerivad ka filtrite manustamist muudes agregaatides olevates funktsioonides.

  • Valemis on kõik funktsiooni seab kontekst. Saate seda kasutada päringu konteksti tulemina rakendatud filtrite alistamiseks.

  • Funktsiooni ALLEXCEPT abil saate eemaldada kõik filtrid peale ühe, mille määrate. Mõlemad teemad hõlmavad näiteid, mis juhatavad teid läbi valemite koostamise ja keerukate kontekstide mõistmise.

  • VARASEMAD ja varasemad funktsioonid võimaldavad tabelites liikuda, tehes arvutusi ja viitades sisemisele silmusele. Kui oled kursis rekursiivi kontseptsiooniga ning sise-ja välissilmustega, siis hindad seda, mida varasemad ja varasemad funktsioonid pakuvad. Kui olete nende mõistete jaoks uus, järgige näites toodud juhiseid hoolikalt, et näha, kuidas kasutatakse arvutustes sisemist ja välimiset konteksti.

Lehe algusesse

Viitamistervikluse

Selles jaotises käsitletakse teatud täpsemaid mõisteid, mis on seotud Power Pivot tabelite puuduvate väärtustega, mis on seostega ühendatud. See jaotis võib olla kasulik juhul, kui teil on mitu tabelit ja keerukaid valemeid sisaldavad töövihikud ning soovite saada tulemite mõistmiseks abi.

Kui teie andmed on seotud uute andmetega, soovitame teil kõigepealt lugeda sissejuhatavat teemat, seoste ülevaadet.

Viitamistervikluse ja Power Pivot seosed

Power Pivot ei nõua, et sobiv seos määratletakse kahe tabeli vahel. Selle asemel luuakse tühi rida iga üks-mitmele seose "üks" lõpus ning kasutatakse kõigi kattuvate ridade käsitlemiseks seotud tabelist. See toimib tõhusalt kui SQL-i väline ühendus.

Kui rühmitate PivotTable-liigendtabelites andmeid seose ühelt poolelt, rühmitatakse kõik kattuvad andmed seose mitmes servas kokku ning kaasatakse kogusummade hulka tühja rea päisega. Tühi pealkiri on umbes samaväärne "Tundmatu liikmega".

Tundmatu liikme mõistmine

Tundmatu liikme mõiste on ilmselt teile tuttav, kui olete töötanud mitmemõõtmeline andmebaasi süsteemidega (nt SQL Server Analysis Services). Kui termin on teie jaoks uus, selgitatakse järgmises näites, mis on tundmatu liige ja kuidas see mõjutab arvutusi.

Oletame, et loote kalkulatsiooni, mis liidab iga poe igakuise müügi, kuid tabelis Müük oleval veerul puudub poe nime jaoks väärtus. Kuna poe ja müügi tabeleid ühendab poe nimi, mida soovite valemis juhtuda? Kuidas peaks PivotTable-liigendtabeli rühm või kuvama selle müügitulemused, mis pole olemasoleva salvega seotud?

See probleem on levinud andmete ladudes, kus suurte tabelite andmed peavad olema loogiliselt seotud dimensioonide tabelitega, mis sisaldavad teavet poodide, piirkondade ja muude atribuutide kohta, mida kasutatakse faktide kategoriseerimiseks ja arvutamiseks. Probleemi lahendamiseks määratakse kõik uued teadaolevad andmed, mis ei ole seotud olemasoleva olemiga, ajutiselt tundmatule liikmele. Sellepärast kuvatakse ebaseotud faktid tühja pealkirja all PivotTable-liigendtabelis.

Tühjade väärtuste töötlemine vs tühja rida

Tühjad väärtused erinevad tühjade ridade hulgast, mis lisatakse tundmatu liikme majutamiseks. Tühi väärtus on eriväärtus, mida kasutatakse nullide, tühjade stringide ja muude puuduvate väärtuste tähistamiseks. Lisateavet tühja väärtuse ja muude DAX-i andmetüüpide kohta leiate teemast andmetüüpide andmetüübid.

Lehe algusesse

Märkus.:  See leht on tõlgitud automaatselt ning sellel võib leiduda grammatikavigu ja ebatäpsusi. Tahame, et sellest sisust oleks teile abi. Andke meile teada, kui see teave oli teile abiks. Soovi korral saate ingliskeelset artiklit lugeda siit.​

Kas vajate veel abi?

Täiendage Office'i kasutamise oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×