Omówienie języka DAX (Data Analysis Expressions)
Język DAX (Data Analysis Expressions) to język formuł, który umożliwia użytkownikom definiowanie niestandardowych obliczeń w tabelach programu PowerPivot (kolumny obliczeniowe) i tabelach przestawnych programu Excel (miary). Język DAX zawiera niektóre funkcje używane w formułach programu Excel oraz funkcje dodatkowe, zaprojektowane na potrzeby pracy z danymi relacyjnymi i wykonywania dynamicznych agregacji.
W tej sekcji omówiono następujące zagadnienia:
Gdzie używać formuł języka DAX
Jak tworzyć formuły języka DAX
Typy operacji wykonywanych przy użyciu języka DAX
Omówienie formuł języka DAX
Formuły języka DAX bardzo przypominają formuły programu Excel. Aby utworzyć formułę, należy wpisać znak równości, a po nim nazwę funkcji lub wyrażenie i wszelkie wymagane wartości lub argumenty. Podobnie jak w programie Excel, w języku DAX są dostępne rozmaite funkcje, których można używać do operowania ciągami, wykonywania obliczeń z użyciem dat i godzin lub tworzenia wartości warunkowych.
Jednak formuły języka DAX istotnie różnią się pod następującymi względami:
Funkcja języka DAX zawsze odwołuje się do pełnej kolumny lub tabeli. Aby użyć tylko określonych wartości z tabeli lub kolumny, do formuły można dodać filtry.
Jeśli zachodzi potrzeba dostosowania obliczeń wiersz po wierszu, program PowerPivot oferuje funkcje, które umożliwiają używanie bieżącej wartości wiersza lub wartości powiązanej w celu wykonywania obliczeń zmieniających się zależnie od kontekstu.
Język DAX zawiera typ funkcji, która jako swój wynik zwraca tabelę, a nie pojedynczą wartość. Tych funkcji można używać w celu przekazywania danych wejściowych do innych funkcji, które obliczają wartości dla całych tabel lub kolumn.
Niektóre funkcje języka DAX służą do analizy czasowej, która umożliwia tworzenie obliczeń przy użyciu istotnych zakresów dat i porównywanie wyników między okresami równoległymi.
Gdzie używać formuł
Formuł języka DAX można używać w tabelach programu PowerPivot lub w tabelach przestawnych w programie Excel:
Formuł można używać w kolumnach obliczeniowych, dodając kolumnę, a następnie wpisując wyrażenie na pasku formuły. Te formuły można tworzyć w oknie programu PowerPivot. Aby uzyskać więcej informacji, zobacz temat Kolumny obliczeniowe.
Formuł można używać w miarach. Te formuły można tworzyć w programie Excel, klikając pozycję Dodaj miarę w tabeli przestawnej lub na wykresie przestawnym programu PowerPivot. Aby uzyskać więcej informacji, zobacz temat Miary w programie PowerPivot.
Jedna formuła może zachowywać się w różny sposób zależnie od tego, czy jest używana w kolumnach obliczeniowych, czy w miarach. W kolumnie obliczeniowej formuła zawsze jest stosowana do każdego wiersza w kolumnie tabeli. Wartość może się zmieniać w zależności od kontekstu wiersza. Jednak w przypadku miary wyniki obliczeń są bardzo zależne od kontekstu. Oznacza to, że projekt tabeli przestawnej oraz wybór nagłówków wierszy i kolumn ma wpływ na wartości używane w obliczeniach. Aby uzyskać więcej informacji, zobacz temat Kontekst w formułach języka DAX.
Tworzenie formuł za pomocą paska formuły
Program PowerPivot, podobnie jak program Excel, oferuje pasek formuły, który ułatwia tworzenie i edytowanie formuł, oraz funkcję autouzupełniania, która minimalizuje liczbę błędów pisowni i składni.
Aby wprowadzić nazwę tabeli Zacznij wpisywać nazwę tabeli. Funkcja autouzupełniania formuły wyświetli listę rozwijaną zawierającą prawidłowe nazwy zaczynające się od wpisanych liter.
Aby wprowadzić nazwę kolumny Wpisz nawias kwadratowy, a następnie wybierz kolumnę z listy kolumn w bieżącej tabeli. W przypadku kolumny z innej tabeli zacznij wpisywać pierwsze litery nazwy tej tabeli, a następnie wybierz kolumnę z listy rozwijanej funkcji autouzupełniania.
Aby skorzystać z przewodnika tworzenia formuł, zobacz temat Tworzenie formuł na potrzeby obliczeń
Porady dotyczące korzystania z funkcji autouzupełniania
Funkcji autouzupełniania formuł można używać w środku istniejącej formuły z funkcjami zagnieżdżonymi. Tekst bezpośrednio poprzedzający punkt wstawiania jest używany do wyświetlania wartości na liście rozwijanej, a cały tekst następujący po punkcie wstawiania pozostaje niezmieniony.
Nazwy zdefiniowane utworzone dla stałych nie są wyświetlane na liście rozwijanej funkcji autouzupełniania, ale nadal można je wpisywać.
Program PowerPivot nie dodaje nawiasu zamykającego funkcji ani nie dopasowuje nawiasów w sposób automatyczny. Użytkownik musi się upewnić, że każda funkcja jest poprawna pod względem składni. W przeciwnym wypadku nie można zapisać ani używać formuły.
Używanie wielu funkcji w formule
Funkcje można zagnieżdżać, co oznacza, że wyniku jednej funkcji można używać jako argumentu innej funkcji. W kolumnach obliczeniowych funkcje można zagnieżdżać do 64 poziomów. Jednak zagnieżdżanie może utrudniać tworzenie formuł lub rozwiązywanie związanych z nimi problemów.
Wiele funkcji programu PowerPivot zaprojektowano specjalnie w celu ich używania wyłącznie jako funkcji zagnieżdżonych. Funkcje te zwracają tabelę, której nie można zapisać bezpośrednio jako wyniku w skoroszycie programu PowerPivot; musi ona zostać przekazana jako dane wejściowe do funkcji wymagającej tabeli jako argumentu. Na przykład funkcje SUMX, AVERAGEX i MINX wymagają tabeli jako pierwszego argumentu.
[!UWAGA]
Istnieją pewne ograniczenia dotyczące zagnieżdżania funkcji w miarach. Mają one na celu zapewnienie, że wydajność nie spadnie znacząco z powodu wielu obliczeń wymaganych przez zależności między kolumnami.
Porównanie funkcji języka DAX i funkcji programu Excel
Biblioteka funkcji języka DAX jest oparta na bibliotece funkcji programu Excel, ale istnieje wiele różnic między tymi bibliotekami. W tej sekcji podsumowano różnice i podobieństwa między funkcjami programu Excel i funkcjami języka DAX.
Wiele funkcji języka DAX ma takie same nazwy i takie samo ogólne zachowanie jak funkcje programu Excel, lecz zmodyfikowano je w taki sposób, że przyjmują inne typy danych wejściowych, a w niektórych przypadkach mogą zwracać inny typ danych. Ogólnie formuł języka DAX nie można używać w skoroszycie programu Excel, a formuł programu Excel nie można używać w skoroszycie programu PowerPivot bez pewnych modyfikacji.
Funkcje języka DAX nigdy nie odwołują się do zakresu komórek, ale do kolumny lub tabeli.
Funkcje daty i godziny języka DAX zwracają dane typu datetime. Tymczasem funkcje daty i godziny programu Excel zwracają liczbę całkowitą przedstawiającą datę jako liczbę seryjną.
Wiele z nowych funkcji języka DAX zwraca tabelę wartości lub wykonuje obliczenia, dla których danymi wejściowymi jest tabela wartości. Tymczasem w programie Excel nie ma funkcji zwracających tabelę, ale kilka funkcji umożliwia wykonywanie operacji na tablicach. Możliwość łatwego odwoływania się do pełnych tabel i kolumn to nowa funkcja w programie PowerPivot.
W języku DAX są dostępne nowe funkcje wyszukiwania, które przypominają funkcje przeszukiwania tablic i wektorów w programie Excel. Jednak funkcje języka DAX wymagają ustanowienia relacji między tabelami.
Język DAX nie obsługuje również typu danych variant, który jest dostępny w programie Excel. Przyjmowane jest założenie, że dane w kolumnie zawsze są tego samego typu. Jeśli dane są danymi różnych typów, język DAX zmienia typ danych w całej kolumnie na typ najlepiej pasujący do wszystkich wartości.
Powrót do początku
Typy danych języka DAX
Dane można importować do arkusza programu PowerPivot z wielu różnych źródeł danych, które mogą obsługiwać różne typy danych. W przypadku zaimportowania lub załadowania danych do skoroszytu, a następnie użycia ich w obliczeniach lub tabelach przestawnych, dane są konwertowane na jeden z typów danych programu PowerPivot. Aby zapoznać się z listą typów danych, zobacz temat Typy danych obsługiwane w skoroszytach programu PowerPivot.
Typ danych table to nowy typ danych w języku DAX używany w danych wejściowych i wyjściowych wielu nowych funkcji. Na przykład funkcja FILTER używa tabeli jako danych wejściowych i zwraca inną tabelę, która zawiera tylko wiersze spełniające warunki filtru. Łącząc funkcje tabeli z funkcjami agregacji, można przeprowadzać złożone obliczenia na dynamicznie definiowanych zestawach danych. Aby uzyskać więcej informacji, zobacz temat Agregacje w formułach.
Powrót do początku
Formuły i model relacyjny
Okno programu PowerPivot to obszar, w którym można pracować z wieloma tabelami danych i łączyć tabele w modelu relacyjnym. W ramach tego modelu tabele są zazwyczaj połączone relacjami, które umożliwiają tworzenie korelacji z kolumnami w innych tabelach oraz wykonywanie bardziej zaawansowanych obliczeń. Na przykład można tworzyć formuły sumujące wartości dla powiązanej tabeli i zapisujące obliczoną wartość w jednej komórce. Można też zastosować filtry do tabel i kolumn, aby kontrolować wiersze pochodzące z powiązanej tabeli. Aby uzyskać więcej informacji, zobacz temat Omówienie relacji.
Tabele można łączyć przy użyciu relacji, więc tabele przestawne również mogą zawierać dane z wielu kolumn znajdujących się w różnych tabelach.
Jednak formuły mogą wykonywać operacje na całych tabelach i kolumnach, należy więc projektować obliczenia inaczej niż w programie Excel.
Ogólnie formuła języka DAX w kolumnie jest zawsze stosowana do całego zestawu wartości w kolumnie, a nie tylko do kilku wierszy lub komórek.
Tabele w programie PowerPivot zawsze muszą mieć taką samą liczbę kolumn w każdym wierszu, a wszystkie wiersze w kolumnie muszą zawierać dane tego samego typu.
Gdy tabele są połączone relacją, należy oczekiwać, że dwie kolumny używane jako klucze mają pasujące wartości. Program PowerPivot nie wymusza integralności referencyjnej, więc jest możliwe, że w kolumnie klucza będą znajdować się niepasujące wartości tworzące relację. Jednak obecność pustych lub niepasujących wartości może mieć wpływ na wyniki formuł i wygląd tabel przestawnych. Aby uzyskać więcej informacji, zobacz temat Relacje i odnośniki w formułach.
Łączenie tabel w skoroszycie za pomocą relacji powoduje powiększenie zakresu (kontekstu) obliczania formuł. Na przykład na formuły w tabeli przestawnej mogą wpływać dowolne filtry lub nagłówki kolumn i wierszy w tabeli przestawnej. Można pisać formuły zmieniające kontekst, ale kontekst może też powodować nieprzewidywalne zmiany wyników. Aby uzyskać więcej informacji, zobacz temat Kontekst w formułach języka DAX.
Powrót do początku
Kolumny obliczeniowe i miary
Program PowerPivot umożliwia tworzenie formuł w kolumnach obliczeniowych i miarach.
Kolumny obliczeniowe
Kolumna obliczeniowa to kolumna dodawana do istniejącej tabeli programu PowerPivot. Zamiast wklejać lub importować wartości kolumny, użytkownik tworzy formułę języka DAX, która definiuje wartości w kolumnie. Umieszczenie tabeli programu PowerPivot w tabeli przestawnej (lub na wykresie przestawnym) spowoduje, że kolumny obliczeniowej będzie można używać jak dowolnej innej kolumny danych.
Formuły w kolumnach obliczeniowych są bardzo podobne do formuł tworzonych w programie Excel. Jednak w przeciwieństwie do programu Excel nie można tworzyć różnych formuł dla poszczególnych wierszy tabeli; formuła języka DAX jest automatycznie stosowana do całej kolumny.
Gdy kolumna zawiera formułę, wartość jest obliczana dla każdego wiersza. Wyniki są obliczane dla kolumny zaraz po utworzeniu formuły. Wartości w kolumnie są obliczane ponownie tylko w przypadku odświeżenia danych źródłowych lub użycia trybu ręcznego ponownego obliczania.
Kolumny obliczeniowe można również tworzyć na podstawie miar i innych kolumn obliczeniowych. Należy jednak unikać nadawania jednej nazwy kolumnie obliczeniowej i mierze, ponieważ może to powodować powstawanie niejednoznacznych wyników. W przypadku odwoływania się do kolumny najlepiej jest używać w pełni kwalifikowanego odwołania do kolumny, aby uniknąć przypadkowego wywołania miary.
Miary
Miara to formuła utworzona specjalnie do użycia w tabeli przestawnej (lub na wykresie przestawnym), w której są używane dane programu PowerPivot. Miary mogą być oparte na standardowych funkcjach agregujących, takich jak COUNT lub SUM, ale można też zdefiniować własną formułę, używając języka DAX. Miary są używane w obszarze Wartości tabeli przestawnej. Aby umieścić obliczone wyniki w innym obszarze tabeli przestawnej, należy użyć kolumny obliczeniowej.
Aby utworzyć miarę, należy najpierw dodać do skoroszytu programu PowerPivot tabelę przestawną lub wykres przestawny. Po zdefiniowaniu formuły dla miary nic się nie dzieje, dopóki miara nie zostanie upuszczona w tabeli przestawnej. Po dodaniu miary formuła jest obliczana dla każdej komórki w obszarze Wartości tabeli przestawnej. Wynik jest tworzony dla poszczególnych kombinacji nagłówków wierszy i kolumn, więc wynik miary może być inny w każdej komórce.
Definicja tworzonej miary jest zapisywana w tabeli z jej danymi źródłowymi. Miara jest wyświetlana w oknie Lista pól programu PowerPivot i jest dostępna dla wszystkich użytkowników skoroszytu.
Powrót do początku
Aktualizowanie wyników formuł
Odświeżanie danych i ponowne obliczanie to dwie odrębne, ale pokrewne operacje, których znajomość jest wymagana podczas projektowania modelu danych zawierającego złożone formuły, duże ilości danych lub dane uzyskiwane z zewnętrznych źródeł danych.
Odświeżanie danych to proces aktualizowania danych w skoroszycie przy użyciu nowych danych z zewnętrznego źródła danych. Dane można odświeżać ręcznie zgodnie z interwałem określonym przez użytkownika. Jeśli jednak skoroszyt został opublikowany w witrynie programu SharePoint, można zaplanować automatyczne odświeżanie danych ze źródeł zewnętrznych.
Ponowne obliczanie to proces aktualizowania wyników formuł i kolumn obliczeniowych w skoroszycie w celu odzwierciedlenia zmian w formułach oraz zmian w danych źródłowych. Ponowne obliczanie może w następujący sposób wpływać na wydajność:
W przypadku kolumny obliczeniowej wynik formuły musi zawsze zostać ponownie obliczony dla całej kolumny, gdy zostanie zmieniona formuła.
Jednak w przypadku miary wyniki formuły nie są obliczane do czasu umieszczenia miary w kontekście tabeli przestawnej lub wykresu przestawnego. Formuła będzie także obliczana ponownie, gdy użytkownik zmieni dowolny nagłówek wiersza lub kolumny wpływający na filtry dotyczące danych lub ręcznie odświeży tabelę przestawną.
Aby uzyskać więcej informacji, zobacz następujące tematy:
Powrót do początku
Zgodność z modelami tabelarycznymi i trybem zapytania bezpośredniego usług Analysis Services
Na ogół formuły języka DAX konstruowane w programie PowerPivot są całkowicie zgodne z modelami tabelarycznymi usług Analysis Services. Jednak w przypadku przeprowadzenia migracji modelu programu PowerPivot do wystąpienia usług Analysis Services uruchomionego w trybie VertiPaq i wdrożenia modelu w trybie zapytania bezpośredniego występują pewne ograniczenia.
Niektóre formuły języka DAX mogą zwracać inne wyniki po wdrożeniu modelu w trybie zapytania bezpośredniego.
Niektóre formuły mogą powodować błędy sprawdzania poprawności po wdrożeniu modelu w trybie zapytania bezpośredniego, ponieważ zawierają funkcję języka DAX, która nie jest obsługiwana przez relacyjne źródło danych.
Aby uzyskać więcej informacji, zobacz https://go.microsoft.com/fwlink/?LinkId=219172.
Zobacz także
Koncepcje
Dodawanie obliczeń do raportów, wykresów i tabel przestawnych
Typy danych obsługiwane w skoroszytach programu PowerPivot
Omówienie języka DAX (Data Analysis Expressions)
Inne zasoby
Data Analysis Expressions (DAX) — kompendium