Ten blog jest zasadniczo przeznaczony dla nowych użytkowników i ma na celu zapewnienie szybkiego i łatwego przejścia przez język formuł zwany Wyrażenia analizy danych (DAX) .Jeśli znasz funkcje w MS Excel lub , wiele formuł w tym Podstawy Power BI DAX artykuł będzie podobny do Ciebie.
Powiedziawszy to, oto pojęcia, które stanowią integralną część wszystkiego , po nauczeniu się, które powinieneś mieć dobre zrozumienie najbardziej podstawowych pojęć języka DAX.
- Podstawy Power BI DAX: co to jest język DAX?
- Podstawy Power BI DAX: jak to działa?
- Podstawy języka Power BI DAX: obliczone kolumny i miary
- Podstawy Power BI DAX: typy funkcji w języku DAX
- Podstawy Power BI DAX: tworzenie pierwszej miary
Podstawy Power BI DAX: co to jest język DAX?
Zacznijmy więc od podstaw Power BI DAX, dobrze?
Tworzenie raportów za pomocą programu Power BI Desktop jest dość łatwe, które od razu przedstawiają cenne informacje.
Ale co, jeśli musisz przeanalizować procent wzrostu we wszystkich kategoriach produktów, dla wszystkich różnych zakresów dat? A może musisz obliczyć roczny wzrost swojej firmy w porównaniu z gigantami rynkowymi?
Nauka języka DAX pomoże Ci w pełni wykorzystać możliwości i rozwiązuj rzeczywiste problemy biznesowe.
Język DAX składa się z funkcji, operatorów i stałych, które można umieścić w postaci formuł w celu obliczenia wartości przy użyciu danych już obecnych w modelu.
Power BI DAX zawiera bibliotekę ponad 200 funkcji, operatorów i konstrukcji. Jego biblioteka zapewnia ogromną elastyczność w tworzeniu miar do obliczania wyników dla niemal każdej potrzeby analizy danych.
Podstawy Power BI DAX: jak to działa?
Przede wszystkim pozwól mi wyjaśnić, jak to działa.W większości będziemy opierać nasze rozumienie Power BI DAX wokół trzech podstawowych pojęć: Składnia , Kontekst , i Funkcje .
Oczywiście są tu inne ważne koncepcje, ale zrozumienie tych trzech zapewni najlepszą podstawę, na której będziesz budować swoje umiejętności.
Składnia
Plik Składnia składa się z różnych elementów składających się na formułę i sposobu jej zapisania. Look przy tej prostej formule języka DAX.
Podczas próby zrozumienia formuły języka DAX często pomocne jest rozbicie każdego z elementów na język, który myślisz i którym mówisz na co dzień. Tak więc ta formuła zawiera następujące elementy składni:
JA. Całkowita sprzedaż to nazwa miary.
II. Plik operator znaku równości (=) wskazuje początek formuły.
III. SUMA sumuje wszystkie liczby w kolumnie, Sprzedaż [SalesAmount] .
IV. Są takie zdanie wtrącone () otaczające wyrażenie zawierające co najmniej jeden argument. Wszystkie funkcje wymagają co najmniej jednego argumentu.
V. Obroty to tabela, do której się odwołuje
MY. Na argument przekazuje wartość do funkcji. Kolumna, do której się odwołuje [Suma sprzedaży] jest argumentem, za pomocą którego funkcja SUMA zna kolumnę, w której ma zagregować SUMA.
Mówiąc najprościej, możesz to przeczytać jako: ' W przypadku miary o nazwie Total Sales obliczyć (=) SUMĘ wartości w kolumnie [SalesAmount] w tabeli Sales ”.
&pikEdytor Power BI DAX zawiera funkcję sugestii, która pomaga tworzyć poprawne składniowo formuły, sugerując odpowiednie elementy.
Kontekst
Kontekst jest jedną z najważniejszych koncepcji języka DAX. Kiedy mówi się o kontekście, może to odnosić się do jednego z dwóch typów Kontekst wiersza i Kontekst filtru .
Używany głównie, gdy mowa o Środki , the Kontekst wiersza jest najłatwiejszy do pomyślenia jako bieżący wiersz. Ma zastosowanie zawsze, gdy formuła ma funkcję stosującą filtry w celu zidentyfikowania pojedynczego wiersza w tabeli.
Kontekst filtru jest trochę trudniejszy do zrozumienia niż kontekst wiersza. Najłatwiej można sobie wyobrazić kontekst filtru jako jeden lub więcej filtrów zastosowanych w obliczeniach. PlikKontekst filtru nie istnieje zamiast tego w kontekście wiersza. Raczej dotyczy to pierwszego. Spójrz na następującą formułę języka DAX.
Ta formuła zawiera następujące elementy składni:
JA. Nazwa miary Sprzedaż w sklepie .
II. Plik operator znaku równości (=) wskazuje początek formuły.
III. Plik OBLICZ funkcja oblicza wyrażenie jako argument.
IV. Nawias () otoczyć wyrażenie zawierające jeden lub więcej argumentów.
V. Miara [Całkowita sprzedaż] w tej samej tabeli co wyrażenie.
MY. DO przecinek (,) oddziela pierwszy argument wyrażenia od argumentu filtru.
IDZIESZ. W pełni kwalifikowana kolumna odniesienia, Kanał [ChannelName] to nasz kontekst wiersza. Każdy wiersz w tej kolumnie określa kanał, Sklep, Online itd.
VIII. Szczególna wartość, Sklep jest używany jako filtr. To jest nasz kontekst filtra.
Ta formuła zapewnia że miara łącznej sprzedaży jest obliczana tylko dla wierszy w kolumnie Channel [ChannelName] z wartością „Store” jako filtrem.
Funkcje
Funkcje są predefiniowanymi, ustrukturyzowanymi i uporządkowanymi formułami. Wykonują obliczenia za pomocą argumenty przekazane im. Te argumenty mogą być liczbami, tekstem, wartościami logicznymi lub innymi funkcjami.
Podstawy Power BI DAX: Obliczone kolumny i miary
Na tym blogu skupimy się na formułach Power BI DAX używanych w obliczeniach w Środki i Kolumny obliczone .
Kolumny obliczone
Tworząc model danych w programie Power BI Desktop, możesz rozszerzyć tabelę, tworząc nowe kolumny. Zawartość kolumn jest definiowana przez wyrażenie języka DAX oceniane wiersz po wierszu lub w kontekście bieżącego wiersza w tej tabeli.
Jednak w modelach danych dla języka DAX wszystkie kolumny obliczeniowe zajmują miejsce w pamięci i są obliczane podczas przetwarzania tabeli.
Takie zachowanie jest pomocne w zapewnianiu lepszych wrażeń użytkownika, ale wykorzystuje cenną pamięć RAM, a zatem jest złym nawykiem w produkcji, ponieważ każde pośrednie obliczenie jest przechowywane w pamięci RAM i marnuje cenną przestrzeń.
Środki
Istnieje inny sposób definiowania obliczeń w modelu języka DAX, przydatny w przypadku, gdy trzeba operować na wartościach zagregowanych, a nie na wierszach. Te obliczenia są miarami. Jednym z wymagań języka DAX jest zdefiniowanie miary w tabeli. Jednak środek tak naprawdę nie należy do tabeli. Można więc przenosić miarę z jednej tabeli do drugiej bez utraty jej funkcjonalności.
Kolumny obliczone a miary
Miary i kolumny obliczeniowe używają wyrażeń języka DAX. Różnica polega na kontekście ewaluacji. Miara jest oceniana w kontekście komórki ocenianej w raporcie lub w zapytaniu języka DAX, podczas gdy kolumna obliczeniowa jest obliczana na poziomie wiersza w tabeli, do której należy.
Nawet jeśli wyglądają podobnie, istnieje duża różnica między kolumnami obliczeniowymi a miarami. Wartość kolumny obliczeniowej jest obliczana podczas odświeżania danych i używa bieżącego wiersza jako kontekstu, który nie zależy od interakcji użytkownika w raporcie.
W związku z tym musisz zdefiniować kolumnę obliczeniową, gdy chcesz wykonać następujące czynności
- Umieść obliczone wyniki we fragmentatorze lub wyświetl wyniki w wierszach lub kolumnach w tabeli przestawnej (w przeciwieństwie do obszaru wartości) lub na osiach wykresu albo użyj wyniku jako warunku filtru w zapytaniu języka DAX.
- Zdefiniuj wyrażenie, które jest ściśle powiązane z bieżącym wierszem. Na przykład Cena * Ilość nie może działać na średniej ani na sumie dwóch kolumn.
- Kategoryzuj tekst lub liczby. Na przykład zakres wartości dla miary.
Miara działa na agregacjach danych zdefiniowanych przez bieżący kontekst, który zależy od filtru zastosowanego w raporcie - takiego jak fragmentator, wiersze i kolumny w tabeli przestawnej lub osie i filtry zastosowane do wykresu.
Dlatego musisz zdefiniować miarę, gdy chcesz wyświetlić wynikowe wartości obliczeń, które odzwierciedlają wybory użytkownika, takie jak
- Kiedy obliczasz procent zysku na określonym wyborze danych.
- Podczas obliczania stosunku produktu do wszystkich produktów, ale zachowując filtr zarówno według roku, jak i regionu.
Podstawy Power BI DAX: Typy funkcji w języku DAX
1. Funkcje agregujące
MIN
Ta funkcja języka DAX rezwraca minimalną wartość liczbową w kolumnie lub między dwoma wyrażeniami skalarnymi.
Składnia
MIN()
Przykład
=MIN([ResellerMargin])
MINA
Ta funkcja języka DAX rzwraca minimalną wartość w kolumnie, w tym wszelkie wartości logiczne i liczby reprezentowane jako tekst.
Składnia
MINA()
Przykład
=MINA(([Kod pocztowy])
FIGLARKA
Ta funkcja języka DAX zwracaminimalna wartość liczbowa wynikająca z oceny wyrażenia dla każdego wiersza tabeli.
Składnia
Przykład Ta funkcja języka DAX rezwraca maksymalną wartość w kolumnie, w tym wszelkie wartości logiczne i liczby reprezentowane jako tekst. Składnia Przykład Ta funkcja języka DAX rezwraca maksymalną wartość w kolumnie, w tym wszelkie wartości logiczne i liczby reprezentowane jako tekst. Składnia Przykład Ta funkcja języka DAX zwracamaksymalna wartość liczbowa wynikająca z oceny wyrażenia dla każdego wiersza tabeli. Składnia Przykład Ta funkcja języka DAX adds wszystkie liczby w kolumnie. Składnia Przykład Ta funkcja języka DAX rzwraca średnią arytmetyczną wartości w kolumnie. Składnia Przykład Ta funkcja języka DAX ret zwraca sumę wyrażenia obliczonego dla każdego wiersza w tabeli. Składnia Przykład Ta funkcja języka DAX coblicza średnią arytmetyczną zestawu wyrażeń obliczanych na podstawie tabeli. Składnia Przykład Jest to funkcja języka DAX używana do zwracania odrębnej liczby elementów w kolumnie. Tak więc, jeśli istnieje wiele numerów tego samego elementu, ta funkcja policzy go jako pojedynczy element. Składnia Przykład To jest funkcja języka DAX używana do zwracania liczby elementów w kolumnie. Tak więc, jeśli istnieje wiele numerów tego samego elementu, ta funkcja policzy go jako oddzielne elementy, a nie jako pojedynczy element. Składnia Przykłady To jest funkcja języka DAX używana do zwracania liczby elementów w kolumnie, która nie jest pusta. Składnia Przykład To jest funkcja języka DAXzlicza wiersze w określonej tabeli lub w tabeli zdefiniowanej przez wyrażenie. Składnia Przykład To jest funkcja języka DAXliczy liczbę pustych komórek w kolumnie. Składnia Przykład Ta funkcja języka DAX retwraca określoną datę w formacie data-godzina. Składnia Przykład Ta funkcja języka DAX rzwraca określoną godzinę jako liczbę od 0 do 23 (od 12:00 do 23:00). Składnia Przykład Ta funkcja języka DAX rzwraca aktualną datę. Składnia Ta funkcja języka DAX retwraca bieżącą datę i godzinę w formacie Data-Czas. Składnia Ta funkcja języka DAX ret zwraca datę w formacie Data-Czas ostatniego dnia miesiąca, przed lub po określonej liczbie miesięcy. Składnia Przykład Ta funkcja języka DAX rzwraca wartość bezwzględną podanej liczby. Składnia Przykład Ta funkcja języka DAX rzwraca wartość e podniesioną do potęgi podanej liczby. Składnia Przykład Ta funkcja języka DAX rodwraca silnię liczby. Składnia Przykład Ta funkcja języka DAX rzwraca logarytm naturalny podanej liczby. Składnia Przykład Ta funkcja języka DAX rzwraca dziennik o podstawę podanej liczby. Składnia Przykład Ta funkcja języka DAX rzwraca wartość Pi. Składnia Ta funkcja języka DAX ret zwraca wartość pierwszego podniesionego argumentu do potęgi drugiego argumentu. Składnia Przykład Ta funkcja języka DAX wykonuje dzielenie ret zwraca część całkowitą ilorazu. Składnia Przykład Ta funkcja języka DAX zwraca znak podanej liczby. Składnia Przykład Ta funkcja języka DAX rzwraca pierwiastek kwadratowy z podanej liczby. Składnia Przykład Ta funkcja języka DAX wykonuje logiczne AND (koniunkcja) na dwóch wyrażeniach. Aby AND zwrócił prawdę, oba podane warunki muszą być spełnione. Składnia Przykład Ta funkcja języka DAX wykonuje logiczne LUB (rozłączenie) na dwóch wyrażeniach. Aby OR zwrócił prawdę, musi być spełniony jeden z dwóch określonych warunków. Składnia Przykład Ta funkcja języka DAX wykonuje logiczne NIE (negację) dla danego wyrażenia. Składnia Przykład Ta funkcja języka DAX testuje serię danych wejściowych pod kątem tego, który spełnia warunek określony w argumencie. Składnia Przykład Ta funkcja języka DAX, npwycenia wyrażenie i zwraca określoną wartość, jeśli wyrażenie zwróci błąd. Składnia Przykład Ta funkcja języka DAXzwraca TRUE lub FALSE podosprawdzanie, czy wartość jest pusta. Składnia Przykład Ta funkcja języka DAXzwraca TRUE lub FALSE podosprawdzanie, czy wartość jest numeryczna. Składnia Przykład Ta funkcja języka DAXzwraca TRUE lub FALSE podosprawdzanie, czy wartość jest tekstem. Składnia Przykład Ta funkcja języka DAXzwraca TRUE lub FALSE podosprawdzanie, czy wartość nie jest tekstem. Składnia Przykład Ta funkcja języka DAXzwraca TRUE lub FALSE podosprawdzanie, czy wartość jest błędem. Składnia Przykład Ta funkcja języka DAX jłączy dwa ciągi tekstowe w jeden. Składnia Przykład Ta funkcja języka DAXwynik wyrażenia obliczonego dla każdego wiersza w tabeli. Składnia Przykład Ta funkcja języka DAX rłączy liczbę z określoną liczbą miejsc po przecinku i zwraca wynik jako tekst. Składnia Przykład Ta funkcja języka DAXzastępuje część ciągu tekstowego, na podstawie określonej liczby znaków, innym ciągiem tekstowym. Składnia Przykład Ta funkcja języka DAX ret zwraca liczbę znaków, przy których określony ciąg tekstowy został znaleziony po raz pierwszy. Składnia Przykład Ta funkcja języka DAX zwracaciąg tekstowy składający się z wszystkich wielkich liter. Składnia Przykład Warunek wstępny: Musisz otworzyć ten dany plik programu Power BI Desktop . Ponieważ zakładam, że będzie to Twój pierwszy krok, napiszę ten fragment bardzo szczegółowo, abyś mógł dalej go śledzić. Na liście pól Widok raportu , kliknij prawym przyciskiem myszy plik Obroty tabela, po której następuje New Measure . Zastąpić Pomiar wpisując nazwę nowej miary Sprzedaż w poprzednim kwartale, w Pasek Formuły . W tej formule chcesz użyć OBLICZ funkcjonować. Tak więc po znaku równości wpisz kilka pierwszych liter CAL , a następnie kliknij dwukrotnie funkcję, której chcesz użyć. Funkcja CALCULATE ma co najmniej dwa argumenty. Pierwsza to wyrażenie, które ma zostać ocenione, a druga to Filtr . Po otwarciu nawias ( dla OBLICZ funkcja, typ SUMA po którym następuje kolejny nawias otwierający ( przekazać argument do SUMA funkcjonować. Zacznij pisać Sól , a następnie wybierz Sprzedaż [SalesAmount] , po którym następuje nawias zamykający ) . To jest pierwszy argument wyrażający nasze OBLICZ funkcjonować. Wpisz a przecinek (,) po którym następuje spacja, aby określić pierwszy filtr, a następnie wpisz PREVIOUSQUARTER . To będzie nasz filtr. Będziesz używać PREVIOUSQUARTER funkcja analizy czasowej do filtrowania SUMA wyników z poprzedniego kwartału. Po nawiasie otwierającym ( dla funkcji PREVIOUSQUARTER wpisz Kalendarz [DateKey] . Plik PREVIOUSQUARTER funkcja ma jeden argument, kolumnę zawierającą ciągły zakres dat. W naszym przypadku to jest DateKey kolumna w tabeli kalendarza. Upewnij się, że oba argumenty przekazywane do PREVIOUSQUARTER i funkcja CALCULATE są zamknięte, wpisując dwa zamknięte nawiasy )) . Twoja formuła powinna teraz wyglądać następująco Kliknij znacznik wyboru na pasku formuły lub naciśnij klawisz Enter, aby sprawdzić poprawność formuły. Po dodaniu tego do modelu, voila! Właśnie utworzyłeś miarę za pomocą języka DAX i nie jest to łatwa. To, co robi ta formuła, to obliczyć łączną sprzedaż w poprzednim kwartale, w zależności od filtrów zastosowanych w raporcie. Tak więc, gdybyśmy musieli umieścić Suma sprzedaży i nasz nowy Sprzedaż w poprzednim kwartale zmierzyć na wykresie, a następnie dodać Rok i QuarterOfYear tak jak Krajalnice, otrzymamy coś podobnego do poniższych Teraz, gdy masz już podstawową wiedzę na temat pojęć w Power BI DAX, możesz samodzielnie rozpocząć tworzenie formuł języka DAX dla miar. Rzeczywiście, może to być trochę trudne do nauczenia, aleDAX istnieje od kilku lat iw sieci dostępnych jest wiele zasobów. Po przeczytaniu tego bloga i kilku eksperymentach możesz nauczyć się znajdować rozwiązania biznesowe za pomocą Power BI DAX.
FIGLARKA(
,)
=FIGLARKA(FILTR(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Freight] + InternetSales [TaxAmt])
MAX
MAX()
=MAX([ResellerMargin])
MAXA
MAXA()
=MAXA(([Kod pocztowy])
MAXX
MAXX(
,)
=MAXX(FILTR(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Freight] + InternetSales [TaxAmt])
SUMA
SUMA()
=SUMA(Biuro sprzedaży])
ŚREDNI
ŚREDNI()
=ŚREDNI(InternetSales [ExtendedSalesAmount])
sumx
sumx(
,)
=sumx(FILTR(InternetSales, InternetSales [SalesTerritoryID] =5),[Fracht])
AVERAGEX
AVERAGEX(
,)
=AVERAGEX(InternetSales, InternetSales [Freight] + InternetSales [TaxAmt])
2. Funkcje liczenia
DISTINCTCOUNT
DISTINCTCOUNT()
=DISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])
LICZYĆ
LICZYĆ()
=LICZYĆ([Data wysyłki])
COUNTA
COUNTA()
=COUNTA(„Sprzedawca” [telefon])
COUNTROWS
COUNTROWS(
)
=COUNTROWS('Zamówienia')
COUNTBLANK
jak przycinać w java
COUNTBLANK()
=COUNTBLANK(Sprzedawca [nazwa banku])
3. Funkcje daty i godziny
DATA
DATA(<rok>,<miesiąc>,<dzień>)
=DATA(2019,1217)
GODZINA
GODZINA()
=GODZINA(„Zamówienia” [TransactionTime])
DZISIAJ
DZISIAJ()
TERAZ
TERAZ()
MIESIĄC
MIESIĄC(,)
=MIESIĄC(„3 marca 2008 r.”,1.5)
4. Funkcje matematyczne
SEKCJA
SEKCJA()
=ABS ([DealerPrice] - [ListPrice])
EXP
EXP()
= EXP ([moc])
jak ustawić ścieżkę java w windows
FAKT
FAKT()
= FACT ([wartości])
LN
LN()
= LN ([wartości])
LOG
LOG(,)
Wszystkie poniższe zwracają ten sam wynik, 2.
= LOG (100,10)
= LOG (100)
= LOG10 (100)
Liczba Pi
Liczba Pi()
MOC
MOC(,<moc>)
= POTĘGA (5,2)
ILORAZ
ILORAZ(,)
= QUOTIENT (5,2)
ZNAK
ZNAK()
= SIGN (([cena sprzedaży] - [cena kosztowa]))
SQRT
SQRT()
= SQRT (25)
5. Funkcje logiczne
I
I(,)
= JEŻELI (ORAZ (10>9, -10 <-jeden),'Wszystko prawda',„Co najmniej jeden fałsz”
Ponieważ oba warunki przekazane jako argumenty do funkcji AND są prawdziwe, formuła zwraca „All True”.
LUB
LUB(,)
= JEŻELI (LUB (10>9, -10> -jeden),'Prawdziwe','Fałszywy'
Ponieważ jeden z warunków przekazanych jako argumenty do funkcji LUB jest prawdziwy, formuła zwraca wartość „Prawda”.
NIE
NIE()
= NIE ([CalculatedColumn1])
Dla każdego wiersza w Calculated Column1 funkcja NOT zwraca logiczne przeciwieństwo podanej wartości.
JEŚLI
JEŚLI(test_logiczny> ,, wartość_jeżeli_fałsz)
= JEŻELI ([połączenia]<200,'Niska', IF ([wywołania]<300,'średni','wysoki'))
JEŻELI BŁĄD
JEŻELI BŁĄD(wartość, wartość_jeśli_błąd)
= JEŻELI BŁĄD (25/0,9999)
6. Funkcje informacyjne
JEST PUSTY
JEST PUSTY(<wartość>)
= IF (ISBLANK ('CalculatedMeasures' [PreviousYearTotalSales]), BLANK (), ('CalculatedMeasures' [Total Sales] - 'CalculatedMeasures' [PreviousYearTotalSales]) / 'CalculatedMeasures' [PreviousYearTotalSales])
ISNUMBER
ISNUMBER(<wartość>)
= JEŻELI (ISNUMBER (0),„Jest numerem”,„To nie jest numer”)
ISTEXT
ISTEXT(<wartość>)
= JEŻELI (ISTEKST ('tekst'),„Jest tekstem”,„Nie jest tekstem”)
ISNONTEXT
ISNONTEXT(<wartość>)
= JEŻELI (ISNONTEXT ('tekst'),„Nie jest tekstem”,„Jest tekstem”)
ISERROR
ISERROE(<wartość>)
= JEŻELI (ISERROR (SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD])), BLANK (), SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD]))
7. Funkcje tekstowe
POWIĄZAĆ
POWIĄZAĆ(,)
= CONCATENATE („Witaj”, „Świat”)
CONCATENATEX
CONCATENATEX(
,, [separator])
= CONCATENATEX (Pracownicy; [FirstName] & „„ & [LastName]; „,”)
NAPRAWIONY
NAPRAWIONY(,,)
= FIXED ([PctCost],3,jeden)
ZASTĄPIĆ
ZASTĄPIĆ(,,,)
= REPLACE ('Nowe produkty' [kod produktu],jeden,2,„OB”)
SZUKAJ
SZUKAJ(, [, [] [,]])
= SZUKAJ ('n','drukarka')
Formuła zwraca 4, ponieważ „n” jest czwartym znakiem w słowie „drukarka”.
GÓRNY
GÓRNY()
= UPPER ([„Nowe produkty” [kod produktu])
Podstawy Power BI DAX: tworzenie pierwszej miary
Sprzedaż w poprzednim kwartale = CALCULATE (SUMA (Sales [SalesAmount]), PREVIOUSQUARTER (Calendar [DateKey]))