Office
Pierakstīties

DAX formulās lietotais konteksts

Piezīme.:  Mēs vēlamies sniegt jums visjaunāko palīdzības saturu jūsu valodā, cik vien ātri to varam. Šī lapa ir tulkota automatizēti, un tajā var būt gramatiskas kļūdas un neprecizitātes. Mūsu nolūks ir šo saturu padarīt jums noderīgu. Vai lapas lejasdaļā varat mums pavēstīt, vai informācija jums noderēja? Ērtai atsaucei šeit ir šis raksts angļu valodā .

Konteksts sniedz iespēju veikt dinamisko analīzi, kurā var mainīties formulas rezultāti atbilstoši pašreizējai rindu vai šūnas atlasei, kā arī jebkuriem saistītajiem datiem. Konteksta izprašana un tā efektīva izmantošana ir ļoti būtiski faktori, lai veidotu formulas ar augstu veiktspēju, lai veidotu dinamisku analīzi un novērstu formulu problēmas.

Šajā sadaļā nosaka dažādi konteksta tipi: rindas konteksts, vaicājuma konteksts un filtra konteksts. Tajā ir paskaidrots, kā formulas aprēķinātajās kolonnās un rakurstabulās tiek novērtēta kontekstā.

Šī raksta pēdējā daļā ir sniegtas saites ar detalizētiem piemēriem, kuros atainotas formulu rezultātu izmaiņas atbilstoši kontekstam.

Par kontekstu

Power Pivot formulās var ietekmēt rakurstabulā tiek lietoti filtri, relācijas starp tabulām un filtru izmantot formulās. Konteksts, kas ļauj veikt dinamisku analīzi. Par kontekstu ir svarīga veidošanas un formulu problēmu novēršana.

Ir dažādi konteksta tipi: rindas konteksts, vaicājuma konteksts un filtra konteksts.

Rindas konteksts var tikt uzskatīti par "pašreizējo rindu." Ja esat izveidojis aprēķinātās kolonnas, rindas konteksts sastāv no vērtības katrā atsevišķajā rindā un vērtības no kolonnām, kas ir saistītas ar pašreizējo rindu. Ir arī dažas funkcijas (funkcija EARLIER un funkcija EARLIEST), kuras iegūt vērtību no pašreizējās rindas un pēc tam izmantot šo vērtību, veicot operāciju virs visu tabulu.

Vaicājuma konteksts attiecas uz datu apakškopu, kas ir netieši izveidota katrai rakurstabulas šūnai, atbilstoši rindu un kolonnu virsrakstiem.

Filtra konteksts ir atļauts katrā kolonnā, ņemot vērā filtra ierobežojumiem, kas lietoja rindas vai ko definē filtru izteiksmes formulā vērtību kopas.

Uz lapas sākumu

Rindas konteksts

Ja izveidojat formulu aprēķinātās kolonnas, rindas kontekstā šī formula tiek iekļautas vērtības no visām kolonnām pašreizējās rindas. Ja tabula ir saistīta ar citas tabulas, saturs ir iekļauta arī visas vērtības no citas tabulas, kas saistītas ar pašreizējo rindu.

Piemēram, pieņemsim, ka jūs izveidojat aprēķināto kolonnu, = [Quantity] + [nodokļu]

, kas summē divas kolonnas, kas atrodas vienā tabulā. Šī formula darbojas kā formulas programmas Excel tabulā, kuras automātiski sniedz atsauci uz vērtībām no tās pašas rindas. Ņemiet vērā, ka tabulas atšķiras no diapazoniem: nevar sniegt atsauci uz rindas vērtību, kas atrodas pirms pašreizējās rindas, izmantojot diapazona notāciju, un nevar sniegt atsauci uz jebkuru pieņemtu vienu vērtību tabulā vai šūnā. Vienmēr ir jāapstrādā tabulas un kolonnas.

Rindas konteksts automātiski pielāgojas relācijām starp tabulām, lai noteiktu, kuras rindas saistītajās tabulās ir saistītas ar pašreizējo rindu.

Piemēram, tālāk sniegtajā formulā ir izmantota funkcija RELATED, lai pārņemtu saistītās tabulas nodokļa vērtību, balstoties uz reģionu, uz kuru tika nosūtīts pasūtījums. Nodokļa vērtība tiek noteikta, izmantojot reģiona vērtību pašreizējā tabulā, uzmeklējot reģionu saistītajā tabulā un tad iegūstot attiecīgā reģiona nodokļu likmi no saistītās tabulas.

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

Šajā formulā tiek vienkārši iegūta attiecīgā reģiona nodokļu likme no tabulas Region. Nav jāzina vai jānorāda atslēga, kas savieno tabulas.

Vairāki rindu konteksti

Papildus valodā DAX iekļautas funkcijas, kas tabulā atkārto aprēķinus. Šīm funkcijām var būt vairākas pašreizējās rindas un pašreizējo rindu konteksti. Aprakstot programmēšanas terminos — jūs varat izveidot formulas, kas veic rekursīvu darbību iekšējā un ārējā ciklā.

Piemēram, pieņemsim, ka darbgrāmata satur tabulas produkti un pārdošanas tabulas. Jūs varētu vēlēties iet cauri visu pārdošanas tabulu, kurā ir pilna darbības, kas ietver vairākus produktus, un atrast pasūtīto jebkuru vienu darbību katram produktam lielāko daudzumu.

Programmā Excel šī aprēķina veikšanai nepieciešamas vidējo kopsavilkumu sērijas, kuras būtu jāveido no jauna tad, ja mainītos dati. Ja esat pieredzējis programmas Excel lietotājs, jūs varētu izveidot masīvas formulas, kas izpildītu darbu. Pretējā gadījumā jūs varētu rakstīt ligzdotas apakšatlases relāciju datu bāzē.

Turpretim, izmantojot valodu DAX, iespējams izveidot atsevišķu formulu, kas atgriež pareizu vērtību un kur rezultāti tiek automātiski atjaunināti vienmēr, kad tabulām pievienojat datus.

=Maxx(Filter(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Papildinformāciju par šo formulu skatiet sadaļā funkcija EARLIER.

Funkcijā EARLIER tiek saglabāts rindas konteksts no operācijas, kas atrodas pirms pašreizējās operācijas. Funkcijas atmiņā vienmēr tiek saglabātas divas konteksta kopas: viena konteksta kopa attēlo formulas iekšējā cikla pašreizējo rindu un otra konteksta kopa attēlo formulas ārējā cikla pašreizējo rindu. Valodā DAX automātiski tiek padotas vērtības starp divām cilpām tā, lai 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 saņemti formula. Nometot izmēru vai citas vērtības lauka rakurstabulā šūnā, Power Pivot programmas pārbaudītas rindu un kolonnu virsrakstiem, datu griezumi un atskaišu filtri aprēķināšanai kontekstā. Pēc tam Power Pivot padara nepieciešamos aprēķinus, lai aizpildītu katrai rakurstabulas šūnai. Datu kopa, kas tiek izgūti ir vaicājuma konteksts katrai šūnai.

Tā kā konteksts var mainīties atbilstoši tam, kur tiek novietota formula, arī formulas rezultāti mainās atbilstoši tam, vai formula tiek izmantota rakurstabulā ar daudziem grupējumiem un filtriem, vai aprēķinātajā kolonnā bez filtriem un ar minimālu kontekstu.

Piemēram, jūs izveidojat vienkāršu formulu, kas summē pārdošanas table:=SUM('Sales'[Profit]) kolonnas Profit vērtības.

Ja šī formula tiek lietota tabulā Sales aprēķinātajā kolonnā, formulas rezultātu būs vienādi visu tabulu, jo vaicājuma konteksts formulas vienmēr ir tabulas Sales visu datu kopu. Rezultāti būs peļņa visu reģionu, visi produkti, visiem gadiem, un tā tālāk.

Taču parasti nav nepieciešamības skatīt tos pašus rezultātus daudz reižu, turpretim varētu būt nepieciešamība iegūt peļņu noteiktam gadam, noteiktai valstij vai reģionam, noteiktai precei vai kādu šo parametru kombinācijai un pēc tam iegūt gala summu.

Rakurstabulā ir viegli mainīt kontekstu, pievienojot vai noņemot kolonnu un rindu virsrakstus un, pievienojot vai noņemot datu griezumi. Var izveidot formulu, kas ir līdzīga viens virs, pasākums, un pēc tam to nometiet rakurstabulas. Ikreiz, kad pievienojat kolonnu vai rindu virsrakstiem rakurstabulu, ja maināt vaicājuma konteksts, kurā tiek novērtēta pasākums. Griežas un filtrēšanas operācijās ietekmēs arī kontekstā. Tāpēc to pašu formulu, izmantošanas rakurstabulā, tiek novērtētas dažādas vaicājuma kontekstā, katrai šūnai.

Uz lapas sākumu

Filtra konteksts

Filtra konteksts tiek pievienots, ja norādāt, ka filtra ierobežojumi atļauj kolonnā vai tabulā, formulas argumentu vērtību kopas. Filtra konteksts attiecas virs citām kontekstā, piemēram, rindas konteksts vai vaicājuma konteksts.

Piemēram, rakurstabulas aprēķina tās katrai šūnai, pamatojoties uz rindu un kolonnu virsrakstiem, kā aprakstīts iepriekšējā sadaļā vaicājuma konteksts vērtības. Tomēr mēri vai aprēķinātās kolonnas, kuras pievienojat rakurstabulu, varat norādīt filtru izteiksmes, lai kontrolētu vērtības, kas tiek izmantotas pēc formulas. Varat arī izlases veidā notīrīt konkrētu kolonnu filtrus.

Lai iegūtu papildinformāciju par filtru izveidošanu formulās, skatiet sadaļā Filtra funkcijas (DAX).

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

Piemērus par to, kā izlases veidā notīrīt un lietot filtrus formulās, skatiet sadaļā Funkcija ALLEXCEPT.

Tādēļ jāpārskata definīcija, pasākumu vai formulas izmantošanas rakurstabulā, lai, interpretējot formulu rezultātus, jums tiktu ņemts vērā filtra konteksts.

Uz lapas sākumu

Konteksta noteikšana formulās

Izveidojot formulu programmas Excel pievienojumprogrammā Power Pivot , vispirms tiek pārbaudīta vispārējā sintakse, pēc tam norādīto kolonnu un tabulu nosaukumi tiek salīdzināti ar iespējamām kolonnām un tabulām pašreizējā kontekstā. Ja pievienojumprogramma Power Pivot nevar atrast formulas norādītās kolonnas un tabulas, tiks parādīts kļūdas ziņojums.

Kā aprakstīts iepriekšējās sadaļās, konteksts tiek noteikts, izmantojot pieejamās tabulas darbgrāmatā, jebkuras relācijas starp tabulām un jebkurus lietotos filtrus.

Piemēram, ja esat importējis datus jaunā tabulā un neesat lietojis nekādus filtrus, visa tabulas kolonnu kopa ir pašreizējā konteksta daļa. Ja jums ir vairākas tabulas, kas 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ā tiek iekļautas saistītās tabulas un jebkuri datu filtri.

Konteksts ir jaudīga koncepcija, kas var arī apgrūtināt formulu problēmu novēršanu. Ieteicams sākt strādāt ar vienkāršām formulām un relācijām, lai redzētu, kā darbojas konteksts, un tad sākt eksperimentēt ar vienkāršam formulām rakurstabulās. Nākamajā sadaļā ir sniegti daži piemēri, kā formulās tiek izmantoti dažādi konteksta tipi, lai dinamiski atgrieztu rezultātus.

Formulu konteksta piemēri

  • Funkcijā RELATED tiek paplašināts pašreizējās rindas konteksts, lai saistītajā kolonnā iekļautu vērtības. Tas ļauj veikt uzmeklēšanu. Šīs tēmas piemērā tiek atainota filtrēšanas un rindas konteksta mijiedarbība.

  • Funkcija FILTER ļauj norādīt pašreizējā kontekstā iekļaujamās rindas. Šīs tēmas piemērā ir arī atainots, kā iegult filtrus citās funkcijās, kas veic apkopošanu.

  • Funkcija ALL iestata kontekstu formulā. To var izmantot, lai noņemtu filtrus, kas tiek lietoti kā vaicājuma konteksta rezultāts.

  • Funkcija ALLEXCEPT sniedz iespēju noņemt visus filtrus, izņemot vienu, kuru esat norādījis. Abās tēmās iekļauti piemēri, kuros parādīta formulu veidošana un izskaidroti sarežģīti konteksti.

  • Funkcijā EARLIER un funkcijā EARLIEST veicot aprēķinus, var mest cilpu tabulās, vienlaikus ietverot atsauci uz vērtību no iekšējā cikla. Ja pārzināt rekursijas koncepciju, kā arī iekšējos un ārējos ciklus, jūs novērtēsit iespējas, ko sniedz funkcijas EARLIER un EARLIEST. Ja šīs koncepcijas nepārzināt, uzmanīgi sekojiet piemērā norādītajām darbībām, lai redzētu, kā aprēķinos tiek izmantoti iekšējie un ārējie konteksti.

Uz lapas sākumu

Attiecinošā integritāte

Šajā sadaļā tiek aplūkotas dažas kompleksas koncepcijas, kuras saistītas ar trūkstošām vērtībām pievienojumprogrammas Power Pivot tabulās, kuras saistītas ar relācijām. Šī sadaļa varētu būt noderīga, ja jums ir darbgrāmatas ar vairākām tabulām un sarežģītām formulām, un ir nepieciešama palīdzība rezultātu izprašanā.

Ja nepārzināt relāciju datu koncepciju, ieteicams vispirms izlasīt ievadtēmu: Pārskats par relācijām.

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

Pievienojumprogrammā Power Pivot derīgas relācijas definēšanai nav nepieciešams uzspiest attiecinošo integritāti starp divām tabulām. Turpretim katras relācijas Viens pret daudziem beigās Viens tiek izveidota tukša rinda un tā tiek izmantota, lai apstrādātu visas saistītās tabulas neatbilstošās rindas. Tā efektīvi darbojas kā SQL ārējais savienojums.

Rakurstabulās grupējot datus pa relācijas vienu pusi, jebkuri neatbilstoši relācijas daudzo puses dati tiek grupēti kopā un tiks iekļauti kopsummās ar tukšu rindas virsrakstu. Tukšais virsraksts ir aptuveni ekvivalents Nezināmajam elementam.

Par Nezināmo elementu

Ja esat strādājis ar daudzdimensiju datu bāzes sistēmām, piemēram, SQL Server analīzes pakalpojumiem, iespējams, ka nezināmā elementa koncepcija jums ir zināma. Ja termins jums ir nezināms, nākamajā piemērā tiek izskaidrots, kas ir nezināmais elements un kā tas ietekmē aprēķinus.

Pieņemsim, ka veidojat aprēķinu, kurā tiek summēti pārdošanas apjoms mēnesī katram veikala, bet pārdošanas tabulas kolonna trūkst veikala nosaukuma vērtību. Ņemot vērā to, ka glabāt un pārdošanas tabulas ir saistītas ar veikala nosaukumu, ko jūs sagaidāt notiks formulas? Kā būtu PivotTable grupēšana vai parādītu pārdošanas apjomiem, kas nav saistītas ar esošo krātuvi?

Šī problēma ir izplatīta datu noliktavās, kur ir loģiski jāsaista faktu datu lielas tabulas ar dimensiju tabulām, kurās ir ietverta informācija par veikaliem, reģioniem un citiem atribūtiem, kuri ir izmantoti faktu kategorizēšanai un aprēķināšanai. Lai atrisinātu problēmu, jebkuri fakti, kas nav saistīti ar pastāvošo elementu, tiek īslaicīgi piešķirti nezināmajam elementam. Tādēļ nesaistītie fakti rakurstabulā tiks parādīti grupēti zem tukša virsraksta.

Tukšo vērtību apstrāde un tukšā rinda

Tukšas vērtības atšķiras no tukšas rindas, kas tiek pievienoti pielāgotu nezināmo elementu. Tukša vērtība ir īpaša vērtība, kas tiek izmantota, lai attēlotu nulles vērtībām, tukšām virknēm un citu trūkstošo vērtību. Papildinformāciju par tukša vērtība, kā arī citiem DAX datu tipiem skatiet rakstā datu modeļu datu tipi.

Uz lapas sākumu

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?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta aģentiem.

×