Praca z funkcjami języka DAX
Biblioteka funkcji języka DAX obejmuje setki funkcji, z których każda służy do osiągania określonego celu.
Język DAX pochodzi z dodatku Power Pivot do programu Microsoft Excel 2010 dostępnych jest ponad 80 funkcji, które można znaleźć również w programie Excel. Była to świadoma strategia projektowa firmy Microsoft mająca na celu zapewnienie, że użytkownicy programu Excel mogą szybko rozpocząć pracę w języku DAX.
Jednak istnieje wiele funkcji, których nie ma w programie Excel, ponieważ są one specyficzne dla modelowania danych:
- funkcje nawigacyjne dotyczące relacji,
- funkcje modyfikowania kontekstu filtra,
- funkcje iteracyjne,
- Funkcje analizy czasowej
- funkcje ścieżki.
Porada
Aby wyszukać dokumentację dotyczącą funkcji języka DAX, w wyszukiwaniu w sieci Web wprowadź słowo kluczowe DAX, a następnie nazwę funkcji.
Aby uzyskać więcej informacji, zobacz Dokumentacja funkcji języka DAX.
Funkcje pochodzące z programu Excel
W poniższych sekcjach przedstawiono kilka przydatnych funkcji, które mogą już być znane, ponieważ istnieją w programie Excel.
Funkcja IF
języka DAX sprawdza, czy warunek podany jako pierwszy argument jest spełniony. Zwraca jedną wartość, jeśli warunek ma wartość TRUE, i inną wartość, jeśli warunek ma wartość FALSE. Składnia funkcji jest następująca:
IF(<logical_test>, <value_if_true>[, <value_if_false>])
Porada
Argument funkcji jest opcjonalny, gdy w dokumentacji występuje w nawiasach kwadratowych.
Jeśli dla kryterium logical_test (test_logiczny) zostanie zwrócona wartość FALSE, a wartość value_if_false (wartość_jeśli_fałsz) nie zostanie podana, funkcja zwróci PUSTĄ wartość.
Dostępnych jest wiele funkcji podsumowania programu Excel, w tym SUM
, COUNT
, AVERAGE
, MIN
, MAX
i wielu innych. Jedyną różnicą jest to, że w języku DAX przekazujesz odwołanie do kolumny, podczas gdy w programie Excel przekazujesz zakres komórek.
Dostępnych jest również wiele funkcji matematycznych, tekstowych, daty i godziny, informacyjnych oraz logicznych programu Excel. Na przykład niewielka próbka funkcji programu Excel dostępnych w języku DAX to ABS
, , ROUND
, OR
DATE
UPPER
YEAR
RIGHT
MONTH
LEFT
NOW
ISNUMBER
LEN
SQRT
FALSE
AND
TRUE
NOT
i .IFERROR
Funkcje, które nie pochodzą z programu Excel
Dwie przydatne funkcje języka DAX, które nie są specyficzne dla modelowania i które nie pochodzą z programu Excel, to DISTINCTCOUNT
i DIVIDE
.
Funkcja DISTINCTCOUNT
Możesz użyć DISTINCTCOUNT
funkcji języka DAX, aby zliczyć liczbę odrębnych wartości w kolumnie. Ta funkcja jest szczególnie przydatna w rozwiązaniu analitycznym. Należy wziąć pod uwagę, że liczba klientów różni się od liczby unikatowych klientów. Ta ostatnia nie uwzględnia powtarzających się klientów, dlatego różnica polega na tym „ilu jest klientów” w porównaniu do „ilu jest różnych klientów”.
Funkcja DIVIDE
Aby osiągnąć podział, możesz użyć DIVIDE
funkcji języka DAX. Należy przekazać wyrażenia licznika i mianownika. Opcjonalnie można przekazać wartość, która reprezentuje alternatywny wynik. Składnia DIVIDE
funkcji to:
DIVIDE(<numerator>, <denominator>[, <alternate_result>])
Funkcja DIVIDE
automatycznie obsługuje dzielenie według zerowych przypadków. Jeśli alternatywny wynik nie zostanie przekazany, a mianownik ma wartość zero lub jest PUSTĄ wartością, funkcja zwraca PUSTĄ wartość. Gdy zostanie przekazany alternatywny wynik, jest on zwracany zamiast PUSTEJ wartości.
Ta funkcja jest wygodna, ponieważ nie wymaga wcześniejszego testowania wartości mianownika. Funkcja jest również lepiej zoptymalizowana pod kątem testowania wartości mianownika IF
niż funkcja. Wzrost wydajności jest znaczący, ponieważ sprawdzanie dzielenia przez zero jest wymagające. Co więcej, użycie DIVIDE
funkcji powoduje bardziej zwięzłe i eleganckie wyrażenie.
Porada
Zalecamy użycie DIVIDE
funkcji za każdym razem, gdy mianownik jest wyrażeniem, które może zwrócić zero lub BLANK. W przypadku gdy mianownik jest wartością stałą zalecamy użycie operatora dzielenia (/), który zostanie przedstawiony w dalszej części tego modułu. W takim przypadku gwarantowane jest powodzenie dzielenia, a wyrażenie będzie działać wydajniej, dzięki uniknięciu niepotrzebnego testowania.