DAX-i valemite kontekst

NB! :  See artikkel on masintõlgitud, vaadake lahtiütlust. Selle artikli ingliskeelse versiooni leiate aadressilt (viiteks).

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.

See jaotis määrab erinevat tüüpi kontekstid: reakontekst, päringukontekst ja filtrikontekst. See selgitab, kuidas konteksti arvutatud veergudes olevate valemite puhul ja PivotTable’ites hinnatakse.

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 rakendatud PivotTable-liigendtabeli filtreid, tabelite vahelised seosed ja valemites kasutatud filtrid. Kontekst on, annab võimaluse dünaamilise analüüsi läbiviimiseks. Mõistmine kontekstis on tähtis hoone ja tõrkeotsingu valemid.

Konteksti tüüpe on mitu: reakontekst, päringukontekst ja filtrikontekst.

Reakontekst tähendab „praegust rida”. Kui olete loonud arvutatud veeru, koosneb reakontekst igas eraldiseisvas reas olevatest väärtustest ning praeguse reaga seotud väärtustest veergudes. On ka mõni funktsioon (funktsioon EARLIER and funktsioon EARLIEST), mis toob väärtuse praegusest reast ja kasutab siis seda väärtust toimingute sooritamiseks kogu tabelis.

Päringukontekst viitab andmete alamkogumile, mis on peidetult loodud PivotTable’i iga lahtri jaoks, olenevalt rea- ja veerupäistest.

Filtrikontekst on väärtuste kogum, mis on lubatud igas veerus reale rakendatud filtripiirangute alusel, või mille on määranud valemis sisalduvad filtriavaldised.

Lehe algusse

Reakontekst

Kui koostate arvutatud veerus valemi, sisaldab selle valemi reakontekst praeguse rea kõigi veergude väärtusi. Kui tabel on seotud teise tabeliga, sisaldab kontekst praeguse reaga seotud väärtusi ka sellest teisest tabelist.

Oletame, et loote arvutatud veergu, = [veokulu] + [käibemaks]

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.

Näiteks oletame, et teie töövihikus on tabel Products ja tabel Sales. Võib olla vaja käia läbi kogu müügitabel, mis on täis mitme tootega seotud tehinguid, ja leida suurim tellitud kogus iga toote kohta mis tahes tehingu raames.

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])

Selle valemi kohta leiate üksikasjaliku juhendi 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äringu kontekstis viitab kaudselt tuuakse valemi andmete alamhulga. Kui lohistad meetme või muu väärtus välja PivotTable-liigendtabeli lahtrisse, Power Pivot mootori uurib rea- ja veerupäiste, tükeldid ja Aruandefiltrid raames määramiseks. Siis, Power Pivot teeb vajalikud arvutused asustamiseks kõik PivotTable-liigendtabeli lahtrid. Andmete puhul on päringu seoses iga lahtri.

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.

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

Kui kasutate seda valemit arvutatud veerus tabelis Müük, on valemi tulemused samad kogu tabelis, kuna valemi päringukontekst on alati kogu tabeli Müük andmekogum. Teie tulemused sisaldavad kõigi piirkondade, toodete, aastate jne kasumit.

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-liigendtabeli on lihtne muuta kontekstis, lisades või eemaldades veeru ja rea päised ja lisades või eemaldades tükeldeid. Saate luua valemi, nagu üks eespool, mõõt ja siis kukutage see PivotTable-liigendtabeli. Alati, kui lisate päiseid liigendtabel, muudate päringu seoses meedet hinnata. Viilutamise ja filtreerimine operatsioonide mõjutada ka konteksti. Seetõttu hinnatakse sama valem, kasutatavates liigendtabelit päringust seoses iga lahtri.

Lehe algusse

Filtrikontekst

Filtrikontekst lisatakse, kui määrate filtripiirangud veerus või tabelis lubatud väärtuste kogumile, kasutades valemi argumente. Filtrikontekst rakendatakse teistele kontekstidele (nt rea- või päringukontekst) lisaks.

Näiteks PivotTable-liigendtabeli arvutatakse iga lahtri põhineb rea- ja veerupäised, nagu on kirjeldatud eelmises jaotises päring kontekstis oma väärtusi. Siiski meetmete või PivotTable-arvutatud veerud saate määrata filtriavaldisi juhtimiseks valemiga kasutatavad väärtused. Kustutada ka valikuliselt lahjendamise filtrid.

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

Näidet filtrite eemaldamise kohta kogusummade loomiseks vt lehelt Funktsioon ALL.

Näiteid filtrite valikuliseks eemaldamiseks ja rakendamiseks valemites vt lehelt Funktsioon ALLEXCEPT.

Seetõttu peab üle vaatama meetmed või PivotTable-liigendtabeli valemid, et olete teadlik filtrikonteksti valemite tulemuste tõlgendamisel mõistele.

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 relatsiooniandmete kontseptsioonid on teile uus teema, 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 koostate arvutuse, mis summeerib iga kaupluse igakuise müügi, kuid veerust tabelis Müük puudub kaupluse nime väärtus. Eeldusel, et tabelid Pood ja Müük on seotud kaupluse nime järgi, mis võiks valemis toimuda? Kuidas peaks PivotTable rühmitama või kuvama müüginumbrid, mis pole olemasoleva kauplusega seotud?

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 väärtused erinevad tühjadest ridadest, mis lisatakse tundmatu liikme paigutamiseks. Tühi väärtus on eriline väärtus, mida kasutatakse nullide, tühjade stringide ja muude puuduvate väärtuste kajastamiseks. Lisateavet tühja väärtuse ja muude DAX-i andmetüüpide kohta vt lehelt Andmetüübid andmemudelites.

Lehe algusse

Märkus. : Masintõlke lahtiütlus. Selle artikli tõlkis arvutisüsteem ilma inimese sekkumiseta. Microsoft pakub selliseid masintõlkeid, et inglise keelt mittekõnelevad kasutajad saaksid vaadata sisu Microsofti toodete, teenuste ja tehnoloogiate kohta. Kuna artikkel on masintõlgitud, võib see sisaldada sõnavara-, süntaksi- või grammatikavigu.

Täiendage oma 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.

×