Šis greitas pasirengimas darbui skirtas vartotojams, kurie dar nenaudoja "Power Pivot" programoje "Excel" arba lentelių modelio projektams, sukurtiems naudojant „SQL Server Data Tools“. Ji skirta greitai ir lengvai supažindinti, kaip galite naudoti duomenų analizės išraiškas (DAX) įvairioms pagrindinėms duomenų modeliavimo ir analizės problemoms spręsti. Ši tema apima konceptualią informaciją, užduočių, kurias galite atlikti, seką ir keletą viktorinų, skirtų patikrinti tai, ką išmokote. Baigę šią temą turėtumėte gerai suprasti pagrindines DAX sąvokas.
Kas yra DAX?
DAX yra funkcijų, operatorių ir konstantų rinkinys, kurį galima naudoti formulėje arba reiškinyje, norint apskaičiuoti ir grąžinti vieną ar daugiau reikšmių. Paprasčiau tariant, DAX padeda kurti naują informaciją iš modelyje jau esančių duomenų.
Kodėl DAX toks svarbus?
Sukurti darbaknygę ir importuoti į ją kai kuriuos duomenis yra paprasta. Galite net sukurti "PivotTable" arba "PivotChart", kuriose rodoma svarbi informacija, nenaudodami jokių DAX formulių. Tačiau ką daryti, jei jums reikia analizuoti svarbius kelių produktų kategorijų pardavimo duomenis skirtingiems datų diapazonams? Arba reikia sujungti svarbius atsargų duomenis iš kelių lentelių skirtinguose duomenų šaltiniuose? DAX formulės suteikia šią galimybę, taip pat daug kitų svarbių galimybių. Išmokę efektyviai naudoti DAX formules, galėsite išnaudoti visas duomenų galimybes. Gavę reikiamą informaciją, galite pradėti spręsti realias verslo problemas, turinčias įtakos jūsų pelnui. Tai yra Verslo įžvalgos, o DAX padės jums tai pasiekti.
Būtinosios sąlygos
Galbūt jau žinote apie formulių kūrimą programoje "Microsoft Excel". Šios žinios bus naudingos norint suprasti DAX, tačiau net jei neturite patirties su "Excel" formulėmis, čia aprašytos sąvokos padės jums iš karto pradėti kurti DAX formules ir spręsti realias BI problemas.
Mes ketiname sutelkti dėmesį į DAX formulių, naudojamų skaičiavimuose, supratimą. Jau turėtumėte būti susipažinę su pagrindinėmis apskaičiuojamųjų stulpelių ir matų (dar vadinamų apskaičiuotaisiais laukais) sąvokomis, kurios abi aprašytos "Power Pivot" žinyne. Taip pat turėtumėte būti susipažinę su "Power Pivot in Excel" kūrimo aplinka ir įrankiais.
Darbaknygės pavyzdys
Geriausias būdas išmokti DAX yra sukurti bazines formules, naudoti jas su faktiniais duomenimis ir patiems pamatyti rezultatus. Čia pateiktuose pavyzdžiuose ir užduotyse naudojamas "Contoso" DAX Formulas.xlsx darbaknygės pavyzdys. Darbaknygę galite atsisiųsti iš http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Atsisiuntę darbaknygę į kompiuterį, atidarykite ją, tada atidarykite "Power Pivot" langą.
Pradėkime!
DAX rėmuose pagal tris labai svarbias pagrindines sąvokas: sintaksę, funkcijas ir kontekstą. Žinoma, yra ir kitų svarbių DAX sąvokų, tačiau šių trijų sąvokų supratimas suteiks geriausią pagrindą savo DAX įgūdžiams tobulinti.
Sintaksė
Prieš kurdami savo formules, apžvelkime DAX formulių sintaksę. Sintaksė apima įvairius elementus, kurie sudaro formulę, arba, paprasčiau tariant, kaip formulė yra parašyta. Pažvelkime į paprastą DAX formulę, naudojamą kuriant naujus duomenis (reikšmes) kiekvienai apskaičiuotojo stulpelio, pavadinto Riba, eilutei lentelėje "FactSales" (formulės teksto spalvos skirtos tik iliustraciniams tikslams)
Šios formulės sintaksė apima tokius elementus:
- Lygybės ženklo operatorius (=) nurodo formulės pradžią, o kai ši formulė apskaičiuojama, ji grąžina rezultatą arba reikšmę. Visos formulę, kurios skaičiuoja reikšmę, prasidės lygybės ženklu.
- Nurodytame stulpelyje [SalesAmount] yra reikšmės, iš kurių norime atimti. Formulės stulpelio nuoroda visada rašoma skliausteliuose []. Kitaip nei "Excel" formulės, kurios nurodo langelį, DAX formulė visada nurodo stulpelį.
- Atimties (-) matematinis operatorius.
- Nurodytame stulpelyje [TotalCost] yra reikšmės, kurias norime atimti iš stulpelio [SalesAmount] reikšmių.
Norint suprasti, kaip skaityti DAX formulę, dažnai naudinga suskaidyti kiekvieną elementą į kalbą, kuria mąstote ir kalbate kiekvieną dieną. Pavyzdžiui, šią formulę galima skaityti kaip:
Dalyje "FactSalestable" kiekvienai apskaičiuotojo stulpelio "Margin " eilutei apskaičiuokite (=) reikšmę atimdami (-) stulpelio [TotalCost] reikšmes iš stulpelio [SalesAmount] reikšmių.
Pažvelkime į kito tipo formulę, naudojamą matui:
Šioje formulėje yra šie sintaksės elementai:
- Mato pavadinimas: Pardavimo sumos suma. Matų formulėse gali būti priemonės pavadinimas, po kurio eina dvitaškis, o po jo – skaičiavimo formulė.
- Lygybės ženklo operatorius (=) nurodo skaičiavimo formulės pradžią. Paskaičiavus jis grąžins rezultatą.
- Funkcija SUM sudeda visus skaičius stulpelyje [SalesAmount]. Daugiau apie funkcijas sužinosite vėliau.
- Skliaustais () supate vieną arba daugiau argumentų. Visoms funkcijoms reikalingas bent vienas argumentas. Argumentas perduoda reikšmę funkcijai.
- Nurodoma lentelė "FactSales".
- nurodomas stulpelis [SalesAmount] lentelėje "FactSales". Naudojant šį argumentą, funkcija SUM žino, kuriame stulpelyje agreguoti SUM.
Šią formulę galima skaityti kaip:
Apskaičiuokite (=) reikšmių SUM stulpelyje [SalesAmount], esantį lentelėje FactSales.
Kai ši priemonė padedama "PivotTable" laukų sąrašo reikšmių numetimo zonoje, apskaičiuoja ir pateikia reikšmes, apibrėžtas kiekvieno "PivotTable" langelio, pvz., Mobilieji telefonai JAV.
Atkreipkite dėmesį, kad ši formulė skiriasi keliais dalykais, palyginti su formule, kurią naudojome stulpelyje Marža. Visų pirma pristatėme funkciją SUM. Funkcijos yra iš anksto parengtos formulės, kurios palengvina sudėtingus skaičiavimus ir manipuliavimą skaičiais, datomis, laiku, tekstu ir kt. Daugiau apie funkcijas sužinosite vėliau.
Skirtingai nei anksčiau nurodytame stulpelyje Marža, matote, kad prieš stulpelį [SalesAmount] buvo lentelė FactSales, kuriai priklauso stulpelis. Tai vadinama visiškai apibrėžtu stulpelio pavadinimu, nes jame yra stulpelio pavadinimas, prieš kurį yra lentelės pavadinimas. Toje pačioje lentelėje nurodytiems stulpeliams lentelės pavadinimo į formulę įtraukti nereikia. Dėl to ilgos formulės, nurodančios daug stulpelių, gali būti trumpesnės ir lengviau skaitomos. Tačiau patartina visada įtraukti lentelės pavadinimą matų formulėse, net jei lentelė yra toje pačioje lentelėje.
Pastaba
Jei lentelės pavadinime yra tarpų, rezervuotųjų raktažodžių arba neleidžiamų simbolių, lentelės pavadinimą turite rašyti viengubose kabutėse. Lentelių pavadinimus taip pat turite rašyti kabutėse, jei pavadinime yra simbolių, nepatenkančių į ANSI raidinių skaitinių simbolių diapazoną, nepaisant to, ar jūsų lokalė palaiko simbolių rinkinį, ar ne.
Labai svarbu, kad formulės būtų teisingos sintaksės. Daugeliu atvejų, jei sintaksė neteisinga, bus pateikta sintaksės klaida. Kitais atvejais sintaksė gali būti teisinga, bet pateikiamos reikšmės gali būti ne tokios, kokių tikėjotės. "Power Pivot" (ir „SQL Server Data Tools“) apima "IntelliSense"; funkciją, naudojamą sintaksiškai taisyklingoms formulėms kurti, padedant pasirinkti tinkamus elementus.
Sukurkime paprastą formulę. Ši užduotis padės geriau suprasti formulės sintaksę ir kaip formulių juostoje esanti "IntelliSense" funkcija gali jums padėti.
Užduotis: paprastos apskaičiuojamojo stulpelio formulės kūrimas
- Jei dar nesate "Power Pivot" lange, programos "Excel" "Power Pivot" juostelėje spustelėkite "Power Pivot" langas.
- "Power Pivot" lange spustelėkite lentelę (skirtuką) "FactSales ".
- Slinkite į dešiniausią stulpelį, tada stulpelio antraštėje spustelėkite Įtraukti stulpelį.
- Spustelėkite formulės juostą modelio dizaino įrankio lango viršuje.
Dabar žymiklis rodomas formulės juostoje. Formulės juostoje galite įvesti apskaičiuojamojo stulpelio arba apskaičiuotojo lauko formulę.
Pažvelkime į tris mygtukus į kairę nuo formulės juostos.
Kai žymiklis yra aktyvus formulės juostoje, šie trys mygtukai tampa aktyvūs. Kairysis mygtukas, X, yra tiesiog atšaukimo mygtukas. Eikite į priekį ir spustelėkite jį. Formulės juostoje neberodomas žymeklis, o mygtukai "Atšaukti" ir varnelės mygtukai neberodomi. Tęskite ir dar kartą spustelėkite formulės juostoje. Dabar vėl rodomas mygtukas "Atšaukti" ir varnelės mygtukas. Tai reiškia, kad esate pasirengę pradėti įvesti formulę.
Varnelės mygtukas yra mygtukas Formulės tikrinimas. Kol neįvedate formulės, daug ką veikiate. Mes grįšime prie jo šiek tiek.
Spustelėkite mygtuką Fx . Pamatysite, kad pasirodys naujas dialogo langas; dialogo langas Įterpti funkciją. Dialogo langas Įterpti funkciją yra paprasčiausias būdas pradėti įvesti DAX formulę. Šiek tiek vėliau įtrauksime funkciją į formulę, kai sukursime matą, bet kol kas jums nereikia įtraukti funkcijos į apskaičiuojamojo stulpelio formulę. Eikite ir uždarykite dialogo langą Įterpti funkciją. - Formulės juostoje įveskite lygybės ženklą (=), tada atidaromąjį laužtinį skliaustą [. Pamatysite mažą langą su visais lentelės "FactSales" stulpeliais. Tai yra "IntelliSense" veikimas.
Apskaičiuojamieji stulpeliai visada sukuriami aktyvioje lentelėje, kurioje esate, todėl prieš stulpelio pavadinimą nereikia vesti lentelės pavadinimo. Slinkite žemyn ir dukart spustelėkite [SalesQuantity]. Taip pat galite slinkti iki norimo stulpelio pavadinimo ir paspausti "Tab".
Dabar jūsų žymiklis yra aktyvus [SalesQuantity] dešinėje. - Įveskite tarpą, tada įveskite atimties operatorių (minuso ženklą) ir įveskite dar vieną tarpą.
- Dabar įveskite kitą atidaromąjį laužtinį skliaustą [. Šį kartą pasirinkite stulpelį [ReturnQuantity] ir paspauskite klavišą " Enter".
Jei gaunate klaidos pranešimą, atidžiai peržiūrėkite sintaksę. Jei reikia, palyginkite ją su formule, esančia anksčiau aprašytame stulpelyje Riba.
Paspaudus "Enter", kad būtų užbaigta formulė, "Power Pivot" lango apačioje esančioje būsenos juostoje rodomas žodis Skaičiuojama . Procesas vyksta greitai, net jei ką tik suskaičiavote naujas daugiau nei trijų milijonų eilučių reikšmes. - Dešiniuoju pelės mygtuku spustelėkite stulpelio antraštę ir pervardykite stulpelį NetSales.
Štai ir viskas! Ką tik sukūrėte paprastą, bet labai veiksmingą DAX formulę. Kiekvienai lentelės FactSales eilutei formulė NetSales apskaičiuoja reikšmę atimdama reikšmę stulpelyje [ReturnQuantity] iš reikšmės, esančios stulpelyje [SalesQuantity]. Atkreipkite dėmesį, kaip mes ką tik pasakėme "Kiekvienai eilutei". Tai yra žvilgsnis į kitą labai svarbią DAX koncepciją; Eilutės kontekstas. Daugiau apie eilutės kontekstą sužinosite vėliau.
Įvedant operatorius į DAX formulę labai svarbu suprasti duomenų tipą argumentuose, kuriuos naudojate. Pavyzdžiui, jei turėtumėte įvesti šią formulę = 1 & 2, grąžinta reikšmė būtų tekstinė reikšmė "12". Taip yra todėl, kad ampersendo (&) operatorius skirtas teksto sujungimui. DAX šią formulę interpretuoja taip: Apskaičiuokite rezultatą priimdami reikšmę 1 kaip tekstą ir pridėdami reikšmę 2 kaip tekstą. Dabar, jei turėtumėte įvesti = 1 + 2, DAX skaito šią formulę kaip: Apskaičiuokite rezultatą imdami skaitinę reikšmę 1 ir pridėdami skaitinę reikšmę 2. Rezultatas, žinoma, yra "3", skaitinė reikšmė. DAX skaičiuoja rezultatų reikšmes atsižvelgdama į formulės operatorių, o ne pagal argumente naudojamų stulpelių duomenų tipą. DAX duomenų tipai yra labai svarbūs, tačiau už šios greito pasirengimo darbui priemonės aprėpties ribų. Norėdami sužinoti daugiau apie duomenų tipus ir operatorius DAX formulėse, žr. DAX nuorodą (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) "Books Online".
Pabandykime kitą. Šį kartą sukursite matą įvesdami formulę ir naudodami "IntelliSense". Per daug nesijaudinkite, jei iki galo nesuprantate formulės. Svarbu išmokti sukurti formulę, naudojant kelis elementus kartu teisingoje sintaksėje.
Užduotis: Mato formulės kūrimas
- Lentelėje "FactSales " spustelėkite bet kurį tuščią langelį skaičiavimo srityje. Tai tuščių langelių sritis iškart po lentele "Power Pivot" lange.
- Formulės juostoje įveskite pavadinimą Previous Quarter Sales:.
- Įveskite lygybės ženklą =, kad pradėtumėte skaičiavimo formulę.
- Įveskite kelias pirmąsias raides CAL ir dukart spustelėkite norimą naudoti funkciją. Šioje formulėje norite naudoti funkciją CALCULATE .
- Įveskite atidaromąjį skliaustelį (pradėdami argumentus, kurie bus perduoti funkcijai CALCULATE).
Atkreipkite dėmesį, kad įvedus atidaromąjį skliaustelį "IntelliSense" parodo argumentus, reikalingus funkcijai CALCULATE įvedimui. Apie argumentus sužinosite šiek tiek. - Įveskite kelias pirmąsias lentelės "FactSales " raides, tada išplečiamajame sąraše dukart spustelėkite FactSales[Sales].
- Įveskite kablelį (,), kad nurodytumėte pirmąjį filtrą, tada įveskite PRE, tada dukart spustelėkite funkciją PREVIOUSQUARTER .
Pasirinkus funkciją PREVIOUSQUARTER, pasirodo kitas atidaromasis skliaustelis, nurodantis, kad reikalingas kitas argumentas; šį kartą – funkcijai PREVIOUSQUARTER. - Įveskite kelias pirmąsias raides Dim, tada dukart spustelėkite DimDate[DateKey].
- Uždarykite funkcijai PREVIOUSQUARTER perduodamą argumentą ir funkcijai CALCULATE įvesdami du uždaromuosius skliaustelius )).
Dabar jūsų formulė turėtų atrodyti taip:
Ankstesnio ketvirčio pardavimai:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey])) - Formulės juostoje spustelėkite mygtuką Tikrinti formulę, kad patvirtintumėte formulę. Jei gaunate klaidos pranešimą, patikrinkite kiekvieną sintaksės elementą.
Tu tai padarei! Jūs ką tik sukūrėte priemonę naudodami DAX, ir tai nėra lengva. Ši formulė apskaičiuos bendrą praėjusio ketvirčio pardavimą atsižvelgiant į "PivotTable" arba "PivotChart" pritaikytus filtrus.
Ką tik buvote supažindinti su keliais svarbiais DAX formulių aspektais. Pirma, ši formulė apėmė dvi funkcijas. Atkreipkite dėmesį, kad funkcija PREVIOUSQUARTER įdėta kaip funkcijai CALCULATE perduodamas argumentas. DAX formulėse gali būti iki 64 įdėtųjų funkcijų. Mažai tikėtina, kad formulėje būtų tiek daug įdėtųjų funkcijų. Tiesą sakant, tokią formulę būtų labai sunku sukurti ir derinti, ir tikriausiai ji nebūtų labai greita.
Šioje formulėje taip pat naudojote filtrus. Filtrai susiaurina tai, kas bus skaičiuojama. Šiuo atveju pasirinkote vieną filtrą kaip argumentą, kuris iš tikrųjų yra kita funkcija. Daugiau apie filtrus sužinosite vėliau.
Galiausiai panaudojote funkciją CALCULATE. Tai viena iš galingiausių DAX funkcijų. Kurdami duomenų modelius ir kurdami sudėtingesnes formules, tikriausiai naudosite šią funkciją daug kartų. Aptarimas apie funkciją CALCULATE nėra šio greito pasirengimo darbui tikslas, bet jums augant žinioms apie DAX, atkreipkite tam ypatingą dėmesį.
Pastaba
Paprastai, norėdami naudoti laiko informacijos funkcijas DAX formulėse, turite nurodyti unikalų datos stulpelį naudodami dialogo langą Žymėti kaip datų lentelę. "Contoso" DAX formulės Samples.xlsx darbaknygėje stulpelis "DateKey" lentelėje "DimDate" pasirenkamas kaip unikalus datos stulpelis.
Papildomas kreditas
Galbūt klausiate: "Kokią paprasčiausią DAX formulę galiu sukurti?" Na, atsakymas į tai yra "formulė, kurios jums nereikia". Būtent tai galite padaryti naudodami standartinę agregavimo funkciją. Beveik kiekvienam duomenų modeliui reikia filtruoti ir apskaičiuoti sukauptus duomenis. Pvz., anksčiau matytame pardavimo sumos mate funkcija SUM naudojama norint sudėti visus konkretaus stulpelio skaičius. DAX taip pat apima keletą kitų funkcijų, kurios agreguoja reikšmes. Naudodami automatinės sudėties funkciją galite automatiškai kurti formules naudodami standartinius agregavimus.
Papildomi kreditai Užduotis: matavimo formulės kūrimas naudojant automatinės sudėties funkciją
- Lentelėje "FactSales" slinkite iki stulpelio "ReturnQuantity", tada spustelėkite stulpelio antraštę, kad pasirinktumėte visą stulpelį.
- Skirtuko Pagrindinis juostelės grupėje Skaičiavimai spustelėkite mygtuką Automatinė sudėtis .
Spustelėkite šalia Automatinė sudėtis esančią rodyklę žemyn, tada spustelėkite Vidurkis (atkreipkite dėmesį į kitas standartines agregavimo funkcijas, kurias taip pat galite naudoti).
Iš karto sukuriamas naujas matas, pavadintas Average of ReturnQuantity: ir formulė =AVERAGE([ReturnQuantity]).
Dabar nebuvo taip paprasta? Žinoma, ne visos formulės, kurias sukuriate, bus tokios paprastos. Tačiau naudodami automatinės sudėties funkciją galite kurti greitas ir paprastas formules naudodami standartinius agregavimo skaičiavimus.
Tai turėtų padėti jums gana gerai suprasti DAX formulių sintaksę. Taip pat buvote supažindinti su tikrai šauniomis funkcijomis, pvz., "IntelliSense" ir Automatinė sudėtis, padedančiomis kurti greitas, paprastas ir tikslias formules. Žinoma, apie sintaksę galite sužinoti daug daugiau. Puiki vieta norint sužinoti daugiau yra DAX Reference arba SQL Books Online.
Sintaksė QuickQuiz
- Ką daro šis mygtukas formulės juostoje?
- Kas visada supa stulpelio pavadinimą DAX formulėje?
- Kaip parašyti formulę:
Ar lentelėje DimProduct kiekvienai apskaičiuotojo stulpelio UnitMargin eilutei reikšmė bus atimta iš stulpelio UnitPrice reikšmių iš stulpelio UnitPrice reikšmių?
Atsakymai pateikiami šios temos pabaigoje.
Funkcijos
Funkcijos yra iš anksto apibrėžtos formulės, kurios atlieka skaičiavimus naudodamos tam tikras reikšmes, vadinamas argumentais, tam tikra eilės tvarka ar struktūra. Argumentai gali būti kitos funkcijos, kita formulė, stulpelių nuorodos, skaičiai, tekstas, loginės reikšmės, pvz., TRUE ar FALSE, arba konstantos.
DAX apima šių kategorijų funkcijas: datos ir laiko, informacijos, loginės, matematinės, statistinės, teksto ir laiko informacijos funkcijos. Jei esate susipažinę su "Excel" formulių funkcijomis, daugelis DAX funkcijų atrodys panašios į jus; Tačiau DAX funkcijos yra unikalios tuo, kad:
- DAX funkcija visada nurodo visą stulpelį arba lentelę. Jei norite naudoti tik tam tikras reikšmes iš lentelės arba stulpelio, galite į formulę įtraukti filtrų.
- Jei jums reikia tinkinti skaičiavimus po eilutę, DAX pateikia funkcijų, kurios leidžia naudoti esamą eilutės reikšmę ar susijusią reikšmę kaip argumentą, kad galėtumėte atlikti skaičiavimus, kurie skiriasi priklausomai nuo konteksto. Daugiau apie kontekstą sužinosite vėliau.
- DAX yra daug funkcijų, kurios pateikia lentelę, o ne reikšmę. Lentelė nerodoma, bet naudojama įvesti į kitas funkcijas. Pavyzdžiui, galite gauti lentelę ir tada suskaičiuoti skirtingas jos reikšmes arba apskaičiuoti dinamines sumas visose filtruotose lentelėse ar stulpeliuose.
- DAX apima įvairias laiko informacijos funkcijas. Šios funkcijos leidžia apibrėžti arba pasirinkti datų diapazonus ir pagal juos atlikti dinaminius skaičiavimus. Pavyzdžiui, galite palyginti lygiagrečių laikotarpių sumas.
Kartais sunku žinoti, kurias funkcijas reikia naudoti formulėje. "Power Pivot" ir lentelių modelio dizaino įrankis „SQL Server Data Tools“ apima funkciją Įterpti funkciją – dialogo langą, kuris padeda pasirinkti funkcijas pagal kategoriją ir pateikia trumpus kiekvienos funkcijos aprašus.
Sukurkime naują formulę, kurioje yra funkcija, kurią pasirinksite naudodami funkciją Įterpti funkciją:
Užduotis: Funkcijos įtraukimas į formulę naudojant funkciją Įterpti
- Lentelėje "FactSales" slinkite iki dešiniausio stulpelio, tada stulpelio antraštėje spustelėkite Įtraukti stulpelį.
- Formulės juostoje įveskite lygybės ženklą =.
- Spustelėkite mygtuką Įterpti funkciją .
Atidaromas dialogo langas Funkcijos įterpimas . - Dialogo lange Įterpti funkciją spustelėkite sąrašo lauką Pasirinkite kategoriją . Pagal numatytuosius nustatymus pasirinkta Visos ir visos kategorijos Visos funkcijos yra išvardytos toliau. Tai daugybė funkcijų, todėl norėsite filtruoti funkcijas, kad būtų lengviau rasti norimą funkcijos tipą.
- Naudojant šią formulę reikia grąžinti kai kuriuos duomenis, kurie jau yra kitoje lentelėje. Norėdami tai padaryti, ketinate naudoti filtro kategorijos funkciją. Spustelėkite kategoriją Filtras , tada dalyje Pasirinkite funkciją slinkite žemyn ir dukart spustelėkite funkciją RELATED. Spustelėkite Gerai, kad uždarytumėte dialogo langą Funkcijos įterpimas.
- Naudokite "IntelliSense", kuris padės jums rasti ir pasirinkti stulpelį DimChannel[ChannelName].
- Uždarykite formulę ir paspauskite "Enter".
- Paspaudus "Enter", kad būtų užbaigta formulė, "Power Pivot" lango apačioje esančioje būsenos juostoje rodomas žodis Skaičiuojama. Dabar pamatysite, kad ką tik sukūrėte naują stulpelį lentelėje "FactSales" su kanalo informacija iš "DimChannel" lentelės.
- Pervardykite stulpelį Kanalas.
Jūsų formulė turėtų atrodyti taip: =RELATED(DimChannel[ChannelName])
Ką tik buvote supažindinti su kita labai svarbia DAX funkcija – funkcija RELATED . Funkcija RELATED pateikia reikšmes iš kitos lentelės. Galite naudoti funkciją RELATED, jei yra ryšys tarp lentelės, kurioje šiuo metu esate, ir lentelės, kurioje yra norimos gauti reikšmės. Žinoma, funkcija RELATED turi didžiules galimybes. Tokiu atveju dabar galite įtraukti kiekvieno pardavimo kanalą lentelėje "FactSales". Dabar galite paslėpti "DimChannel" lentelę "PivotTable" laukų sąraše, kad būtų lengviau naršyti ir matyti tik svarbiausią informaciją, kurios jums tikrai reikia. Panašiai kaip anksčiau aprašyta funkcija CALCULATE funkcija RELATED yra labai svarbi ir tikriausiai ją naudosite daug kartų.
Kaip matote, DAX funkcijos gali padėti sukurti labai efektyvias formules. Mes iš tikrųjų palietėme tik funkcijų pagrindus. Tobulėjant DAX įgūdžiams, kursite formules naudodami daug skirtingų funkcijų. Viena iš geriausių vietų norint sužinoti daugiau informacijos apie visas DAX funkcijas yra duomenų analizės išraiškų (DAX) nuoroda.
Funkcijos QuickQuiz
- Ką funkcija visada nurodo?
- Ar formulėje gali būti daugiau nei viena funkcija?
- Kokios kategorijos funkcijas naudotumėte, kad sujungtumėte dvi teksto eilutes į vieną eilutę?
Atsakymai pateikiami šios temos pabaigoje.
Kontekstas
Kontekstas yra viena iš svarbiausių DAX sąvokų, kurią reikia suprasti. DAX yra dviejų tipų kontekstas; Eilutės kontekstas ir filtro kontekstas. Pirmiausia apžvelgsime eilutės kontekstą.
Eilutės kontekstas
Eilutės kontekstą lengviausia suvokti kaip dabartinę eilutę. Pavyzdžiui, atsimenate anksčiau matytą stulpelį Margin calculated between between learn in sintaksė? Formulė =[SalesAmount] - [TotalCost] apskaičiuoja kiekvienos lentelės eilutės reikšmę stulpelyje Marža. Kiekvienos eilutės reikšmės apskaičiuojamos pagal reikšmes, esančias kituose dviejuose stulpeliuose – [SalesAmount] ir [TotalCost] toje pačioje eilutėje. DAX gali apskaičiuoti kiekvienos paraštės stulpelio eilutės reikšmes, nes jame yra kontekstas: Kiekvienai eilutei ji paima stulpelio [TotalCost] reikšmes ir atima jas iš stulpelio [SalesAmount] reikšmių.
Toliau parodytame pažymėtame langelyje reikšmė $49.54 dabartinėje eilutėje buvo apskaičiuota reikšmę $51.54 stulpelyje [TotalCost] iš reikšmės $101.08 stulpelyje [SalesAmount].
Eilutės kontekstas taikomas ne tik apskaičiuojamiesiems stulpeliams. Eilutės kontekstas taip pat taikomas, kai formulėje yra funkcija, kuri taiko filtrus, kad identifikuotų vieną lentelės eilutę. Funkcija natūraliai pritaikys eilutės kontekstą kiekvienai filtruojamos lentelės eilutei. Šio tipo eilučių kontekstas dažniausiai taikomas matams.
Filtro kontekstas
Filtro kontekstą suprasti yra šiek tiek sunkiau nei eilutės kontekstą. Lengviausiai galite suvokti filtro kontekstą kaip: Vienas ar daugiau filtrų, taikomų skaičiuojant, nustatančiam rezultatą arba reikšmę.
Filtro konteksto nėra vietoje eilutės konteksto; Ji taikoma kartu su eilutės kontekstu. Pavyzdžiui, norėdami dar labiau susiaurinti į skaičiavimą įtrauktinų reikšmių skaičių, galite taikyti filtro kontekstą, kuris ne tik nurodo eilutės kontekstą, bet taip pat nurodo tik konkrečią reikšmę (filtrą) tos eilutės kontekste.
Filtro kontekstas lengvai matomas "PivotTable". Pavyzdžiui, kai srityje Reikšmės pridedate bendrą kainą, tada į eilutę arba stulpelius įtraukiate metus ir regioną, apibrėžiate filtro kontekstą, kuris parenka duomenų antrinį rinkinį pagal nurodytus metus ir regioną.
Kodėl filtro kontekstas toks svarbus DAX? Filtro kontekstą lengviausia taikyti į "PivotTable" įtraukiant stulpelio ir eilutės žymas bei duomenų filtrus, tačiau filtro kontekstą galima taikyti ir DAX formulėje apibrėžiant filtrą naudojant funkcijas, pvz., ALL, RELATED, FILTER, CALCULATE, BY RELATIONSHIPS ir pagal kitus matus bei stulpelius. Pavyzdžiui, pažvelkime į šią formulę mate, pavadintame "StoreSales":
Akivaizdu, kad ši formulė yra sudėtingesnė nei kai kurios kitos formulės. Tačiau, norėdami geriau suprasti šią formulę, galime ją suskaidyti, panašiai kaip tai darėme su kitomis formulėmis.
Šioje formulėje yra šie sintaksės elementai:
- Priemonės pavadinimas "StoreSales" ir dvitaškis :.
- Lygybės ženklo operatorius (=) nurodo formulės pradžią.
- Funkcija CALCULATE įvertina reiškinį kaip argumentą kontekste, kurį modifikuoja nurodyti filtrai.
- Skliaustais () supate vieną arba daugiau argumentų.
- Matas [Pardavimas] toje pačioje lentelėje kaip reiškinys. Matas Pardavimas turi formulę: =SUM(FactSales[SalesAmount]).
- Kablelis (,) atskiria kiekvieną filtrą.
- nurodomas stulpelis ir tam tikra reikšmė DimChannel[ChannelName] ="Store", kaip filtras.
Ši formulė užtikrins, kad tik pardavimo vertės, apibrėžtos pardavimo matu, kaip filtras, būtų apskaičiuojamos tik eilutėms stulpelyje DimChannel[ChannelName], kurio vertė yra "Store".
Kaip galite įsivaizduoti, galimybė apibrėžti filtro kontekstą formulėje turi didžiules ir galingas galimybes. Galimybė nurodyti tik konkrečią reikšmę susijusioje lentelėje yra tik vienas iš tokių pavyzdžių. Nesijaudinkite, jei iš karto iki galo nesuprantate konteksto. Kurdami savo formules geriau suprasite kontekstą ir kodėl jis toks svarbus DAX.
Kontekstinė greitoji viktorina
- Kokie yra dviejų tipų kontekstai?
- Kas yra filtro kontekstas?
- Kas yra eilutės kontekstas?
Atsakymai pateikiami šios temos pabaigoje.
Suvestinė
Jau įgiję pagrindinį supratimą apie svarbiausias DAX sąvokas, galite patys pradėti kurti DAX formules, skirtas apskaičiuojamiesiems stulpeliams ir matams. DAX mokytis gali būti šiek tiek sudėtinga, tačiau yra daug išteklių, kuriuos galite naudoti. Keletą kartų perskaitę šią temą ir išbandę kelias savo formules, galite daugiau sužinoti apie kitas DAX koncepcijas ir formules, kurios gali padėti jums išspręsti jūsų verslo problemas. Daug DAX išteklių rasite "Power Pivot" žinyne, "„SQL Server“ Books Online", techniniuose dokumentuose ir "„Microsoft“" bei pirmaujančių BI specialistų tinklaraščiuose. DAX išteklių centro "Wiki" (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) yra puikus būdas pradėti. Duomenų analizės išraiškų (DAX) nuoroda taip pat yra puikus šaltinis. Būtinai įrašykite jį parankiniais.
DAX BI lentelinio modelio techninėje dokumentacijoje, kurią galima atsisiųsti (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409), pateikiama išsamesnė čia įvestų sąvokų ir daugelio kitų išplėstinių koncepcijų ir formulių apžvalga. Šiame techniniame dokumente taip pat naudojama ta pati "Contoso DAX" Formulas.xlsx darbaknygės pavyzdys, kurią jau turite.
Greitosios viktorinos atsakymai
Sintaksė:
- Atidaro funkciją Įterpti funkciją.
- Skliausteliai [].
- =[Vieneto_kaina] - [Vieneto kaina]
Funkcijos:
- Lentelė ir stulpelis.
- Taip. Formulėje gali būti iki 64 įdėtųjų funkcijų.
- Teksto funkcijos.
Kontekstas:
- Eilutės kontekstas ir filtro kontekstas.
- Vienas ar daugiau filtrų skaičiavime, kuris nustato vieną reikšmę.
- Dabartinė eilutė.