Kontekstas DAX formulėse

Kontekstas leidžia atlikti dinaminį analizę, kurioje formulės rezultatai gali pasikeisti, kad atspindėtų dabartinę eilutę ar langelio žymėjimą ir taip pat susijusius duomenis. Efektyvus konteksto supratimas ir Kontekstinis naudojimas yra labai svarbūs kuriant efektyvias formules, dinaminį analizę ir šalinant formulių triktis.

Šiame skyriuje aprašomi skirtingi konteksto tipai: eilutės kontekstas, užklausos kontekstas ir filtravimo kontekstas. Jame paaiškinama, kaip yra įvertinama formulių apskaičiuojamuosiuose stulpeliuose ir "PivotTable".

Paskutinėje šio straipsnio dalyje pateikiami saitai su išsamiais pavyzdžiais, kurie iliustruoja, kaip formulių rezultatai keičiasi pagal kontekstą.

Konteksto supratimas

Power Pivot formules gali įtakoti filtrai, pritaikyti "PivotTable", pagal ryšius tarp lentelių ir naudojant formulėse naudojamus filtrus. Kontekstas yra tai, kas leidžia atlikti dinaminį analizę. Konteksto supratimas svarbus kuriant ir šalinant formules.

Yra įvairių konteksto tipų: eilutės kontekstas, užklausos kontekstas ir filtravimo kontekstas.

Eilutės kontekstas gali būti laikomas "dabartine eilute". Jei sukūrėte apskaičiuojamąjį stulpelį, eilutės kontekstas susideda iš reikšmių kiekvienoje atskiroje eilutėje ir reikšmių stulpeliuose, kurie susiję su dabartine eilute. Taip pat yra kai kurių funkcijųEARLIER (anksčiau ir anksčiau), kurios gauna reikšmę iš dabartinės eilutės ir naudoja šią reikšmę atliekant operaciją per visą lentelę.

Užklausos kontekstas nurodo duomenų, kurie netiesiogiai sukuriami kiekvienam "PivotTable" langeliui, pogrupį, atsižvelgiant į eilučių ir stulpelių antraštes.

Filtravimo kontekstas – tai kiekvieno stulpelio leidžiamų reikšmių rinkinys, pagrįstas pagal eilutę taikytais filtravimo apribojimais, arba kurios apibrėžtos filtruojant pagal formulę.

Puslapio viršus

Eilutės kontekstas

Jei apskaičiuojamajame stulpelyje sukursite formulę, tos formulės eilutės kontekstas turi visas dabartinės eilutės stulpelių reikšmes. Jei lentelė susieta su kita lentele, turinys taip pat aprėpia visas tos kitos lentelės reikšmes, susijusias su dabartine eilute.

Pavyzdžiui, Tarkime, kad kuriate apskaičiuojamąjį stulpelį = [frachtas] + [mokesčiai];

, kuris sudeda du stulpelius iš tos pačios lentelės. Ši formulė veikia kaip "Excel" lentelės formulės, kurios automatiškai nurodo reikšmes iš tos pačios eilutės. Žinokite, kad lentelės skiriasi nuo diapazonų: negalite nurodyti reikšmės iš eilutės prieš dabartinę eilutę naudodami diapazono žymėjimą ir negalite nurodyti jokios savavališkos vienos reikšmės lentelėje arba langelyje. Visada turite dirbti su lentelėmis ir stulpeliais.

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

Pavyzdžiui, ši formulė naudoja susijusią funkciją, kad būtų galima paimti mokesčių reikšmę iš susijusios lentelės pagal regioną, į kurį buvo išsiųstas užsakymas. Mokesčio reikšmė nustatoma pagal dabartinės lentelės regioną, kuriame yra sritis, kurioje yra susijusi lentelė, ir iš susijusios lentelės gauti šio regiono mokesčių tarifą.

= [Frachtas] + susijęs ("regionas" [TaxRate])

Ši formulė paprasčiausiai gauna dabartinio regiono mokesčio tarifą iš lentelės regionas. Jums nereikia žinoti arba apibrėžti raktų, kurie sujungia lenteles.

Kelių eilučių kontekstas

Be to, DAX yra funkcijų, kurios iteruoja skaičiavimus lentelėje. Šios funkcijos gali turėti kelias esamas eilutes ir dabartinės eilutės kontekstus. Naudodami programavimo terminus, galite kurti formules, kurios kartojasi per vidinę ir išorinę liniją.

Pavyzdžiui, Tarkime, kad darbaknygėje yra produktų lentelė ir pardavimo lentelė. Galbūt norėsite pereiti per visą pardavimo lentelę, kuri yra susijusi su keliais produktais, ir surasti didžiausią kiekį, užsakytą kiekvienam produktui bet kurioje operacijoje.

Programoje "Excel" Šiam skaičiavimui reikia tarpinių santraukų, kurias reikėtų atkurti, jei duomenys būtų pakeisti, sekų. Jei esate "Excel" vartotojas, galbūt galėsite kurti masyvo formules, kurios atliktų užduotį. Kita vertus, Reliacinė duomenų bazė gali rašyti įdėtuosius pakitus.

Tačiau naudodami DAX galite sukurti vieną formulę, kuri pateikia reikiamą reikšmę, o rezultatai automatiškai atnaujinami kiekvieną kartą, kai įtraukiate duomenis į lenteles.

= MAXX (FILTER (pardavimas, [ProdKey] = ankstesnė ([ProdKey])), pardavimas [užsakymo kiekis])

Išsami šios formulės instrukcija pateikta anksčiau.

Trumpai tariant, ankstesnė funkcija iš operacijos, prieš dabartinę operaciją, saugo eilutės kontekstą. Bet kuriuo metu funkcija parduotuvėse atmintyje du konteksto rinkiniai: vienas konteksto rinkinys nurodo dabartinę vidinę formulės liniją, o kitas konteksto rinkinys – tai dabartinės formulės išorinės linijos eilutė. DAX automatiškai maitina dviejų linijų reikšmes, kad galėtumėte sukurti sudėtingus agregatų.

Puslapio viršus

Užklausos kontekstas

Užklausos kontekstas nurodo duomenų, kurie netiesiogiai nuskaitomi pagal formulę, poaibį. Kai į "PivotTable" langelį nuvilksite priemonę arba kitą reikšmės lauką, Power Pivot variklis tikrina eilučių ir stulpelių antraštes, duomenų filtrus ir ataskaitų filtrus, kad nustatytų kontekstą. Tada Power Pivot atlieka reikiamus skaičiavimus, kad užpildytumėte kiekvieną "PivotTable" langelį. Nuskaitomi duomenų rinkinys yra kiekvieno langelio užklausos kontekstas.

Kadangi kontekstas gali keistis atsižvelgiant į tai, kur patalpinate formulę, formulės rezultatai taip pat keičiasi atsižvelgiant į tai, ar naudojate formulę "PivotTable", kurioje yra daug grupavimo ir filtrų, arba apskaičiuojamajame stulpelyje be filtrų ir minimalaus konteksto.

Tarkime, kuriate šią paprastą formulę, kuri susumuoja pardavimo lentelės pelno stulpelio reikšmes: = SUM ("pardavimas" [pelnas]).

Jei šią formulę naudojate apskaičiuojamajame stulpelyje, esančiame lentelėje pardavimas , formulės rezultatai bus vienodi visoje lentelėje, nes formulės užklausos kontekstas visada yra visas pardavimo lentelės duomenų rinkinys. Jūsų rezultatai bus pelningi visiems regionams, visiems produktams, visiems metams ir kt.

Tačiau paprastai nenorite matyti to paties rezultato šimtus kartų, bet norite gauti pelno už tam tikrus metus, konkrečią šalį ar regioną, konkretų produktą ar jų derinį, tada gauti bendrąją sumą.

"PivotTable" paprasta keisti kontekstą įtraukiant arba pašalinus stulpelių ir eilučių antraštes ir pridedant arba pašalinant duomenų filtrus. Galite sukurti formulę, pvz., nurodytą aukščiau, ir numeskite ją į "PivotTable". Kai įtraukiate stulpelio arba eilutės antraštes į "PivotTable", pakeičiate užklausos kontekstą, kuriame vertinama priemonė. Smulkinimo ir filtravimo operacijos taip pat daro įtaką kontekstui. Todėl ta pati formulė, naudojama "PivotTable", vertinama pagal skirtingą kiekvieno langelio užklausos kontekstą.

Puslapio viršus

Filtravimo kontekstas

Filtravimo kontekstas įtraukiamas, kai nustatote filtrų apribojimus stulpelyje arba lentelėje leidžiamų reikšmių rinkinyje naudodami formulės argumentus. Filtravimo kontekstas taikomas kituose kontekstuose, pvz., eilutės kontekste arba užklausos kontekste.

Pvz., "PivotTable" apskaičiuoja kiekvieno langelio reikšmes pagal eilučių ir stulpelių antraštes, kaip aprašyta ankstesnėje užklausos konteksto sekcijoje. Tačiau į "PivotTable" įtrauktose priemonėse arba apskaičiuojamuosiuose stulpeliuose galite nurodyti filtro išraiškas, kad galėtumėte valdyti formulės naudojamas reikšmes. Taip pat galite pasirinktinai išvalyti konkrečių stulpelių filtrus.

Daugiau informacijos apie tai, kaip kurti filtrus formulėse, ieškokite filtrų funkcijos.

Pavyzdžiui, kaip galima išvalyti filtrus, kad būtų galima kurti bendrąsias sumas, peržiūrėkite visus.

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

Taigi, turite peržiūrėti "PivotTable" naudojamų priemonių arba formulių apibrėžimą, kad žinotumėte apie filtravimo kontekstą interpretuojant formulių rezultatus.

Puslapio viršus

Konteksto nustatymas formulėse

Kai kuriate formulę, Power Pivot "Excel" pirmą kartą patikrina bendrąją sintaksę, tada patikrina stulpelių ir lentelių pavadinimus, kuriuos pateikiate dabartiniame kontekste galimiems stulpeliams ir lentelėms. Jei Power Pivot negali rasti formulėje nurodytų stulpelių ir lentelių, gausite klaidos pranešimą.

Kontekstas nustatomas taip, kaip aprašyta ankstesniuose skyriuose, naudojant galimas darbaknygės lenteles, ryšius tarp lentelių ir visus pritaikytus filtrus.

Pavyzdžiui, jei ką tik importavote kai kuriuos duomenis į naują lentelę ir nepritaikėte jokių filtrų, visas lentelės stulpelių rinkinys yra dabartinio konteksto dalis. Jei turite kelias lenteles, kurios yra susietos pagal ryšius ir dirbate su "PivotTable", kuri buvo filtruota įtraukiant stulpelių antraštes ir naudojant duomenų filtrus, kontekste yra susijusios lentelės ir visi duomenų filtrai.

Kontekstas yra galinga koncepcija, dėl kurios gali būti sunku pašalinti formules. Rekomenduojame pradėti naudodami paprastas formules ir ryšius, kad pamatytumėte, kaip veikia kontekstas, tada pradėkite eksperimentuoti su paprastomis formulėmis "PivotTable". Tolesniame skyriuje taip pat pateikiami keli pavyzdžiai, kaip formulės naudoja skirtingus konteksto tipus dinamiškai rezultatams pateikti.

Formulių konteksto pavyzdžiai

  • SUSIJUSI funkcija išplečia dabartinės eilutės kontekstą, kad įtrauktų reikšmes į susijusį stulpelį. Tai leidžia atlikti peržvalgas. Šioje temoje pateiktame pavyzdyje parodyta filtravimo ir eilučių konteksto sąveika.

  • Funkcija FILTER leidžia nurodyti eilutes, kurias norite įtraukti į dabartinį kontekstą. Šioje temoje pateikti pavyzdžiai iliustruoja, kaip įdėti filtrus kitose funkcijose, kurios atlieka agregatų.

  • Funkcija ALL nustato kontekstą pagal formulę. Galite naudoti jį Norėdami perrašyti filtrus, kurie taikomi kaip užklausos konteksto rezultatas.

  • Funkcija ALLIF leidžia pašalinti visus filtrus, išskyrus tą, kurį nurodėte. Abejose temose yra pavyzdžių, kurie padės kurti formules ir suprasti sudėtingus kontekstus.

  • ANKSTESNĖS ir ANKSČIAUSIOS funkcijos leidžia pereiti per lenteles atliekant skaičiavimus, o nurodo reikšmę iš vidinės linijos. Jei esate susipažinę su Rekursija ir vidiniu bei išoriniu kontūru, jums patiks ankstesnės ir ANKSČIAUSIOS funkcijos. Jei esate naujokas su šiomis sąvokomis, atlikite veiksmus, aprašytus pavyzdyje, kad pamatytumėte, kaip naudojami skaičiavimai, kaip išoriniai ir išoriniai kontekstai.

Puslapio viršus

Nuorodų vientisumas

Šiame skyriuje aptariamos kelios išplėstinės sąvokos, susijusios su trūkstamomis reikšmėmis Power Pivot lentelėse, kurios sujungtos pagal ryšius. Ši sekcija jums gali būti naudinga, jei turite darbaknyges su keliomis lentelėmis ir sudėtingomis formulėmis ir norite padėti suprasti rezultatus.

Jei esate naujokas sąryšinių duomenų koncepcijose, rekomenduojame pirmą kartą perskaityti įvadinę temą, ryšių apžvalgą.

Nuorodų vientisumas ir Power Pivot ryšiai

Power Pivot nereikalauja, kad nuorodų vientisumas būtų vykdomi tarp dviejų lentelių, kad būtų apibrėžtas galiojantis ryšys. Vietoj to, tuščia eilutė sukuriama "One" kiekvieno ryšio "vienas su daugeliu" pabaigoje ir naudojama visoms sutampančioms eilutėms iš susijusios lentelės apdoroti. Jis efektyviai veikia kaip SQL išoriniai sujungimo.

Jei "PivotTable" sugrupuojate duomenis vienoje ryšio pusėje, visi nesutampę ryšio pusėje esantys duomenys sugrupuojami kartu ir bus įtraukiami į sumas su tuščia eilutės antrašte. Tuščia antraštė maždaug atitinka "nežinomas narys."

Nežinomo nario supratimas

Nežinomo nario koncepcija tikriausiai jums bus žinoma, jei dirbote su kelių dimensijų duomenų bazių sistemomis, pvz., SQL serverio analizės tarnybomis. Jei terminas jums naujas, toliau pateiktame pavyzdyje paaiškinama, kas yra nežinomas narys ir kaip jis veikia skaičiavimus.

Tarkime, kuriate skaičiavimą, kuris kiekvieną kartą sumuoja kiekvieną parduotuvę, tačiau stulpelyje pardavimas trūksta parduotuvės pavadinimo reikšmės. Atsižvelgiant į tai, kad saugyklos ir pardavimo lentelės yra prijungtos prie parduotuvės pavadinimo , ko jūs tikitės, kad įvyktų formulėje? Kaip "PivotTable" grupė arba Rodyti pardavimo duomenis, kurie nėra susiję su esama parduotuve?

Ši problema yra įprastas vieno duomenų saugyklos, kur daug faktų lentelių turi būti logiškai susietos su dimensijų lentelėmis, kuriose yra informacijos apie parduotuves, regionus ir kitus atributus, kurie naudojami skirstant ir apskaičiuojant faktus. Kad išspręstumėte problemą, visi nauji su esamu subjektu nesusiję faktai laikinai priskiriami nežinomam nariui. Štai kodėl nesusiję faktai bus sugrupuoti "PivotTable" po tuščia antrašte.

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

Tuščios reikšmės skiriasi nuo tuščių eilučių, įtrauktų į nežinomą narį. Tuščia reikšmė yra speciali reikšmė, naudojama atvaizduoti Nulls, tuščias eilutes ir kitas trūkstamas reikšmes. Daugiau informacijos apie tuščią reikšmę ir kitus DAX duomenų tipus rasite duomenų tipų duomenų modeliuose.

Puslapio viršus

Pastaba:  Š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. Prašome mus informuoti, ar radote reikiamos informacijos. Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip nuoroda.

Prenumerata, padėsianti geriausiai išnaudoti savo laiką

Reikia daugiau pagalbos?

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ų.

×