„Power Pivot“ duomenų analizės išraiškos (DAX)

Taikoma
„Excel“, skirta „Microsoft 365“ „Excel 2024“ Excel 2021 Excel 2019 Excel 2016

Duomenų analizės išraiškos (DAX) iš pradžių atrodo šiek tiek bauginančiai, bet neleiskite pavadinimui jūsų apgauti. DAX pagrindai yra tikrai gana lengvai suprantami. Pirmiausia - DAX NĖRA programavimo kalba. DAX yra formulių kalba. DAX galite naudoti apskaičiuotųjų stulpelių ir matų (dar vadinamų apskaičiuotaisiais laukais) pasirinktiniams skaičiavimams apibrėžti. DAX apima kai kurias funkcijas, naudojamas "Excel" formulėse, ir papildomas funkcijas, skirtas dirbti su sąryšiniais duomenimis ir atlikti dinaminį agregavimą.

DAX formulių supratimas

DAX formulės labai panašios į "Excel" formules. Norėdami jį sukurti, įveskite lygybės ženklą, po jo funkcijos pavadinimą arba išraišką ir visas reikiamas reikšmes arba argumentus. Kaip ir "Excel", DAX pateikia įvairių funkcijų, kurias galite naudoti norėdami dirbti su eilutėmis, atlikti skaičiavimus naudodami datas ir laikus arba kurti sąlygines reikšmes.

Tačiau DAX formulės skiriasi šiais svarbiais būdais:

  • Jei norite tinkinti skaičiavimus pagal eilutę atskirai, DAX yra funkcijų, kurios leidžia naudoti esamą eilutės reikšmę ar susijusią reikšmę atliekant skaičiavimus, kurie skiriasi priklausomai nuo konteksto.
  • DAX apima tam tikro tipo funkciją, kuri pateikia lentelę kaip rezultatą, o ne vieną reikšmę. Šios funkcijos gali būti naudojamos įvesti į kitas funkcijas.
  • DAX laiko informacijos funkcijosleidžia atlikti skaičiavimus naudojant datų diapazonus ir palyginti lygiagrečių laikotarpių rezultatus.

Kur naudoti DAX formules

"Power Pivot" galite kurti formules apskaičiuojamuosiuose stulpeliuose arba apskaičiuotuosiuose laukuose.

Apskaičiuojamieji stulpeliai

Apskaičiuojamasis stulpelis yra stulpelis, kurį įtraukiate į esamą "Power Pivot" lentelę. Užuot įklijavę ar importavę reikšmes į stulpelį, galite sukurti DAX formulę, kuri apibrėžia stulpelio reikšmes. Jei į "PivotTable" (arba "PivotChart") įtrauksite "Power Pivot" lentelę, apskaičiuojamąjį stulpelį galėsite naudoti kaip bet kurį kitą duomenų stulpelį.

Apskaičiuotuose stulpeliuose pateiktos formulės yra panašios į formules, kurias kuriate programoje "Excel". Tačiau, skirtingai nei "Excel", skirtingoms lentelės eilutėms negalite sukurti skirtingos formulės; DAX formulė automatiškai pritaikoma visam stulpeliui.

Kai stulpelyje yra formulė, apskaičiuojama kiekvienos eilutės reikšmė. Stulpelio rezultatai apskaičiuojami iškart, kai sukuriate formulę. Stulpelių reikšmės perskaičiuojamos tik atnaujinus esamus duomenis arba perskaičiavus rankiniu būdu.

Galite kurti apskaičiuojamuosius stulpelius, pagrįstus matais ir kitais apskaičiuojamaisiais stulpeliais. Tačiau nenaudokite to paties pavadinimo apskaičiuojamajam stulpeliui ir matui, nes tai gali sukelti neaiškių rezultatų. Kai nurodote stulpelį, geriausia naudoti atitinkančią stulpelio nuorodą, kad netyčia neiškviestumėte priemonės.

Daugiau informacijos ieškokite " Power Pivot" apskaičiuojamieji stulpeliai.

Priemonės

Matas yra formulė, sukurta specialiai naudoti "PivotTable" (arba "PivotChart"), kuri naudoja "PowerPivot" duomenis. Matai gali būti pagrįsti standartinėmis agregavimo funkcijomis, pvz., COUNT arba SUM, arba galite apibrėžti savo formulę naudodami DAX. Matas naudojamas "PivotTable" reikšmių srityje. Jei norite perkelti apskaičiuotus rezultatus į kitą "PivotTable" sritį, vietoj to naudokite apskaičiuojamąjį stulpelį.

Kai apibrėžiate aiškios priemonės formulę, nieko neįvyksta tol, kol neįtraukiate jos į "PivotTable". Kai įtraukiate matą, formulė vertinama pagal kiekvieną "PivotTable" srities Reikšmė langelį. Kadangi rezultatas sukuriamas pagal kiekvieną eilučių ir stulpelių antraščių derinį, mato rezultatas kiekviename langelyje gali skirtis.

Mato aprašas, kurį kuriate, įrašomas kartu su jo šaltinio duomenų lentele. Ji rodoma "PivotTable" laukų sąraše ir yra prieinama visiems šios darbaknygės vartotojams.

Daugiau informacijos rasite " Power Pivot" matavimai.

Formulių kūrimas naudojant formulių juostą

"Power Pivot", kaip ir "Excel", suteikia formulių juostą, kad būtų lengviau kurti ir redaguoti formules, ir automatinio vykdymo funkciją, kad sumažintų įvedimo ir sintaksės klaidų skaičių.

Jei norite įvesti lentelės pavadinimą Pradėkite vesti lentelės pavadinimą. Formulės automatinio vykdymo funkcija pateikia išplečiamąjį sąrašą su leistinais vardais, prasidedančiais šiomis raidėmis.

Jei norite įvesti stulpelio pavadinimą Įveskite skliaustą ir pasirinkite stulpelį iš dabartinės lentelės stulpelių sąrašo. Jei stulpelis yra iš kitos lentelės, pradėkite vesti pirmąsias lentelės pavadinimo raides, tada pasirinkite stulpelį iš automatinio užbaigimo išplečiamojo sąrašo.

Daugiau informacijos ir formulių kūrimo patarimų rasite "Power Pivot" skaičiavimų formulių kūrimas.

Automatinio užbaigimo funkcijos naudojimo patarimai

Galite naudoti formulės automatinį vykdymą esamos formulės su įdėtosiomis funkcijomis viduryje. Reikšmėms išplečiamajame sąraše rodyti naudojamas tekstas, kuris yra prieš pat įterpimo vietą, o visas tekstas po įterpimo vietos lieka nepakitęs.

Apibrėžti konstantų pavadinimai nerodomi automatinio užbaigimo išplečiamajame sąraše, bet vis tiek galite juos įvesti.

"PowerPivot" neįtraukia uždaromojo funkcijų skliausto ir automatiškai nesuderina skliaustelių. Turėtumėte įsitikinti, kad kiekviena funkcija yra sintaksės požiūriu teisinga, kitaip negalite įrašyti ar naudoti formulės. 

Kelių funkcijų naudojimas formulėje

Galite įdėti funkcijas, t. y. naudoti vienos funkcijos rezultatus kaip kitos funkcijos argumentą. Apskaičiuojamuosiuose stulpeliuose galite įdėti iki 64 lygių funkcijų. Tačiau įdėjimas gali apsunkinti formulių kūrimą arba trikčių šalinimą.

Daugelis DAX funkcijų sukurtos naudoti tik kaip įdėtosios funkcijos. Šios funkcijos pateikia lentelę, kurios negalima tiesiogiai įrašyti; Ji turėtų būti pateikta kaip įvestis į lentelės funkciją. Pavyzdžiui, funkcijoms SUMX, AVERAGEX ir MINX reikia lentelės kaip pirmojo argumento.

Pastaba

Matuose yra tam tikrų funkcijų įdėjimo apribojimų, siekiant užtikrinti, kad veikimui įtakos neturėtų daugybė skaičiavimų, kurių reikia dėl stulpelių priklausomybės.

DAX ir "Excel" funkcijų palyginimas

DAX funkcijų biblioteka sukurta "Excel" funkcijų bibliotekos pagrindu, tačiau bibliotekos turi daug skirtumų. Šiame skyriuje apibendrinami skirtumai tarp "Excel" ir DAX funkcijų.

  • Daug DAX funkcijų vadinamos taip pat ir veikia taip pat kaip "Excel" funkcijos, bet jos buvo modifikuotos priimti skirtingų tipų įvestis, todėl kai kuriais atvejais gali grąžinti kitokį duomenų tipą. Paprastai negalima naudoti DAX funkcijų "Excel" formulėje arba "Excel" formulių "Power Pivot" be tam tikrų pakeitimų.
  • DAX funkcijos niekada nenaudoja langelio nuorodos ar diapazono kaip nuorodos, o DAX funkcijos naudoja stulpelį arba lentelę kaip nuorodą.
  • DAX datos ir laiko funkcijos pateikia datos/laiko duomenų tipą. Tuo tarpu "Excel" datos ir laiko funkcijos pateikia sveikąjį skaičių, kuris nurodo datą kaip sekos skaičių.
  • Daugelis naujųjų DAX funkcijų pateikia reikšmių lentelę arba kaip įvestį atlieka skaičiavimus, pagrįstus reikšmių lentele. Tuo tarpu "Excel" neturi funkcijų, kurios pateiktų lentelę, bet kai kurios funkcijos gali dirbti su masyvais. Galimybė lengvai nurodyti išsamias lenteles ir stulpelius yra nauja "Power Pivot" funkcija.
  • DAX pateikia naujas peržvalgos funkcijas, panašias į masyvo ir vektorinės peržvalgos funkcijas programoje "Excel". Tačiau DAX funkcijos reikalauja, kad tarp lentelių būtų sukurtas ryšys.
  • Tikėtina, kad duomenys stulpelyje visada bus to paties tipo. Jei duomenys nėra to paties tipo, DAX pakeičia visą stulpelį į duomenų tipą, kuris geriausiai atitinka visas reikšmes.

DAX duomenų tipai

Galite importuoti duomenis į "Power Pivot" duomenų modelį iš daugelio skirtingų duomenų šaltinių, kurie gali palaikyti skirtingus duomenų tipus. Kai importuojate arba įkeliate duomenis, tada juos naudojate skaičiavimams arba "PivotTable" lentelėms, duomenys konvertuojami į vieną iš "Power Pivot" duomenų tipų. Duomenų tipų sąrašą rasite Duomenų modelių duomenų tipai.

Lentelės duomenų tipas yra naujas DAX duomenų tipas, naudojamas kaip įvestis arba išvestis į daugelį naujų funkcijų. Pavyzdžiui, funkcija FILTER priima lentelę kaip įvestį ir pateikia kitą lentelę, kurioje yra tik filtro sąlygas atitinkančios eilutės. Derindami lentelės funkcijas su agregavimo funkcijomis, galite atlikti sudėtingus skaičiavimus naudodami dinamiškai apibrėžtus duomenų rinkinius. Daugiau informacijos žr. Telkimai papildinyje "Power Pivot".

Formulės ir sąryšinis modelis

"Power Pivot" langas – tai sritis, kurioje galite dirbti su keliomis duomenų lentelėmis ir sujungti lenteles naudodami santykinį modelį. Šiame duomenų modelyje lentelės yra tarpusavyje sujungtos ryšiais, kurie leidžia kurti koreliacijas su kitų lentelių stulpeliais ir atlikti įdomesnius skaičiavimus. Pavyzdžiui, galite kurti formules, kurios sumuoja susijusios lentelės reikšmes, o tada įrašyti tą reikšmę viename langelyje. Arba, jei norite valdyti eilutes iš susijusios lentelės, galite taikyti filtrus lentelėms ir stulpeliams. Daugiau informacijos rasite Duomenų modelio lentelių ryšiai.

Kadangi lenteles galite susieti naudodami ryšius, jūsų "PivotTable" taip pat gali būti duomenų iš kelių stulpelių, kurie yra iš skirtingų lentelių.

Tačiau formulės gali dirbti su ištisomis lentelėmis ir stulpeliais, todėl reikia kitaip planuoti skaičiavimus nei programoje "Excel".

  • Paprastai stulpelyje esanti DAX formulė visada taikoma visam stulpelio reikšmių rinkiniui (tik kelioms eilutėms ar langeliams).
  • "Power Pivot" lentelės visada turi turėti tokį patį stulpelių skaičių kiekvienoje eilutėje ir visose stulpelio eilutėse turi būti to paties tipo duomenys.
  • Kai lentelės yra sujungtos ryšiu, turite įsitikinti, kad dviejuose stulpeliuose, naudojamuose kaip raktai, yra daugiausia sutampančios reikšmės. "PowerPivot" neįgalina nuorodų vientisumo, todėl gali būti, kad rakto stulpelyje bus neatitinkančių reikšmių ir vis tiek bus sukurtas ryšys. Tačiau tuščios arba nesutampančios reikšmės gali turėti įtakos formulių rezultatams ir "PivotTable" išvaizdai. Daugiau informacijos ieškokite "Power Pivot" formulių peržvalgos.
  • Susieję lenteles naudodami ryšius, padidinate aprėptį arba kontekstą, kuriame vertinamos formulės. Pvz., "PivotTable" formulėms gali turėti įtakos bet kokie filtrai arba "PivotTable" stulpelių ir eilučių antraštės. Galite rašyti formules, kurios manipuliuoja kontekstu, tačiau dėl konteksto rezultatai taip pat gali pasikeisti taip, kaip nesitikėjote. Daugiau informacijos žr. DAX formulių kontekstas.

Formulių rezultatų naujinimas

Duomenų atnaujinimas ir perskaičiavimas yra dvi atskiros, tačiau susijusios operacijos, kurias turėtumėte suprasti kurdami duomenų modelį, apimantį sudėtingas formules, didelius duomenų kiekius arba duomenis, gautus iš išorinių duomenų šaltinių.

Duomenų atnaujinimas yra darbaknygės duomenų naujinimas naujais duomenimis iš išorinio duomenų šaltinio. Galima atnaujinti duomenis rankiniu būdu nurodytais intervalais. Arba, jei publikavote darbaknygę "SharePoint" svetainėje, galite suplanuoti automatinį atnaujinimą iš išorinių šaltinių.

Perskaičiavimas yra formulių rezultatų atnaujinimo procesas, siekiant atspindėti bet kokius pačių formulių pakeitimus ir esamų duomenų pakeitimus. Perskaičiavimas gali turėti įtakos našumui šiais būdais:

  • Apskaičiuotojo stulpelio formulės rezultatas turi būti visada perskaičiuojamas visame stulpelyje, kiekvieną kartą pakeitus formulę.
  • Matų formulės rezultatai neskaičiuojami tol, kol matas nepateikiamas "PivotTable" arba "PivotChart" kontekste. Formulė taip pat bus perskaičiuota, kai pakeisite bet kurios eilutės arba stulpelio antraštę, kuri turi įtakos duomenų filtrams, arba kai rankiniu būdu atnaujinsite "PivotTable".

Formulių trikčių diagnostika

Klaidos rašant formules

Jei apibrėždami formulę gaunate klaidą, formulėje gali būti sintaksės, semantinė klaida arba skaičiavimo klaida.

Sintaksės klaidas lengviausia pašalinti. Paprastai juose trūksta skliaustelių arba kablelio. Jei reikia pagalbos dėl atskirų funkcijų sintaksės, žr. DAX funkcijos nuoroda.

Kitos klaidos atsiranda, kai sintaksė yra teisinga, bet nurodoma reikšmė ar stulpelis neturi prasmės formulės kontekste. Tokias semantines ir skaičiavimo klaidas gali sukelti viena iš šių problemų:

  • Formulė nurodo neegzistuojantį stulpelį, lentelę ar funkciją.
  • Formulė atrodo teisinga, bet kai duomenų modulis gauna duomenis, jis randa tipo neatitikimą ir pateikia klaidą.
  • Formulė perduoda funkcijai neteisingą skaičių arba parametrų tipą.
  • Formulė nurodo kitą stulpelį, kuriame yra klaida, todėl jo reikšmės yra neleistinos.
  • Formulė nurodo stulpelį, kuris nebuvo apdorotas, t. y. jame yra metaduomenų, tačiau nėra faktinių duomenų, kuriuos būtų galima naudoti skaičiuojant.

Pirmaisiais keturiais atvejais DAX pažymi visą stulpelį, kuriame yra netinkama formulė. Paskutiniu atveju DAX papilkina stulpelį, kad būtų nurodyta, jog stulpelis yra neapdorotos būsenos.

Neteisingi arba neįprasti rezultatai reitinguojant arba rikiuojant stulpelių reikšmes

Kai rūšiuojate arba rikiuojate stulpelį, kuriame yra reikšmė NaN (ne skaičius), galite gauti klaidingų arba netikėtų rezultatų. Pvz., kai skaičiavimas padalija 0 iš 0, grąžinamas NaN rezultatas.

Taip yra todėl, kad formulių modulis atlieka rikiavimą ir reitingavimą lygindamas skaitines reikšmes; tačiau NaN negalima lyginti su kitais stulpelio skaičiais.

Norėdami užtikrinti teisingus rezultatus, galite naudoti sąlyginius sakinius, naudodami funkciją IF, kad patikrintumėte NaN reikšmes ir grąžintumėte skaitinę reikšmę 0.

Suderinamumas su analizės tarnybų lenteliniais modeliais ir "DirectQuery" režimu

Paprastai DAX formulės, kurias sukuriate "Power Pivot", yra visiškai suderinamos su analizės tarnybų lentelių modeliais. Tačiau perkėlus "Power Pivot" modelį į analizės tarnybų egzempliorių ir tada įdiegus modelį "DirectQuery" režimu, yra keletas apribojimų.

  • Kai kurios DAX formulės gali pateikti skirtingus rezultatus, jei modelį diegiate "DirectQuery" režimu.
  • Kai kurios formulės gali sukelti tikrinimo klaidų, kai diegiate modelį "DirectQuery" režimu, nes formulėje yra DAX funkcija, kuri nėra palaikoma santykiniame duomenų šaltinyje.

Daugiau informacijos rasite analizės tarnybų lentelių modeliavimo dokumentacijoje „SQL Server“ 2012 BooksOnline.