Kontekstas DAX formulėse

Svarbu :  Šis straipsnis išverstas naudojant mašininį vertimą, žr. atsakomybės atsisakymą. Su šio straipsnio versija anglų kalba galite susipažinti čia .

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.

Šiame skyriuje apibrėžiami skirtingi konteksto tipai: eilutės kontekstas, užklausos kontekstas ir filtro kontekstas. Joje aiškinama, kaip formulių kontekstas įvertinamas apskaičiuojamuosiuose stulpeliuose ir „PivotTable“ lentelėse.

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 naudoti formulėse filtrus. Kontekstas yra tai, ką leidžia dinaminių analizei atlikti. Konteksto supratimas yra svarbus kūrimo ir trikčių diagnostikos formulės.

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

Eilutės kontekstą galima įsivaizduoti kaip dabartinę eilutę. Jei sukūrėte apskaičiuojamąjį stulpelį, eilutės kontekstą sudaro kiekvienoje atskiroje eilutėje esančios reikšmės ir su dabartine eilute susijusiuose stulpeliuose esančios reikšmės. Taip pat yra kelios funkcijos (Funkcija EARLIER ir Funkcija EARLIEST), kurios gauna reikšmę iš dabartinės eilutės ir ją naudoja atlikdamos operaciją visoje lentelėje.

Užklausos kontekstas nurodo duomenų poaibį, kuris netiesiogiai sukuriamas kiekvienam lentelės „PivotTable“ langeliui, atsižvelgiant į eilutės ir stulpelio antraštes.

Filtro kontekstas yra kiekviename stulpelyje leidžiamų reikšmių rinkinys, priklausantis nuo filtro apribojimų, kurie pritaikyti eilutei ir kurie apibrėžti filtrų reiškiniais formulėje.

Puslapio viršus

Eilutės kontekstas

Jei apskaičiuojamajame stulpelyje sukuriate formulę, tos formulės eilutės kontekstas apima dabartinės eilutės visų stulpelių reikšmes. Jei lentelė susijusi su kita lentele, turinys taip pat apima visas tos kitos lentelės reikšmes, kurios yra susijusios su dabartine eilute.

Pavyzdžiui, tarkime, 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 lentelės produktai ir pardavimo lentelė. Galbūt norite pereiti per visą pardavimo lentelę, kuri yra visiškai operacijos keli produktai, ir rasti didžiausią kiekį 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šsamių nurodymų, kaip sukurti šią formulę, žr. 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 į langelį "PivotTable", " Power Pivot " modulis tiria norimą eilučių ir stulpelių antraštes, duomenų filtrus ir ataskaitų filtrai nustatyti kontekste. Tada Power Pivot užtikrina, kad reikia užpildyti kiekvieną "PivotTable" langelio skaičiavimus. Duomenų, kurie yra gauta rinkinys yra kiekvieno langelio užklausos kontekstas.

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 visą 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ą, 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ę, naudojami "PivotTable", vertinamas skirtingų užklausos konteksto kiekvieno langelio.

Puslapio viršus

Filtro kontekstas

Filtro kontekstas įtraukiamas, kai naudodami formulės argumentus nustatote filtro apribojimus stulpelyje ar lentelėje leidžiamų reikšmių rinkiniui. Filtro kontekstas taikomas esant kitiems kontekstams, pvz., esant eilutės ar užklausos kontekstui.

Pvz., "PivotTable" apskaičiuoja kiekvieno langelio pagal eilučių ir stulpelių antraštes, kaip apibrėžta ankstesnėje sekcijoje užklausos konteksto reikšmes. Tačiau matavimai arba apskaičiuojamieji stulpeliai, įtraukti į "PivotTable", galite nurodyti filtro išraiškų kontroliuoti reikšmes, kurios naudojamos pagal formulę. Taip pat pasirinktinai galite išvalyti tam tikrą stulpelių filtrus.

Daugiau informacijos, kaip kurti filtrus formulėse, žr. Filtrų funkcijos (DAX).

Pavyzdį, kaip galima išvalyti filtrus, kad būtų gautos pagrindinės sumos, žr. Funkcija ALL.

Pavyzdžių, kaip pasirinktinai išvalyti ir taikyti filtrus formulėse, žr. Funkcija ALLEXCEPT.

Todėl, turite peržiūrėti ir matai arba formulių apibrėžtį, naudojami "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 sąryšinių duomenų sąvokos jums yra naujiena, pirmiausia rekomenduojame 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 pardavimo kiekvienos parduotuvės, tačiau pardavimo lentelės stulpelio trūksta saugyklos vardo reikšmę. Atsižvelgiant į tai, kad saugoti ir pardavimo lentelių sujungtos 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ščios reikšmės skiriasi nuo tuščių eilučių, kurios pridedamos tam, kad būtų nurodytas nežinomas narys. Tuščia reikšmė yra speciali reikšmė, kuria nurodomi nuliai, tuščios eilutės ir kitos trūkstamos reikšmės. Daugiau informacijos apie tuščią reikšmę ir kitus DAX duomenų tipus žr. Duomenų tipai duomenų modeliuose.

Puslapio viršus

Pastaba : Mašininio vertimo atsakomybės atsisakymas: Šis straipsnis išverstas naudojant kompiuterinę sistemą be žmogaus įsikišimo. „Microsoft“ pateikia šiuos mašininius vertimus norėdama padėti anglų kalbos nesuprantantiems vartotojams perskaityti turinį apie „Microsoft“ produktus, paslaugas ir technologijas. Šis straipsnis išverstas mašininio vertimo būdu, todėl jame gali būti žodyno, sintaksės ar gramatikos klaidų.

Tobulinkite savo į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ų.

×