Kontekstas DAX formulėse

Pastaba:  Norėtume jums kuo greičiau pateikti naujausią žinyno turinį jūsų kalba. Šis puslapis išverstas automatiškai, todėl gali būti gramatikos klaidų ar netikslumų. Mūsų tikslas – padaryti, kad šis turinys būtų jums naudingas. Gal galite šio puslapio apačioje mums pranešti, ar informacija buvo naudinga? Čia yra straipsnis anglų kalba , kuriuo galite pasinaudoti kaip patogia nuoroda.

Kontekstas suteikia galimybę atlikti dinaminę analizę, kurioje formulės rezultatai gali pasikeisti, kad atspindėtų dabar pažymėtą eilutę ar langelį ir visus susijusius duomenis. Kuriant efektyvias formules, dinamines analizes ir šalinant klaidas formulėse svarbu suprasti kontekstą ir efektyviai jį išnaudoti.

Šis skyrius apibrėžia skirtingi konteksto tipai: eilutės kontekstas, užklausos kontekstas ir filtro kontekstas. Čia paaiškinama, kaip kontekste vertinama pagal formules apskaičiuojamuosiuose stulpeliuose ir "PivotTable".

Paskutinėje šio straipsnio dalyje pateikiami išsamių pavyzdžių, kurie pademonstruoja, kaip formulių rezultatai kinta pagal kontekstą, saitai.

Konteksto supratimas

Formulėse Power Pivot gali turėti įtakos pritaikytas "PivotTable" filtrus, ryšius tarp lentelių ir formulių filtrų. Kontekstas yra tai, ką leidžia dinaminių analizei atlikti. Konteksto supratimas yra svarbus kūrimo ir trikčių diagnostikos formulės.

Yra skirtingi konteksto tipai: eilutės kontekstas, užklausos kontekstas ir filtro kontekstas.

Eilutės kontekstas gali būti laikomas "dabartinės eilutės." Jei sukūrėte apskaičiuojamąjį stulpelį, eilutės kontekstas sudaro kiekvieno atskiras eilutės reikšmes ir stulpelių, susijusių su dabartinės eilutės reikšmes. Taip pat yra kai kurių funkcijų (funkcija EARLIER ir funkcija EARLIEST), kad gauti reikšmę iš dabartinės eilutės ir įveskite reikšmę, atliekant veiksmą per visą lentelę.

Užklausos kontekstas nurodo netiesiogiai sukurto kiekvieno langelio "PivotTable", atsižvelgiant į tai, eilutės ir stulpelio antraštės duomenų pogrupis.

Filtro kontekstas yra kiekviename stulpelyje, pagal filtro apribojimų, buvo taikomi eilutę arba, apibrėžtus filtro išraiškų formulėje reikšmėmis.

Puslapio viršus

Eilutės kontekstas

Jei kuriate formulę į apskaičiuojamąjį stulpelį, eilutės kontekste, ši formulė yra dabartinės eilutės visų stulpelių reikšmes. Jei lentelėje yra susijusi su kitos lentelės, turinį, taip pat yra visas reikšmes iš kitos lentelės, susietos su dabartine eilute.

Pavyzdžiui, Tarkime, kad galite sukurti apskaičiuojamąjį stulpelį, = [gabenimo] + [mokesčio]

, kuris sudeda du tos pačios lentelės stulpelius. Ši formulė veikia kaip formulės „Excel“ lentelėje, kurios automatiškai nurodo reikšmes iš tos pačios eilutės. Atminkite, kad lentelės skiriasi pagal diapazoną: negalima nurodyti ankstesnėje nei dabartinė eilutėje esančios reikšmės naudojant diapazonų žymėjimą ir negalima nurodyti jokios pasirinktos atskiros reikšmės lentelėje ar langelyje. Visada turite naudoti lenteles ir stulpelius.

Eilutės kontekstas automatiškai tikrina ryšius tarp lentelių, kad nustatytų, kurios eilutės susijusiose lentelėse yra susietos su dabartine eilute.

Pavyzdžiui, pateiktoje formulėje naudojama funkcija RELATED, kad būtų gauta mokesčio reikšmė iš susijusios lentelės pagal regioną, į kurį buvo nugabentas užsakymas. Mokesčio reikšmė nustatoma naudojant regiono reikšmę dabartinėje lentelėje, ieškant regiono susijusioje lentelėje ir gaunant to regiono mokesčio dydį iš susijusios lentelės.

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

Ši formulė paprasčiausiai gauna dabartinio regiono mokesčio dydį iš lentelės „Region“. Lenteles jungiančio rakto žinoti ar nurodyti nereikia.

Kelių eilučių kontekstas

Be to, DAX yra funkcijų, kurios skaičiavimus kartoja visoje lentelėje. Šiose funkcijose gali būti kelios dabartinės eilutės ir keli dabartinės eilutės kontekstai. Programavimo terminais kalbant, galima kurti formules, kurios rekursiniu būdu apdoroja vidinį ir išorinį ciklus.

Pavyzdžiui, Tarkime, kad jūsų darbaknygėje yra produktų lentelę ir pardavimo . Galbūt norite pereiti per visą pardavimo lentelės, kuri yra visas operacijas, kurioms reikia kelių produktų, ir rasti didžiausias kiekis užsakytai kiekvieno produkto operaciją.

Programoje „Excel“ šiam skaičiavimui atlikti prireiktų kelių tarpinių suvestinių, kurias reikėtų perkurti, jei duomenys pasikeistų. Jei esate patyręs „Excel“ vartotojas, galite sudaryti masyvų formules, kuriuos atliktų šią užduotį. Taip pat galima rašyti įdėtuosius papildomus pasirinkimus reliacinėje duomenų bazėje.

Tačiau naudojant DAX galima sudaryti vieną formulę, kuri pateikia tinkamą reikšmę ir automatiškai atnaujina rezultatus kaskart, kai papildote lenteles duomenimis.

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

Ši formulė išsamiai paaiškinta, rasite funkcija EARLIER.

Trumpai tariant, funkcija EARLIER išsaugo eilutės kontekstą iš operacijos, atliktos prieš dabartinę operaciją. Funkcija visada atmintyje saugo du konteksto rinkinius: vienas konteksto rinkinys nurodo formulės vidinio ciklo dabartinę eilutę, kitas konteksto rinkinys – formulės išorinio ciklo dabartinę eilutę. DAX automatiškai perduoda reikšmes tarp šių dviejų ciklų, kad galėtumėte kurti sudėtingas agreguotas reikšmes.

Puslapio viršus

Užklausos kontekstas

Užklausos kontekstas nurodo duomenis, kurie yra netiesiogiai gauta formulė pogrupį. Kai pašalinate priemonė ar kitos reikšmės laukas į "PivotTable" langelį, Power Pivot modulis tiria į eilučių ir stulpelių antraštes, duomenų filtrus ir ataskaitos filtrai, nustatyti kontekste. Tada Power Pivot daro reikiamus skaičiavimus užpildyti "PivotTable" langelio. Duomenų, kuri yra gauta yra užklausos kontekstas kiekvieno langelio.

Kadangi kontekstas gali keistis atsižvelgiant į formulės įterpimo vietą, formulės rezultatai taip pat keičiasi, atsižvelgiant į tai, ar formulę naudojate „PivotTable“ lentelėje, kurioje yra daug grupių ir filtrų, ar apskaičiuojamajame stulpelyje, kuriam nepritaikyta jokių filtrų ir kurio kontekstas minimalus.

Pavyzdžiui, Tarkime, kad sukūrėte šią paprastą formulę, kuri susumuoja stulpelio Profit , pardavimo table:=SUM('Sales'[Profit]) reikšmes.

Naudojant šią formulę į apskaičiuojamąjį stulpelį, pardavimo lentelę, formulės rezultatai bus toks pat tiek kuriant visa lentelė, nes užklausos kontekstas formulės visada lentelėje Sales visą duomenų rinkinį. Rezultatai turės pelno visų regionų, visi produktai, visus metus, ir taip toliau.

Tačiau, paprastai to paties rezultato šimtus kartų matyti nenorite, o norite gauti tam tikrų metų, konkrečios šalies ar regiono, tam tikro produkto ar kelių produktų pelną ir pagrindinę sumą.

"PivotTable", yra lengva pakeisti kontekste, įtraukdami arba pašalindami stulpelio ir eilutės antraštės ir įtraukdami arba pašalindami duomenų filtrai. Galite kurti tokią formulę vieną virš, matas, ir tada padėkite jį į "PivotTable". Kiekvieną kartą, kai stulpelio ar eilutės antraščių įtraukimas į "PivotTable", galite pakeisti užklausos kontekste, kuriame vertinamas priemonė. Pjaustymo ir filtravimo operacijos taip pat turi įtakos kontekste. Todėl tą pačią formulę, naudojama "PivotTable", vertinamas kiekvieno langelio skirtingų užklausos kontekste.

Puslapio viršus

Filtro kontekstas

Filtro kontekstas įtraukiamas, kai nurodote filtro apribojimuose leidžiami stulpelį ar lentelę, naudodami formulės argumentų reikšmes. Filtro kontekstas taikoma virš kitų aplinkybių, pavyzdžiui, eilutės kontekstas arba užklausos kontekstas.

Pvz., "PivotTable" apskaičiuoja kiekvieno langelio pagal eilučių ir stulpelių antraštes, kaip aprašyta ankstesniame skyriuje užklausos kontekstas reikšmes. Tačiau per matų arba apskaičiuojamųjų stulpelių, kuriuos įtraukiate į "PivotTable", galite nurodyti filtro išraiškų kontroliuoti reikšmes, kurios naudojamos formulės. Taip pat pasirinktinai galite išvalyti tam tikrą stulpelių filtrus.

Daugiau informacijos apie tai, kaip kurti formules filtrus, skaitykite Filtro funkcijos (DAX).

Pavyzdys, kaip sukurti bendrosios sumos gali būti pašalinta filtrus, rasite funkcija ALL.

Pavyzdžių, kaip pasirinktinai išvalykite ir taikyti filtrus formules, rasite Funkcija ALLEXCEPT.

Todėl, turite peržiūrėti ir matai arba formulių apibrėžtį, naudojama "PivotTable", kad žinotumėte filtro kontekstą interpretuodami formulių rezultatus.

Puslapio viršus

Formulių konteksto nustatymas

Kai sukuriate formulę, „Power Pivot for Excel“ pirmiausia patikrina bendrąją sintaksę, tada tikrina jūsų pateiktus stulpelių ir lentelių pavadinimus, atsižvelgiant į galimus dabartinio konteksto stulpelius ir lenteles. Jei papildiniui „Power Pivot“ nepavyksta rasti formulėje nurodytų stulpelių ar lentelių, pateikiama klaida.

Kontekstas nustatomas taip, kaip aprašyta ankstesniuose skyriuose, naudojant darbaknygėje esančias lenteles, ryšius tarp lentelių ir pritaikytus filtrus.

Pavyzdžiui, jei ką tik importavote duomenis į naują lentelę ir nepritaikėte jokių filtrų, dabartiniam kontekstui priklauso visas lentelės stulpelių rinkinys. Jei turite kelias ryšiais susietas lenteles ir dirbate „PivotTable“ lentelėje, kuri filtruojama įtraukus stulpelių antraščių ir naudojant duomenų filtrus, kontekstas apima susijusias lenteles ir visus duomenų filtrus.

Kontekstas yra sudėtingas dalykas, dėl kurio gali būti sunku šalinti klaidas formulėse. Rekomenduojame pradėti nuo paprastų formulių ir ryšių, kad suprastumėte, kaip veikia kontekstas, o tada pradėti eksperimentuoti su paprastomis formulėmis „PivotTable“ lentelėse. Šiame skyriuje taip pat pateikiami keli pavyzdžiui, kaip formulės naudoja skirtingų tipų kontekstą, kad dinamiškai pateiktų rezultatus.

Formulėse naudojamo konteksto pavyzdžiai

  • Funkcija RELATED išplečia dabartinės eilutės kontekstą, kad įtrauktų reikšmes iš susijusio stulpelio. Tokiu būdu galite ieškoti reikšmių. Šioje temoje pateiktas pavyzdys parodo filtravimo ir eilutės konteksto sąveiką.

  • Funkcija FILTER leidžia nurodyti eilutes, kurias norite įtraukti į dabartinį kontekstą. Šioje temoje pateikti pavyzdžiai taip pat parodo, kaip įdėti filtrus į kitas funkcijas, kurios agreguoja reikšmes.

  • Funkcija ALL nustato kontekstą formulėje. Ją galite naudoti norėdami nepaisyti filtrų, taikomų dėl užklausos konteksto.

  • Funkcija ALLEXCEPT leidžia pašalinti visus filtrus, išskyrus nurodytąjį. Abiejose temose yra pavyzdžių, kurie padeda sudaryti formules ir suprasti sudėtingus kontekstus.

  • Funkcijos EARLIER ir EARLIEST leidžia atlikti ciklinius lentelių skaičiavimus, nurodant reikšmę iš vidinio ciklo. Jei esate susipažinę su rekursijos sąvoka, vidiniu ir išoriniu ciklais, įvertinsite funkcijų EARLIER ir EARLIEST suteikiamas galimybes. Jei šios sąvokos jums naujos, rekomenduojame atidžiai pakartoti pavyzdyje pateiktus veiksmus, kad suprastumėte, kaip vidinis ir išorinis kontekstai naudojami skaičiavimuose.

Puslapio viršus

Nuorodų vientisumas

Šiame skyriuje aptariamos kelios sudėtingesnės sąvokos, susijusios su trūkstamomis reikšmėmis papildinio „Power Pivot“ lentelėse, kurios susietos ryšiais. Šis skyrius gali būti naudingas, jei turite darbaknygių su keliomis lentelėmis ir sudėtingomis formulėmis, ir jums reikia informacijos, kaip teisingai suprasti rezultatus.

Jei esate susipažinę su sąryšinių duomenų sąvokos, mes rekomenduojame, kad pirmiausia perskaityti įvadinę temą Ryšių apžvalga.

Nuorodų vientisumas ir „Power Pivot“ ryšiai

„Power Pivot“ nereikalauja užtikrinti nuorodų vientisumo tarp dviejų lentelių, kad būtų galima apibrėžti tinkamą ryšį. Vietoj to, ryšio „vienas su daugeliu“ pusėje „vienas“ sukuriama tuščia eilutė, kuri naudojama visoms nesutampančioms eilutėms iš susietosios lentelės tvarkyti. Tai veikia kaip SQL išorinis sujungimas.

Jei „PivotTable“ lentelėse duomenis grupuojate pagal ryšio „vienas“ pusę, visi duomenys, kurių atitikmenų nerasta, ryšio pusėje „daugelis“ grupuojami kartu ir įtraukiami į sumas su tuščios eilutės antrašte. Tuščia antraštė maždaug atitinka nežinomą narį.

Kas yra nežinomas narys

Jei esate dirbę su kelių dimensijų duomenų bazių sistemomis, pvz., SQL serverio analizės tarnybomis, nežinomo nario sąvoka tikriausiai jums žinoma. Jei šis terminas jums nežinomas, pateiktas pavyzdys padės suprasti, kas yra nežinomas narys ir kokią įtaką jis turi skaičiavimams.

Tarkime, kad kuriate skaičiavimo, kuri susumuoja mėnesio pardavimų kiekvienos parduotuvės, tačiau pardavimo lentelės stulpelio trūksta saugyklos vardo reikšmę. Atsižvelgiant į tai, kad lenteles saugoti ir pardavimų prijungtų iš parduotuvės pavadinimą, ko jūs tikitės nutiks formulės? Kaip turėtų "PivotTable" grupavimas arba Rodyti pardavimo skaičiai, kurie nėra susiję su esamos parduotuvės?

Tai yra dažna problema duomenų sandėliuose, kuriuose didelės faktinių duomenų lentelės turi būti logiškai susietos su dimensijų lentelėmis, kuriose saugoma informacija apie parduotuves, regionus ir kitus atributus, naudojamus faktams klasifikuoti ir skaičiuoti. Siekiant išspręsti problemą, visi nauji faktai, kurie nėra susieti su esamu objektu, laikinai priskiriami nežinomam nariui. Todėl „PivotTable“ lentelėje nesusieti faktai priskiriami grupei su tuščia antrašte.

Tuščių reikšmių naudojimo ir tuščios eilutės naudojimo palyginimas

Tuščių reikšmių skiriasi nuo tuščių eilučių, į kurį įtraukiami pagal nežinomas narys. Tuščia reikšmė yra specialusis reikšmė, kuri naudojama neapibrėžtų reikšmių, tuščių eilučių ir kitų trūkstamų reikšmių. Daugiau informacijos apie tuščia reikšmė, taip pat kitų DAX duomenų tipai, ieškokite duomenų modelių duomenų tipai.

Puslapio viršus

Tobulinkite savo „Office“ įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×