Office
Logi sisse

DAX-i valemite kontekst

Märkus.:  Soovime pakkuda teie keeles kõige ajakohasemat spikrisisu niipea kui võimalik. See leht on tõlgitud automaatselt ja sellel võib leiduda grammatikavigu või ebatäpsusi. Tahame, et sellest sisust oleks teile abi. Palun märkige selle lehe allservas, kas sellest teabest oli teile kasu või mitte. Soovi korral saab ingliskeelset artiklit lugeda siit .

Kontekst võimaldab teha dünaamilist analüüsi, kus valemi tulemused võivad muutuda, peegeldades jooksva rea või lahtri valikut ja ka mis tahes seotud andmeid. Konteksti mõistmine ja selle tulemuslik kasutamine on väga olulised hästitoimivate valemite ja dünaamiliste analüüside koostamiseks ning valemites probleemide lahendamiseks.

Selles jaotises määratleb kontekstis erinevat tüüpi: reakontekst, päringukontekst ja Filtrikontekst. Seda selgitatakse, kuidas kontekstis hinnatakse valemid arvutatud veergudes ja PivotTable-liigendtabelites.

Artikli viimases osas on lingid üksikasjalike näidete juurde, mis illustreerivad, kuidas valemite tulemused kontekstist olenevalt muutuvad.

Konteksti mõistmine

Valemite Power Pivot võib mõjutada PivotTable-liigendtabelis rakendatud filtrid, tabelitevahelisi seoseid ja valemites kasutatud filtrid. Kontekst on, mis võimaldab teha dünaamiline analüüs. Konteksti mõistmine on oluline ja valemite tõrkeotsing.

Erinevat tüüpi kontekstis on: reakontekst, päringukontekst ja Filtrikontekst.

Reakontekst saab kirjeldada kui "praegune rida." Kui olete loonud arvutatud veeru, rea kontekst koosneb iga üksiku rea väärtused ja väärtused veergudest, mis on seotud praeguse rea. Samuti on mõned funktsioonid (funktsioon EARLIER ja funktsioon EARLIEST), mis praeguse rea väärtuse toomine ja seejärel kasutage seda väärtust ajal toimingu üle terve tabeli.

Päringukontekst viitab andmete, mis on peidetult loodud PivotTable-liigendtabeli, olenevalt rea- ja veerupäiste iga lahtri jaoks alamhulk.

Filtrikontekst on lubatud iga veeru alusel filtreerimine piiranguid, mis on rakendatud rida ja mis on määratletud filtri väljendid valem väärtuste.

Lehe algusse

Reakontekst

Kui loote valemi arvutatud veergu, sisaldab selle valemi rea kontekst praeguse rea kõigi veergude olevad väärtused. Kui tabel on seotud teises tabelis, sisu sisaldab ka kõik väärtused selle tabeli, mis on seotud praeguse rea.

Näiteks Oletame, et loote arvutatud veeru, = [veokulu] + [maksud]

mis liidab kaks sama tabeli veergu. See valem toimib nagu Exceli tabeli valemid, mis viitavad automaatselt sama rea väärtustele. Pange tähele, et tabelite vahemikud on erinevad: te ei saa viidata väärtusele praeguse rea ees olevast reast, kasutades vahemiku esitust, ning te ei saa viidata ühelegi suvalisele üksikväärtusele tabelis või lahtris. Peate töötama alati tabelite ja veergudega.

Reakontekst järgib automaatselt tabelitevahelisi seoseid, et määrata, millised seotud tabelite read on praeguse reaga seotud.

Näiteks järgmine valem kasutab funktsiooni RELATED maksuväärtuse toomiseks seotud tabelist piirkonna põhjal, kuhu tellimus saadeti. Maksuväärtus määratakse praeguse tabeli piirkonna põhjal, otsides piirkonna seotud tabelist üles ja tuues siis seotud tabelist vastava piirkonna maksumäära.

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

See valem toob lihtsalt praeguse piirkonna maksumäära tabelist Region. Te ei pea teadma ega täpsustama tabeleid ühendavat võtit.

Mitme rea kontekst

Lisaks on DAX-is funktsioon, mis itereerib arvutused üle tabeli. Nendel funktsioonidel võib olla mitu jooksvat rida ja jooksva rea konteksti. Programmeerimise seisukohast saate luua valemeid, mis kasutavad nii sise- kui ka välistsüklit.

Oletame näiteks, et teie töövihik sisaldab toodete tabeliks ja tabeli Müük . Võib soovite läbida müügi terve tabel, mis on seotud tooted tehingute täis, ja otsige üles iga toote puhul tellitud suurim kogus.

Excelis nõuab selline arvutamine vahesummade seeriat, mis tuleks andmete muutumisel ümber teha. Kui olete kogenud Exceli kasutaja, suudate ilmselt koostada massiivivalemid, mis olukorra lahendavad. Teine võimalus on relatsiooniandmebaasis pesastatud osavalikute koostamine.

Kuid DAX-iga saate koostada ühe valemi, mis tagastab õige väärtuse, ja tulemusi värskendatakse automaatselt iga kord, kui tabelitesse andmeid lisate.

=MAXX(filter(Sales,[ProdKey]=EARLIER([ProdKey])),sales[OrderQty])

Üksikasjaliku selgituse seda valemit, vt lehelt funktsioon EARLIER.

Lühidalt: funktsioon EARLIER talletab reakonteksti praegusele toimingule eelnenud toimingust. Funktsioon salvestab mällu alati kaks kontekstikogumit: üks kontekstikogum kajastab valemi sisetsükli praegust rida ja teine kontekstikogum kajastab valemi välistsükli praegust rida. DAX liigutab väärtusi automaatselt kahe tsükli vahel, mistõttu saate luua keerukaid agregaate.

Lehe algusse

Päringukontekst

Päringukontekst viitab andmete, mis on peidetult valemi alamhulk. Kui PivotTable-liigendtabelis lahtrisse langeb mõõt või muude Väärtusevälja, uurib Power Pivot mootori rea- ja veerupäiste, tükeldid ja Aruandefiltrid määratlemiseks kontekstis. Seejärel Power Pivot muudab iga lahtri PivotTable-liigendtabelis asustamiseks vajalikud arvutused. Andmete puhul on päringukontekst iga lahtri jaoks.

Kuna kontekst võib muutuda olenevalt sellest, kuhu valemi paigutate, muutuvad ka valemi tulemused olenevalt sellest, kas kasutate valemit PivotTable’is paljude rühmituste ja filtritega või arvutatud veerus, kus puuduvad filtrid ja kontekst on minimaalne.

Näiteks Oletame, et loote selle lihtsa valemi, mis summeerib väärtused veerus kasum table:=SUM('Sales'[Profit]) Müük .

Kui kasutate arvutatud veerg tabelis Sales seda valemit, valemi tulemid on sama terve tabel, kuna valem päringu kontekst on alati tabelis Müük kogu andmekogumit. Tulemid on kasum kõigi piirkondade, toodete, kõigi aastate, jne.

Kuid tavaliselt ei soovi te sama tulemust sadu kordi näha, vaid seevastu saada teatud aasta, teatud riigi või piirkonna, teatud toote või nende kombinatsiooni kasumi ning siis kogusumma.

PivotTable-liigendtabelis on lihtne muuta kontekstis lisamise või eemaldamise veergude ja ridade päised ja lisamise või eemaldamise tükeldid. Nagu üks ülaltoodud mõõt valemi loomine ja seejärel pukseerige see PivotTable-liigendtabel. Iga kord, kui lisate PivotTable-liigendtabeli päiseid, saate muuta päringu konteksti, milles hinnatakse mõõtmise. Viilutamine ja filtreerimise toimingute mõjutada ka konteksti. Seetõttu hinnatakse iga lahtri jaoks eri päringu kontekstis sama valemi, kasutatakse PivotTable-liigendtabelis.

Lehe algusse

Filtrikontekst

Filtrikontekst on lisatud, kui määrate lubatud tabeli või veeru, kasutades valemi argumentide väärtuste filtreerimine piirangud. Filtrikontekst kehtib peal teiste kontekstides, nt reakontekst või päringukontekst.

Näiteks PivotTable-liigendtabeli arvutatakse iga lahtri, rea- ja veerupäiste põhjal, päringukontekst eelmises jaotises kirjeldatud selle väärtused. Siiski mõõdud või arvutatud veerud, mida saate lisada PivotTable-liigendtabeli, saate määrata filtriavaldiste määrata väärtused, mida kasutatakse valem. Võite ka valikuliselt tühjendada kindla veergudes olevate filtrite.

Lisateavet valemites filtrite loomise kohta vt lehelt Filtrifunktsioonid (DAX).

Näide sellest, kuidas filtreid saate kustutatakse üldkokkuvõtete loomiseks leiate teemast funktsioon ALL.

Näiteid, kuidas valikuliseks eemaldamiseks ja rakendamiseks valemites filtrite, leiate lehelt Funktsioon ALLEXCEPT.

Seetõttu tuleb läbi vaadata mõõdud või PivotTable-liigendtabeli valemid, et olete teadlikud Filtrikontekst valemite tulemuste tõlgendamisel määratlemine.

Lehe algusse

Valemite konteksti määramine

Valemi koostamisel kontrollib Exceli Power Pivoti lisandmoodul esmalt üldist süntaksit ning seejärel teie esitatud veergude ja tabelite nimesid, võrreldes neid võimalike veergude ja tabelitega praeguses kontekstis. Kui Power Pivot valemis määratud veerge ja tabeleid ei leia, tagastatakse viga. 

Eelnevate jaotiste kohaselt määratakse kontekst, kasutades töövihikus olevaid tabeleid, seoseid tabelite vahel ja mis tahes rakendatud filtreid.

Näiteks kui olete just uude tabelisse andmed importinud ja pole ühtegi filtrit rakendanud, on kogu veergude komplekt tabelis osa praegusest kontekstist. Kui teil on mitu tabelit, mis on seostega ühendatud, ning töötate PivotTable’iga, mida on filtreeritud, lisades veerupäised ja kasutades tükeldeid, sisaldab kontekst seotud tabeleid ja mis tahes andmetele rakendatud filtreid.

Kontekst on võimas mõiste, mis võib ka valemite tõrkeotsingut raskendada. Soovitame alustada lihtsate valemite ja seostega, et näha, kuidas kontekst toimib, ning seejärel alustada katsetusi PivotTable-liigendtabelites lihtsate valemitega. Järgmises jaotises on mõned näited selle kohta, kuidas valemid kasutavad erinevaid konteksti tüüpe dünaamiliseks tulemuste andmiseks.

Valemite konteksti näited

  • Funktsioon RELATED laiendab praeguse rea konteksti, kaasates seotud veeru väärtused. See võimaldab otsingut. Selle teema näide illustreerib filtreerimise ja rea konteksti vahelist toimet.

  • Funktsioon FILTER lubab määrata read, mis kaasatakse praegusesse konteksti. Selle teema näited illustreerivad ka seda, kuidas manustada filtreid teistesse liitvatesse funktsioonidesse.

  • Funktsioon ALL määrab konteksti valemi sees. Saate kasutada seda filtrite alistamiseks, mis on rakendatud päringukonteksti tulemusena.

  • Funktsioon ALLEXCEPT lubab eemaldada kõik filtrid peale selle, mille määrate. Mõlemas teemas on näited, mis juhatavad teid läbi valemite koostamise ja keerukate kontekstide mõistmise.

  • Funktsioonid EARLIER ja EARLIEST lubavad teil liikuda läbi tabelite, viidates arvutusi tehes sisetsükli väärtusele. Kui olete kordumise mõiste ning sise- ja välistsüklitega tuttav, hindate võimalusi, mille funktsioonid EARLIER ja EARLIEST annavad. Kui need mõisted on teile uued, peaksite järgima hoolikalt näite etappe, et näha, kuidas arvutustes sise- ja väliskonteksti kasutatakse.

Lehe algusse

Viitamisterviklus

Selles jaotises käsitletakse mõningaid keerukaid kontseptsioone, mis on seotud puuduvate väärtustega seostega ühendatud Power Pivoti tabelites. See jaotis võib olla abiks, kui teil on mitmete tabelite ja keerukate valemitega töövihikud ning te soovite abi tulemuste mõistmisel.

Kui olete uus relatsiooniandmete kontseptsioonid, soovitame teil lugeda esmalt sissejuhatavat teemat Seoste ülevaade.

Viitamisterviklus ja Power Pivoti seosed.

Power Pivot ei nõua kehtiva seose määratlemiseks, et kahe tabeli vahel oleks rakendatud viitamisterviklus. Selle asemel luuakse tühi rida iga üks-mitmele seose „üks”-poolel ja seda kasutatakse kõigi seostuvast tabelist pärinevate sobimatute ridade töötlemiseks. See toimib sisuliselt SQL-i välise ühendamisena. 

Kui rühmitate PivotTable-liigendtabelites andmed seose ühe poole alusel, rühmitatakse mis tahes sobimatud andmed seose mitme poolel ja kaasatakse kogusummadesse tühja reapealkirjaga. Tühi pealkiri võrdub üldjoontes „tundmatu liikmega”.

Tundmatu liikme mõistmine

Tundmatu liikme mõiste on teile ilmselt tuttav, kui olete töötanud mitmedimensiooniliste andmebaasisüsteemidega, nagu SQL Serveri analüüsiteenused. Kui see mõiste on teie jaoks uus, selgitab järgmine näide, mis on tundmatu liige ja kuidas see arvutusi mõjutab.

Oletame, et loote arvutus, mis summeerib iga poe igakuine müügi, kuid poe nimi väärtus on puudu müügi tabeli veerus. Poe nimi on ühendatud tabelite talletada ja Müük , et mida ootate valemit juhtuda? Kuidas peaks PivotTable-liigendtabelis rühmitamine ja kuvamine müüginäitajad, mis pole seotud mõne olemasoleva poe?

See probleem on väga levinud andmeladudes, kus suured faktiandmete tabelid peavad olema loogiliselt seotud dimensioonitabelitega, mis sisaldavad teavet kaupluste, piirkondade ja muude atribuutide kohta, mida faktide kategooriatesse jagamisel ja arvutamisel kasutatakse. Probleemi lahendamiseks määratakse mis tahes uued faktid, mis pole olemasoleva üksusega seotud, ajutiselt tundmatule liikmele. Seetõttu kuvatakse seoseta faktid PivotTable’is rühmitatuna tühja pealkirja alla.

Tühjade väärtuste käsitlemine võrreldes tühja reaga

Tühjad read, mis lisatakse mahutamiseks tundmatu liikme erinevad tühjad väärtused. Tühi väärtus on teisiti väärtus, mis tühiväärtusi, tühjade stringide ja muude puuduvate väärtuste väljendamiseks kasutatakse. Tühi väärtus, samuti muud Dax-i andmetüübid kohta leiate lisateavet teemast andmetüübid andmemudelites.

Lehe algusse

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.

×