Tento blog je v podstate určený pre používateľov, ktorí sú na webe noví a má vám poskytnúť rýchlu a ľahkú prechádzku po formulovanom jazyku s názvom Výrazy na analýzu údajov (DAX) .Ak poznáte funkcie v MS Excel alebo , veľa vzorcov v tomto Základy Power BI DAX článok sa zobrazí podobne ako vy.
Napriek tomu tu uvádzame pojmy, ktoré tvoria neoddeliteľnú súčasť všetkého , po osvojení ktorých by ste mali dobre porozumieť najzákladnejším pojmom v DAX.
- Základy DAX v Power BI: Čo je to DAX?
- Základy Power BI DAX: Ako to funguje?
- Základy Power BI DAX: Vypočítané stĺpce a miery
- Základy DAX v Power BI: Typy funkcií v DAX
- Základy Power BI DAX: Vytvorenie prvého opatrenia
Základy DAX v Power BI: Čo je to DAX?
Začnime teda základmi jazyka Power BI DAX, dobre?
Vytváranie prehľadov pomocou aplikácie Power BI Desktop je celkom jednoduché, ktoré vám okamžite ukáže netradičné informácie.
Čo však v prípade, že potrebujete analyzovať percentuálny podiel rastu vo všetkých kategóriách produktov pre všetky rôzne rozsahy dátumov? Alebo musíte vypočítať ročný rast vašej spoločnosti v porovnaní s trhovými gigantmi?
Učenie jazyka DAX vám pomôže vyťažiť z toho maximum a vyriešiť skutočné obchodné problémy.
Jazyk DAX obsahuje funkcie, operátory a konštanty, ktoré je možné vložiť do formy vzorcov na výpočet hodnôt pomocou údajov, ktoré sú už vo vašom modeli k dispozícii.
Power BI DAX obsahuje knižnicu s viac ako 200 funkciami, operátormi a konštrukciami. Jej knižnica poskytuje obrovskú flexibilitu pri vytváraní opatrení na výpočet výsledkov pre takmer každú potrebu analýzy údajov.
Základy Power BI DAX: Ako to funguje?
Najprv mi dovoľte vysvetliť, ako to funguje.Z väčšej časti budeme svoje chápanie jazyka Power BI DAX koncipovať okolo troch základných konceptov: Syntax , Kontext a Funkcie .
Samozrejme, sú tu aj ďalšie dôležité pojmy, ale porozumenie týmto trom vám poskytne najlepší základ, na ktorom budete budovať svoje schopnosti.
Syntax
The Syntax sa skladá z rôznych zložiek, ktoré tvoria vzorec a ako je napísaný. Ľpozrite sa na tento jednoduchý vzorec jazyka DAX.
Pri pokuse o pochopenie vzorca DAX je často užitočné rozdeliť jednotlivé prvky do jazyka, o ktorom si myslíte a ktorým každý deň hovoríte. Tento vzorec teda obsahuje nasledujúce prvky syntaxe:
I. Celkové predaje je názov miery.
II. The operátor znamienka rovnosti (=) označuje začiatok vzorca.
III. SUM sčíta všetky čísla v stĺpci, Predaj [SalesAmount] .
IV. Sú také zátvorky () ktoré obklopujú výraz obsahujúci jeden alebo viac argumentov. Všetky funkcie vyžadujú aspoň jeden argument.
V. Predaj je tabuľka, na ktorú sa odkazuje.
MY. An argument odovzdá hodnotu funkcii. Odkazovaný stĺpec [Objem predaja] je argument, s ktorým funkcia SUM pozná stĺpec, do ktorého má agregovať SUM.
Jednoducho povedané, môžete si ho prečítať ako, „ Pre opatrenie s názvom Celkový predaj vypočítajte (=) SÚČET hodnôt v stĺpci [SalesAmount] v tabuľke Predaj. “
& pikyEditor Power BI DAX obsahuje funkciu návrhov, ktorá vám pomôže vytvárať syntakticky správne vzorce tým, že vám navrhne správne prvky.
Kontext
Kontext je jedným z najdôležitejších z 3 konceptov DAX. Keď sa hovorí o kontexte, môže to znamenať jeden z dvoch typov Kontext riadku a Kontext filtra .
Používa sa prevažne, keď už hovoríme o Opatrenia , Riadkový kontext sa najľahšie považuje za aktuálny riadok. Platí vždy, keď má vzorec funkciu, ktorá pomocou filtrov identifikuje jeden riadok v tabuľke.
Kontext filtra je o niečo ťažšie pochopiteľné ako Row-Context. Najjednoduchšie si môžete predstaviť kontext filtra ako jeden alebo viac filtrov použitých vo výpočte. TheNamiesto kontextu kontextu neexistuje filter-kontext. Platí to skôr ako to prvé. Pozrite sa na nasledujúci vzorec jazyka DAX.
Tento vzorec obsahuje nasledujúce prvky syntaxe:
I. Názov miery Predaj v obchode .
II. The operátor znamienka rovnosti (=) označuje začiatok vzorca.
III. The VÝPOČET funkcia vyhodnotí výraz ako argument.
IV. Zátvorka () obklopujú výraz obsahujúci jeden alebo viac argumentov.
V. Opatrenie [Celkové predaje] v tej istej tabuľke ako výraz.
MY. TO čiarka (,) oddeľuje prvý argument výrazu od argumentu filtra.
PRICHÁDZAŠ. Plne kvalifikovaný odkazovaný stĺpec, Kanál [ChannelName] je náš riadkový kontext. Každý riadok v tomto stĺpci určuje kanál, obchod, online atď.
VIII. Konkrétna hodnota, Uložiť sa používa ako filter. Toto je náš kontext filtra.
Tento vzorec zaisťuje že miera celkového predaja sa počíta iba pre riadky v stĺpci Channel [ChannelName] s hodnotou „Store“ ako filter.
Funkcie
Funkcie sú preddefinované, štruktúrované a usporiadané vzorce. Vykonávajú výpočty pomocou argumenty prešlo na nich. Týmito argumentmi môžu byť čísla, text, logické hodnoty alebo iné funkcie.
Základy Power BI DAX: Vypočítané stĺpce a miery
V tomto blogu sa zameriame na vzorce Power BI DAX používané pri výpočtoch v Opatrenia a Vypočítané stĺpce .
Vypočítané stĺpce
Keď v aplikácii Power BI Desktop vytvoríte údajový model, môžete tabuľku rozšíriť vytvorením nových stĺpcov. Obsah stĺpcov je definovaný výrazom DAX, ktorý je hodnotený riadok po riadku alebo v kontexte aktuálneho riadku v tejto tabuľke.
V dátových modeloch pre DAX však všetky vypočítané stĺpce zaberajú miesto v pamäti a počítajú sa počas spracovania tabuľky.
Toto správanie je užitočné, pretože vedie k lepšej používateľskej skúsenosti, ale využíva vzácnu pamäť RAM, a preto je pri výrobe zlým zvykom, pretože každý medzivýpočet je uložený v pamäti RAM a stráca drahocenný priestor.
Opatrenia
Existuje ďalší spôsob definovania výpočtov v modeli DAX, ktorý je užitočný, ak potrebujete pracovať s agregovanými hodnotami namiesto s riadkami po riadkoch. Tieto výpočty sú mierami. Jednou z požiadaviek jazyka DAX je, že opatrenie je potrebné definovať v tabuľke. Toto opatrenie však v skutočnosti nepatrí do tabuľky. Meradlo teda môžete presúvať z jednej tabuľky do druhej bez straty jej funkčnosti.
Vypočítané stĺpce vs miery
Miery aj vypočítané stĺpce používajú výrazy DAX. Rozdiel predstavuje kontext hodnotenia. Miera sa hodnotí v kontexte bunky vyhodnotenej v zostave alebo v dotaze DAX, zatiaľ čo vypočítaný stĺpec sa počíta na úrovni riadku v tabuľke, ku ktorej patrí.
Aj keď vyzerajú podobne, medzi vypočítanými stĺpcami a mierami je veľký rozdiel. Hodnota vypočítaného stĺpca sa počíta počas obnovovania údajov a používa aktuálny riadok ako kontext, ktorý nezávisí od interakcie používateľa v prehľade.
Preto musíte definovať vypočítaný stĺpec, kedykoľvek budete chcieť urobiť nasledovné
- Vložte vypočítané výsledky do výrezu alebo si pozrite výsledky v riadkoch alebo stĺpcoch v kontingenčnej tabuľke (na rozdiel od oblasti hodnôt) alebo v osiach grafu alebo použite výsledok ako podmienku filtra v dotaze DAX.
- Definujte výraz, ktorý je striktne viazaný na aktuálny riadok. Napríklad Cena * Množstvo nemôže pracovať na priemere alebo na súčte dvoch stĺpcov.
- Kategorizujte text alebo čísla. Napríklad rozsah hodnôt pre mieru.
Meradlo funguje na agregáciách údajov definovaných aktuálnym kontextom, čo závisí od filtra použitého v prehľade - napríklad oddeľovač, výber riadkov a stĺpcov v kontingenčnej tabuľke alebo osi a filtre použité v grafe.
Takže musíte definovať mieru, kedykoľvek chcete zobraziť výsledné hodnoty výpočtu, ktoré odrážajú výber používateľa, ako je napr
- Keď vypočítate percento zisku z určitého výberu údajov.
- Pri výpočte pomerov produktu v porovnaní so všetkými produktmi, ale pri zachovaní filtra podľa roku aj regiónu.
Základy Power BI DAX: Typy funkcií v jazyku DAX
1. Súhrnné funkcie
MIN
Táto funkcia DAX returnuje minimálnu číselnú hodnotu v stĺpci alebo medzi dvoma skalárnymi výrazmi.
Syntax
MIN()
Príklad
=MIN([ResellerMargin])
MINA
Táto funkcia DAX rvráti minimálnu hodnotu v stĺpci vrátane akýchkoľvek logických hodnôt a čísel reprezentovaných ako text.
Syntax
MINA()
Príklad
=MINA(([Poštové smerovacie číslo])
MINX
Táto funkcia DAX sa vrátiminimálna číselná hodnota, ktorá je výsledkom vyhodnotenia výrazu pre každý riadok tabuľky.
Syntax
Príklad Táto funkcia DAX rvráti maximálnu hodnotu v stĺpci vrátane akýchkoľvek logických hodnôt a čísel reprezentovaných ako text. Syntax Príklad Táto funkcia DAX rvráti maximálnu hodnotu v stĺpci vrátane akýchkoľvek logických hodnôt a čísel reprezentovaných ako text. Syntax Príklad Táto funkcia DAX sa vrátimaximálna číselná hodnota, ktorá je výsledkom vyhodnotenia výrazu pre každý riadok tabuľky. Syntax Príklad Táto funkcia DAX adds všetky čísla v stĺpci. Syntax Príklad Táto funkcia DAX returnetický aritmetický priemer hodnôt v stĺpci. Syntax Príklad Táto funkcia DAX returnuje súčet výrazu vyhodnoteného pre každý riadok v tabuľke. Syntax Príklad Táto funkcia DAX cvypočítava aritmetický priemer množiny výrazov hodnotených nad tabuľkou. Syntax Príklad Toto je funkcia DAX, ktorá sa používa na vrátenie zreteľného počtu položiek v stĺpci. Pokiaľ teda existuje viac čísel tej istej položky, táto funkcia ju bude počítať ako jednu položku. Syntax Príklad Toto je funkcia DAX, ktorá sa používa na vrátenie počtu položiek v stĺpci. Pokiaľ teda existuje viac čísel tej istej položky, táto funkcia ju bude počítať ako samostatné položky a nie ako jednu položku. Syntax Príklady Toto je funkcia DAX, ktorá sa používa na vrátenie počtu položiek v stĺpci, ktorý nie je prázdny. Syntax Príklad Toto je funkcia DAX, ktorápočíta počet riadkov v zadanej tabuľke alebo v tabuľke definovanej výrazom. Syntax Príklad Toto je funkcia DAX, ktorápočíta počet prázdnych buniek v stĺpci. Syntax Príklad Táto funkcia DAX rvráti určený dátum vo formáte Date-Time. Syntax Príklad Táto funkcia DAX rvráti určenú hodinu ako číslo od 0 do 23 (12:00 - 23:00). Syntax Príklad Táto funkcia DAX rvráti aktuálny dátum. Syntax Táto funkcia DAX rvráti aktuálny dátum a čas vo formáte Date-Time. Syntax Táto funkcia DAX rvráti dátum vo formáte Date-Time posledného dňa v mesiaci, pred alebo po zadanom počte mesiacov. Syntax Príklad Táto funkcia DAX rvráti absolútnu hodnotu daného čísla. Syntax Príklad Táto funkcia DAX rvráti hodnotu e zvýšenú na moc daného čísla. Syntax Príklad Táto funkcia DAX rvráti faktoriál čísla. Syntax Príklad Táto funkcia DAX rvráti prirodzený protokol daného čísla. Syntax Príklad Táto funkcia DAX rvráti záznam so základom daného čísla. Syntax Príklad Táto funkcia DAX rvráti hodnotu Pi. Syntax Táto funkcia DAX rvráti hodnotu prvého argumentu zvýšenú na hodnotu druhého argumentu. Syntax Príklad Táto funkcia DAX vykonáva delenie return celočíselnú časť kvocientu. Syntax Príklad Táto funkcia DAX vracia znamienko daného čísla. Syntax Príklad Táto funkcia DAX rvráti druhú odmocninu daného čísla. Syntax Príklad Táto funkcia DAX vykonáva logické AND (spojenie) v dvoch výrazoch. Aby AND platilo, musia byť splnené obidve zadané podmienky. Syntax Príklad Táto funkcia DAX vykonáva logické ALEBO (disjunkciu) v dvoch výrazoch. Aby OR platilo, musí byť splnená ktorákoľvek z dvoch uvedených podmienok. Syntax Príklad Táto funkcia DAX vykonáva logické NOT (negácia) pri danom výraze. Syntax Príklad Táto funkcia DAX testuje sériu vstupov pre ten, ktorý spĺňa podmienku uvedenú v argumente. Syntax Príklad Táto funkcia DAX naprocení výraz a vráti zadanú hodnotu, ak výraz vráti chybu. Syntax Príklad Táto funkcia DAXvráti TRUE alebo FALSE pocsakra, či je hodnota prázdna. Syntax Príklad Táto funkcia DAXvráti TRUE alebo FALSE pocsotva, či je hodnota číselná. Syntax Príklad Táto funkcia DAXvráti TRUE alebo FALSE pocsakra, či je hodnota text. Syntax Príklad Táto funkcia DAXvráti TRUE alebo FALSE pocsotva, či je hodnota netextová. Syntax Príklad Táto funkcia DAXvráti TRUE alebo FALSE pocsotva, či je hodnota chybou. Syntax Príklad Táto funkcia DAX jspojí dva textové reťazce do jedného. Syntax Príklad Táto funkcia DAXvýsledok výrazu vyhodnoteného pre každý riadok v tabuľke. Syntax Príklad Táto funkcia DAX rounds číslo na zadaný počet desatinných miest a vráti výsledok ako text. Syntax Príklad Táto funkcia DAXnahradí časť textového reťazca iným textovým reťazcom na základe zadaného počtu znakov. Syntax Príklad Táto funkcia DAX returns počet znakov, pri ktorých je prvý textový reťazec nájdený ako prvý. Syntax Príklad Táto funkcia DAX sa vrátitextový reťazec napísaný veľkými písmenami. Syntax Príklad Predpoklad: Budete musieť otvoriť tento daný súbor Power BI Desktop . Pretože predpokladám, že to bude vaše prvé, napíšem tento kúsok veľmi podrobne, aby ste ho mohli sledovať. V zozname polí Zobraziť prehľad , kliknite pravým tlačidlom myši na ikonu Predaj stôl, za ktorým nasleduje tabuľka Nové opatrenie . Vymeniť Zmerajte zadaním názvu nového taktu Predchádzajúce štvrťročné tržby, v Formula Bar . V tomto vzorci chcete použiť VÝPOČET funkcia. Za znak rovnosti teda zadajte niekoľko prvých písmen CAL a potom dvakrát kliknite na funkciu, ktorú chcete použiť. Funkcia CALCULATE obsahuje najmenej dva argumenty. Prvý je výraz, ktorý sa má vyhodnotiť, a druhý je a Filtrovať . Po otvorení zátvorky ( pre VÝPOČET funkcia, typ SUM nasledovaná ďalšou úvodnou zátvorkou ( predložiť argument SUM funkcia. Začnite písať Soľ a potom vyberte Predaj [SalesAmount] , po ktorej nasleduje záverečná zátvorka ) . Toto je prvý argument pre náš výraz VÝPOČET funkcia. Zadajte a čiarka (,) nasleduje medzera na určenie prvého filtra a potom zadajte PREVIOUSQUARTER . Toto bude náš filter. Použijete PREVIOUSQUARTER funkcia časovej inteligencie na filtrovanie SUM výsledky za predchádzajúci štvrťrok. Po úvodnej zátvorke ( pre funkciu PREVIOUSQUARTER napíš Kalendár [DateKey] . The PREVIOUSQUARTER funkcia má jeden argument, stĺpec obsahujúci súvislý rozsah dátumov. V našom prípade to je DateKey stĺpec v tabuľke Kalendár. Uistite sa, že oba argumenty, ktoré sa prenášajú do PREVIOUSQUARTER aj do funkcie CALCULATE, sú uzavreté zadaním dvoch uzavretých zátvoriek )) . Váš vzorec by teraz mal vyzerať asi takto Kliknite na začiarknutie na paneli vzorcov alebo stlačte kláves Enter na potvrdenie vzorca. Keď to pridáte do svojho modelu, voila! Práve ste vytvorili mieru pomocou jazyka DAX a nie je to vôbec jednoduché. Tento vzorec je taký vypočítajte celkový predaj za predchádzajúci štvrťrok v závislosti od filtrov použitých v prehľade. Takže, ak by sme to museli dať Objem predaja a naše nové Predchádzajúci štvrťročný predaj zmerajte v grafe a potom pridajte Rok a QuarterOfYear ako Krájače, dostali by sme niečo ako nasledujúce Teraz, keď máte základné znalosti o konceptoch v Power BI DAX, môžete začať sami vytvárať vzorce DAX pre miery. Môže to byť skutočne trochu zložité naučiť sa, aleDAX existuje už niekoľko rokov ana webe je k dispozícii veľa zdrojov. Po prečítaní tohto blogu a malom experimentovaní sa môžete naučiť nájsť podnikové riešenia prostredníctvom jazyka Power BI DAX.
MINX(
,)
=MINX(FILTER(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Nákladná doprava] + InternetSales [TaxAmt])
MAX
MAX()
=MAX([ResellerMargin])
MAX
MAX()
=MAX(([Poštové smerovacie číslo])
MAXX
MAXX(
,)
=MAXX(FILTER(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Nákladná doprava] + InternetSales [TaxAmt])
SUM
SUM()
=SUM(Predaj [kancelária])
PRIEMER
PRIEMERNÝ ()
=PRIEMER(InternetSales [ExtendedSalesAmount])
sumx
sumx(
,)
=sumx(FILTER(InternetSales, InternetSales [SalesTerritoryID] =5), [Nákladná doprava])
AVERAGEX
AVERAGEX(
,)
=AVERAGEX(InternetSales, InternetSales [Nákladná doprava] + InternetSales [TaxAmt])
2. Funkcie počítania
DISTINCTCOUNT
DISTINCTCOUNT()
=DISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])
COUNT
COUNT()
=COUNT([Dátum odoslania])
COUNTA
COUNTA()
=COUNTA(„Predajca“ [Telefón])
COUNTROWS
COUNTROWS(
)
príkazy riadenia toku v jave
=COUNTROWS(„Objednávky“)
COUNTBLANK
COUNTBLANK()
=COUNTBLANK(Predajca [BankName])
3. Funkcie dátumu a času
DÁTUM
DÁTUM(<rok>,<mesiac>,<deň>)
=DÁTUM(2019,12, 17)
HODINA
HODINA()
=HODINA(„Objednávky“ [TransactionTime])
DNES
DNES()
TERAZ
TERAZ()
EOMONTH
EOMONTH(,)
=EOMONTH(„3. marca 2008“,1.5)
4. Matematické funkcie
SEKCIA
SEKCIA()
=ABS ([DealerPrice] - [ListPrice])
EXP
EXP()
= EXP ([napájanie])
FAKT
FAKT()
= FAKT ([Hodnoty])
LN
LN()
= LN ([hodnoty])
LOG
LOG(,)
Všetky nasledujúce výsledky vrátia rovnaký výsledok, 2.
= LOG (100,10)
= LOG (100)
= LOG10 (100)
PI
PI()
MOC
MOC(,<moc>)
= VÝKON (5,2)
KVOTIENT
KVOTIENT(,)
= QUOTIENT (5,2)
PODPIS
PODPIS()
= ZNAČKA (([[Predajná cena] - [Nákladová cena]))
SQRT
SQRT()
= SQRT (25)
5. Logické funkcie
A
A(,)
= AK (AND (10>9, -10 <-jeden),„Všetko pravda“,„Jeden alebo viac nepravdivých“
Pretože obe podmienky odovzdané ako argumenty do funkcie AND sú pravdivé, vzorec vráti hodnotu „Všetko pravé“.
ALEBO
ALEBO(,)
= AK (ALEBO (10>9, -10> -jeden),„Pravda“,„Nepravda“
Pretože jedna z podmienok odovzdaná ako argumenty do funkcie OR je pravdivá, vráti vzorec hodnotu „True“.
NIE
NIE()
= NIE ([CalculatedColumn1])
Pre každý riadok vo Vypočítanom stĺpci1 funkcia NOT vráti logický opak danej hodnoty.
AK
AK(logický_test> ,, hodnota_k_false)
= AK ([hovory]<200,„nízka“, IF ([hovory]<300,„stredný“,„vysoký“))
IFERROR
IFERROR(hodnotu, value_if_error)
= IFERROR (25/0,9999)
6. Informačné funkcie
ISBLANK
ISBLANK(<hodnotu>)
= IF (ISBLANK ('CalculatedMeasures' [PreviousYearTotalSales]), BLANK (), ('CalculatedMeasures' [Total Sales] - 'CalculatedMeasures' [PreviousYearTotalSales]) / 'CalculatedMeasures' [PreviousYearTotalSales])
ČÍSLO
ČÍSLO(<hodnotu>)
= AK (ČÍSLO (0),„Je číslo“,„Nie je to číslo“)
ISTEXT
ISTEXT(<hodnotu>)
= AK (ISTEXT ('text'),„Je text“,„Nie je textové“)
ISNONTEXT
ISNONTEXT(<hodnotu>)
= AK (ISNONTEXT ('text'),„Nie je textové“,„Je text“)
ISERROR
ISERROE(<hodnotu>)
= IF (ISERROR (SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD])), BLANK (), SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' []])
7. Textové funkcie
KONCATENÁT
KONCATENÁT(,)
= CONCATENATE ('Hello', 'World')
CONCATENATEX
CONCATENATEX(
,, [oddeľovač])
= CONCATENATEX (zamestnanci, [meno] a „„ a [priezvisko], “,“)
OPRAVENÉ
OPRAVENÉ(,,)
= OPRAVENÉ ([PctCost],3,jeden)
VYMENIŤ
VYMENIŤ(,,,)
= REPLACE ('Nové produkty' [Kód produktu],jeden,2,„OB“)
VYHĽADÁVANIE
VYHĽADÁVANIE(, [, [] [,]])
= HĽADAŤ ('n',„tlačiareň“)
Vzorec vráti 4, pretože „n“ je štvrtý znak v slove „tlačiareň“.
HORNÁ
HORNÁ()
= HORNÉ (['Nové produkty' [Kód produktu])
Základy Power BI DAX: Vytvorenie prvého opatrenia
Predchádzajúce štvrťročné tržby = VÝPOČET (SUMA (tržby [SalesAmount]), PREDCHÁDZAJÚCI ŠTART (kalendár [DateKey])) príklad vyvolania vzdialenej metódy v jave