DAX formulās lietotais konteksts

Konteksts sniedz iespēju veikt dinamisku analīzi, kurā formulas rezultāti var mainīties, lai atspoguļotu pašreizējo rindu vai šūnu atlasi un arī visus saistītos datus. Konteksta izpratne un konteksta efektīva izmantošana ir ļoti svarīga, lai izveidotu lielas veiktspējas formulas, dinamisku analīzi un novērstu problēmas formulās.

Šajā sadaļā ir definēti dažādi konteksta veidi: rindu konteksts, vaicājuma konteksts un filtra konteksts. Tajā ir izskaidrots, kā tiek novērtēts konteksts formulām aprēķinātās kolonnās un rakurstabulās.

Pēdējā šī raksta daļā sniegtas saites uz detalizētiem piemēriem, kuros parādīts, kā formulu rezultāti mainās atkarībā no konteksta.

Izpratne par kontekstu

Formulas Power Pivot var ietekmēt rakurstabulā lietotie filtri, tabulu relācijas un formulās izmantotie filtri. Konteksts ir tas, kas ļauj veikt dinamisko analīzi. Konteksta izpratne ir svarīga formulu veidošanai un problēmu novēršanai.

Pastāv dažādi konteksta tipi: rindu konteksts, vaicājuma konteksts un filtra konteksts.

Rindas kontekstu var uzskatīt par "pašreizējo rindu". Ja esat izveidojis aprēķinātu kolonnu, rindas konteksts sastāv no vērtībām katrā atsevišķā rindā un vērtībām kolonnās, kas saistītas ar pašreizējo rindu. Ir arī dažas funkcijas(EARLIER un EARLIEST),kuras iegūst vērtību no pašreizējās rindas un pēc tam izmanto šo vērtību, kamēr veicat darbību visā tabulā.

Vaicājuma konteksts attiecas uz datu apakškopu, kas ir netieši izveidota katrai rakurstabulas šūnai atkarībā no rindu un kolonnu galvenēm.

Filtra konteksts ir katrā kolonnā atļautā vērtību kopa, pamatojoties uz filtra ierobežojumiem, kas tika lietoti rindai vai kurus formulā definē filtra izteiksmes.

Uz lapas sākumu

Rindas konteksts

Ja izveidojat formulu aprēķinātajā kolonnā, šīs formulas rindas kontekstā tiek iekļautas vērtības no visām kolonnām pašreizējā rindā. Ja tabula ir saistīta ar citu tabulu, saturā ir iekļautas arī visas vērtības no citas tabulas, kas ir saistītas ar pašreizējo rindu.

Piemēram, pieņemsim, ka izveidojat aprēķinātu kolonnu =[Transports] + [Nodokļi],

, kas saskaita divas kolonnas no vienas tabulas. Šī formula darbojas tāpat kā formulas Excel tabulā, kurā automātiski tiek atsauces uz tās pašas rindas vērtībām. Ņemiet vērā, ka tabulas atšķiras no diapazoniem: nevar atsaukties uz vērtību no rindas pirms pašreizējās rindas, izmantojot diapazona notāciju, un nevarat atsaukties uz jebkādu patvaļīgu atsevišķu vērtību tabulā vai šūnā. Vienmēr ir jāstrādā ar tabulām un kolonnām.

Rindas konteksts automātiski seko relācijām starp tabulām, lai noteiktu, kuras saistīto tabulu rindas ir saistītas ar pašreizējo rindu.

Piemēram, šajā formulā tiek izmantota funkcija RELATED, lai ienestu nodokļu vērtību no saistītas tabulas, pamatojoties uz reģionu, uz kuru tika nosūtīts pasūtījums. Nodokļu vērtību nosaka, izmantojot pašreizējās tabulas reģiona vērtību, uzmeklot apgabalu saistītajā tabulā un pēc tam iegūstot nodokļu likmi šim reģionam no saistītās tabulas.

= [Transports] + RELATED('Reģions'[Nodokļu Likme])

Šī formula vienkārši saņem nodokļu likmi pašreizējam reģionam tabulā Reģions. Jums nav jāzina vai jānorāda atslēga, kas savieno tabulas.

Vairāku rindu konteksts

Turklāt DAX ietver funkcijas, kas iterē aprēķinus tabulā. Šīm funkcijām var būt vairākas pašreizējās rindas un pašreizējo rindu konteksts. Programmēšanas valodā varat izveidot formulas, kas tiek atkārtotas iekšējā un ārējā cilpā.

Piemēram, pieņemsim, ka jūsu darbgrāmatā ir tabula Produkti un tabula Pārdošana. Iespējams, vēlēsities skatīt visu pārdošanas tabulu, kurā ir daudz darījumu ar vairākiem produktiem, un atrast vislielāko katram produktam pasūtīto daudzumu jebkurā transakcijā.

Parasti Excel aprēķinam nepieciešamas vairākas starpsummu sērijas, kuras būtu atkārtoti būvējušās, ja dati tiktu mainīti. Ja esat šīs programmas Excel lietotājs, iespējams, varēsit izveidot masīva formulas, kas šo uzdevumu varētu veikt. Relāciju datu bāzē varat arī rakstīt ligzdotus apakšatlases variantus.

Tomēr, izmantojot DAX, var izveidot vienu formulu, kas atgriež pareizo vērtību, un rezultāti tiek automātiski atjaunināti ikreiz, kad pievienojat datus tabulām.

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

Detalizētu informāciju par šo formulu skatiet sadaļā EARLIER.

Īsāk sakot, funkcija EARLIER saglabā rindas kontekstu no operācijas, kas bija pirms pašreizējās operācijas. Funkcija vienmēr saglabā atmiņā divas konteksta kopas: viena konteksta kopa attēlo pašreizējo formulas iekšējās cilpas rindu, un cita konteksta kopa attēlo pašreizējo formulas ārējās cilpas rindu. DAX automātiski pado vērtības starp abām cilpām, lai jūs varētu izveidot sarežģītus apkopojumus.

Uz lapas sākumu

Vaicājuma konteksts

Vaicājuma konteksts attiecas uz datu apakškopu, kas ir netieši izgūta formulai. Kad mērs vai cits vērtības lauks tiek nomests rakurstabulas šūnā, Power Pivot programma pārbauda rindu un kolonnu galvenes, datu griezumus un atskaišu filtrus, lai noteiktu kontekstu. Pēc Power Pivot jāveic nepieciešamie aprēķini, lai aizpildītu katru šūnu rakurstabulā. Izgūtā datu kopa ir katras šūnas vaicājuma konteksts.

Tā kā konteksts var mainīties atkarībā no formulas atrašanās vietas, mainās arī formulas rezultāti atkarībā no tā, vai izmantojat formulu rakurstabulā ar daudziem grupējumiem un filtriem, vai aprēķinātā kolonnā bez filtriem un minimāla konteksta.

Piemēram, pieņemsim, ka izveidojat šādu vienkāršu formulu, kas summē vērtības tabulas Pārdošana kolonnā Peļņa:=SUM('Pārdošana'[Peļņa]).

Ja izmantojat šo formulu aprēķinātā kolonnā tabulā Pārdošana, formulas rezultāti būs vienādi visā tabulā, jo formulas vaicājuma konteksts vienmēr ir visa tabulas Pārdošana datu kopa. Jūsu rezultāti būs peļņa visos reģionos, visos produktos, visos gados utt.

Tomēr parasti nevēlaties, lai tiek parādīts tas pats rezultāts simtiem reižu, bet gan lai iegūtu peļņu par noteiktu gadu, noteiktu valsti vai reģionu, noteiktu produktu vai kādu šo produktu kombināciju, un iegūt gala summu.

Rakurstabulā kontekstu ir viegli mainīt, pievienojot vai noņemot kolonnu un rindu galvenes un pievienojot vai noņemot datu griezumus. Mērvienībā varat izveidot formulu, kas līdzīga iepriekš parādītajām, un pēc tam to nomest rakurstabulā. Kad pievienojat kolonnu vai rindu virsrakstus rakurstabulai, ir jāmaina vaicājuma konteksts, kurā tiek novērtēts mērs. Licēšanas un filtrēšanas operācijas ietekmē arī kontekstu. Tāpēc viena un tā pati formula rakurstabulā tiek novērtēta katras šūnas atšķirīgā vaicājuma kontekstā.

Uz lapas sākumu

Filtra konteksts

Filtra konteksts tiek pievienots, norādot filtru ierobežojumus kolonnā vai tabulā atļauto vērtību kopai, izmantojot formulas argumentus. Filtra konteksts tiek lietots virs citiem kontekstiem, piemēram, rindas konteksta vai vaicājuma konteksta.

Piemēram, rakurstabula aprēķina katras šūnas vērtības, pamatojoties uz rindu un kolonnu virsrakstiem, kā aprakstīts iepriekšējā sadaļā par vaicājuma kontekstu. Tomēr izmēru vai aprēķināto kolonnu ietvaros, ko pievienojat rakurstabulai, varat norādīt filtra izteiksmes, lai kontrolētu ar formulu izmantotās vērtības. Varat arī selektīvi notīrīt noteiktu kolonnu filtrus.

Papildinformāciju par filtru veidojiet formulās, skatiet rakstā Filtrēšanas funkcijas.

Piemēru tam, kā filtrus var notīrīt, lai izveidotu gala summas, skatiet sadaļā ALL.

Piemērus par to, kā selektīvi notīrīt un lietot filtrus formulās, skatiet rakstā Funkcija ALLEXCEPT.

Tāpēc ir jāpārskata rakurstabulā izmantoto mērījumu vai formulu definīcija, lai, interpretējot formulu rezultātus, būtu zināms filtra konteksts.

Uz lapas sākumu

Konteksta noteikšana formulās

Veidojot formulu, Power Pivot programma Excel meklē vispārīgu sintaksi, pēc tam pārbauda jūsu nodrošināto kolonnu un tabulu nosaukumus attiecībā pret iespējamām kolonnām un tabulām pašreizējā kontekstā. Ja Power Pivot nevar atrast formulā norādītās kolonnas un tabulas, tiks parādīts kļūdas ziņojums.

Konteksts tiek noteikts, kā aprakstīts iepriekšējās sadaļās, izmantojot darbgrāmatā pieejamās tabulas, visas tabulu relācijas un lietotos filtrus.

Piemēram, ja esat tikko importējis datus jaunā tabulā un neesat iestatījis filtrus, visa tabulas kolonnu kopa ir daļa no pašreizējā konteksta. Ja jums ir vairākas tabulas, kuras ir saistītas ar relācijām, un jūs strādājat rakurstabulā, kas ir filtrēta, pievienojot kolonnu virsrakstus un izmantojot datu griezumus, kontekstā ir iekļautas saistītās tabulas un visi datu filtri.

Konteksts ir jaudīgs jēdziens, kas var apgrūtināt formulu problēmu novērsšanu. Iesakām sākt ar vienkāršām formulām un relācijām, lai uzzinātu, kā darbojas konteksts, un pēc tam sākt eksperimentēt ar vienkāršām formulām rakurstabulās. Nākamajā sadaļā arī sniegti daži piemēri, kā formulas izmanto dažādu tipu kontekstu, lai dinamiski atgrieztu rezultātus.

Formulu konteksta piemēri

  • Funkcija RELATED izvērš pašreizējās rindas kontekstu, lai saistītajā kolonnā iekļautu vērtības. Tas ļauj veikt uzmeklēšanu. Šajā tēmā redzamais piemērs parāda filtrēšanas un rindas konteksta mijiedarbību.

  • Funkcija FILTER ļauj norādīt rindas, kas jāiekļauj pašreizējā kontekstā. Šajā tēmā sniegtajos piemēros arī parādīts, kā iegult filtrus citās funkcijās, kas veic apkopošanu.

  • Funkcija ALL iestata formulas kontekstu. To var izmantot, lai ignorētu filtrus, kas tiek lietoti vaicājuma konteksta rezultātā.

  • Funkcija ALLEXCEPT ļauj noņemt visus filtrus, izņemot jūsu norādītu filtru. Abās tēmās ir piemēri, kuros ir paskaidrots, kā izveidot formulas un izprast sarežģītu kontekstu.

  • Funkcijas EARLIER un EARLIEST ļauj cikliski pārlūkot tabulas, veicot aprēķinus, atsaucoties uz vērtību no iekšējās cilpas. Ja pārzināt rekursijas jēdzienu un iekšējās un ārējās cilpas, jums novērtēs funkcijas EARLIER un EARLIEST sniegtās iespējas. Ja neesat šo jēdzienu izmantojis, rūpīgi izpildiet piemērā norādītās darbības, lai redzētu, kā aprēķinos tiek izmantots iekšējais un ārējais konteksts.

Uz lapas sākumu

Attiecinošā integritāte

Šajā sadaļā ir aplūkoti daži paplašināti jēdzieni, kas saistīti ar trūkstošām vērtībām Power Pivot tabulās, kuras ir savienotas ar relācijām. Šī sadaļa var noderēt, ja jums ir darbgrāmatas ar vairākām tabulām un sarežģītām formulām un vēlaties palīdzēt saprast rezultātus.

Ja esat jauns attiecībā uz relāciju datu koncepcijām, iesakām vispirms izlasīt ievada tēmu Relāciju pārskats.

Attiecinošā integritāte un Power Pivot relācijas

Power Pivot nav nepieciešams ieviest attiecinošo integritāti starp divām tabulām, lai definētu derīgu relāciju. Tā vietā katra relācijas viens pret daudziem beigās "viens" tiek izveidota tukša rinda, kas tiek izmantota, lai apstrādātu visas rindas, kas nav atbilstošas no saistītās tabulas. Tā efektīvi darbojas kā valoda SQL ārējā savienojuma.

Ja rakurstabulās dati tiek grupēti pēc relācijas vienas puses, visi dati bez atbilstības relācijas daudzo pusē tiek grupēti un tiek iekļauti kopsummās ar tukšu rindas virsrakstu. Tukšais virsraksts aptuveni atbilst "nezināmam dalībniekam".

Izpratne par nezināmo dalībnieku

Nezināmā dalībnieka jēdziens, iespējams, ir pazīstams jums, ja esat strādājis ar daudzdimensiju datu bāzu sistēmām, piemēram, SQL Server pakalpojumiem. Ja tas jums ir jauns, tālāk sniegtajā piemērā ir izskaidrots, kas ir nezināmais dalībnieks un kā tas ietekmē aprēķinus.

Pieņemsim, ka izveidojat aprēķinu, kas summē mēneša pārdošanas apjomu katram veikalam, bet tabulas Pārdošana kolonnā nav vērtības veikala nosaukumam. Ja ir izveidots savienojums ar store un Pārdošanas tabulām, kam ir pievienots veikala nosaukums, kas formulā notiks? Kā rakurstabulas grupa var parādīt vai parādīt pārdošanas datus, kas nav saistīti ar esošu veikalu?

Šī problēma ir bieži sastopama datu noliktavās, kur lielām faktu datu tabulām jābūt loģiski saistītām ar dimensiju tabulām, kurās ir informācija par krātuvēm, reģioniem un citiem atribūtiem, kas tiek izmantoti faktu kategorizēšanai un aprēķināšanai. Lai novērstu problēmu, visi jaunie fakti, kas nav saistīti ar esošu entītiju, īslaicīgi tiek piešķirti nezināmam dalībniekam. Tāpēc nesaistītie fakti tiks parādīti grupēti rakurstabulā zem tukša virsraksta.

Tukšu vērtību apstrāde salīdzinājumā ar tukšo rindu

Tukšas vērtības atšķiras no tukšajām rindām, kas tiek pievienotas, lai pielāgotu nezināmo dalībnieku. Tukšā vērtība ir īpaša vērtība, kas tiek izmantota, lai attēlotu nulles, tukšas virknes un citas trūkstošās vērtības. Papildinformāciju par tukšo vērtību, kā arī citiem DAX datu tipiem skatiet sadaļā Datu tipi datu modeļos.

Uz lapas sākumu

Vai nepieciešama papildu palīdzība?

Paplašiniet savas Office prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Office Insider programmai

Vai šī informācija bija noderīga?

×