Język DAX (Data Analysis Expressions) w dodatku Power Pivot

Język DAX (Data Analysis Expressions) w dodatku Power Pivot

Język DAX (Data Analysis Expressions) odtwarza trochę przytłaczająca na początku, ale nie pozwala na jego nadawanie. Podstawy języka DAX są naprawdę niezwykle zrozumiałe. Pierwszy element języka First-DAX nie jest językiem programowania. Język DAX jest językiem formuły. Język DAX służy do definiowania niestandardowych obliczeń dla kolumn obliczeniowych i miar (nazywanych także polami obliczeniowymi). Język DAX obejmuje niektóre funkcje używane w formułach programu Excel i dodatkowe funkcje przeznaczone do działania z danymi relacyjnymi i wykonywanie agregacji dynamicznej.

Opis formuł języka DAX

Formuły języka DAX są bardzo podobne do formuł programu Excel. Aby utworzyć taki znak, należy wpisać znak równości, a następnie nazwę lub wyrażenie funkcji oraz wszystkie wymagane wartości lub argumenty. Podobnie jak w programie Excel, język DAX udostępnia różne funkcje, których można używać do pracy z ciągami, wykonywać obliczenia przy użyciu dat i godzin lub tworzyć wartości warunkowe.

Jednak Formuły języka DAX różnią się w następujący sposób:

  • Jeśli chcesz dostosować obliczenia na podstawie wierszy po wierszu, język DAX zawiera funkcje umożliwiające użycie bieżącej wartości wiersza lub powiązanej wartości w celu wykonania obliczeń różniących się według kontekstu.

  • Język DAX zawiera typ funkcji zwracającej tabelę jako wynik, a nie pojedynczą wartość. Za pomocą tych funkcji można dostarczać dane wejściowe do innych funkcji.

  • Funkcje analizy czasowejw języku DAX umożliwiają obliczanie za pomocą zakresów dat, a wyniki są porównywane w okresach równoległych.

Gdzie używać formuł języka DAX

Formuły w Power Pivot można tworzyć w postaci obliczeniowej columns lub obliczeniowej fields.

Kolumny obliczeniowe

Kolumna obliczeniowa to kolumna dodana do istniejącej tabeli Power Pivot. Zamiast wkleić lub zaimportować wartości w kolumnie, należy utworzyć formułę języka DAX definiującą wartości kolumn. Jeśli dołączysz tabelę Power Pivot w tabeli przestawnej (lub wykresie przestawnym), kolumna obliczeniowa może być używana jako każda inna kolumna danych.

Formuły w kolumnach obliczeniowych są podobne do formuł tworzonych w programie Excel. W przeciwieństwie do programu Excel nie można jednak utworzyć innej formuły dla różnych wierszy w tabeli; Zamiast tego formuła języka DAX zostanie automatycznie zastosowana 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 kolumn są obliczane ponownie tylko wtedy, gdy dane źródłowe są odświeżane lub jest używane obliczanie ręczne.

Można tworzyć kolumny obliczeniowe oparte na miarach i innych kolumnach obliczeniowych. Jednak Unikaj używania tej samej nazwy dla kolumny obliczeniowej i miary, ponieważ może to prowadzić do powstania mylących wyników. W przypadku odwoływania się do kolumny najlepiej jest użyć w pełni kwalifikowanego odwołania do kolumny, aby uniknąć przypadkowego wywołania miary.

Aby uzyskać bardziej szczegółowe informacje, zobacz kolumny obliczeniowe w dodatku Power Pivot.

Środk

Miara to formuła utworzona specjalnie do użycia w tabeli przestawnej (lub wykresie przestawnym), która używa danych Power Pivot. Miary mogą być oparte na standardowych funkcjach agregujących, takich jak COUNT lub SUM, lub definiować własną formułę za pomocą języka DAX. Miara jest używana w obszarze wartości tabeli przestawnej. Jeśli chcesz umieścić obliczone wyniki w innym obszarze tabeli przestawnej, użyj kolumny obliczeniowej.

Po zdefiniowaniu formuły dla jawnej miary nic się nie dzieje, dopóki nie zostanie dodana miara w tabeli przestawnej. Po dodaniu miary formuła jest obliczana dla każdej komórki w obszarze wartości w tabeli przestawnej. Ponieważ wynik jest tworzony dla każdej kombinacji nagłówków wierszy i kolumn, wynik pomiaru może być różny w każdej komórce.

Definicja tworzonego miary jest zapisywana w tabeli danych źródłowych. Jest wyświetlana na liście pól tabeli przestawnej i jest dostępna dla wszystkich użytkowników skoroszytu.

Aby uzyskać bardziej szczegółowe informacje, zobacz tematy w dodatku Power Pivot.

Tworzenie formuł przy użyciu paska formuły

Power Pivot, na przykład program Excel, zawiera pasek formuły ułatwiający tworzenie i edytowanie formuł oraz funkcję autouzupełniania w celu zminimalizowania pisowni i błędów składniowych.

Aby wprowadzić nazwę tabeli   Rozpocznij wpisywanie nazwy tabeli. Funkcja Autouzupełnianie formuł zawiera listę rozwijaną zawierającą prawidłowe nazwy, które zaczynają się od tych liter.

Aby wprowadzić nazwę kolumny   Wpisz nawias, a następnie wybierz kolumnę z listy kolumn w bieżącej tabeli. W przypadku kolumny z innej tabeli Zacznij wpisywać pierwsze litery nazwy tabeli, a następnie wybierz kolumnę z listy rozwijanej Autouzupełnianie.

Aby uzyskać więcej szczegółowych informacji oraz zapoznać się z informacjami dotyczącymi tworzenia formuł, zobacz Tworzenie formuł do obliczeń w dodatku Power Pivot.

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 znajdujący się bezpośrednio przed punktem wstawiania jest wykorzystywany do wyświetlania wartości na liście rozwijanej, a cały tekst po punkcie wstawiania pozostaje bez zmian.

Zdefiniowane nazwy utworzone dla stałych nie są wyświetlane na liście rozwijanej autouzupełniania, ale nadal można je wpisywać.

Power Pivot nie doda nawiasu zamykającego funkcji lub automatycznie dopasowuje nawiasy. Upewnij się, że każda funkcja jest syntaktycznie poprawna, lub nie możesz zapisać lub użyć formuły. 

Używanie wielu funkcji w formule

Funkcje można zagnieżdżać, co oznacza, że wyniki z jednej funkcji są używane jako argument innej funkcji. W kolumnach obliczeniowych można zagnieżdżać maksymalnie 64 poziomów funkcji. Jednak zagnieżdżanie może utrudnić tworzenie i rozwiązywanie problemów z formułami.

Wiele funkcji języka DAX jest przeznaczonych do użycia wyłącznie jako funkcje zagnieżdżone. Funkcje te zwracają tabelę, której nie można bezpośrednio zapisać w wyniku. należy podać je jako dane wejściowe funkcji tabeli. Na przykład funkcje SUMX, funkcja AVERAGEX i MINX wymagają tabeli jako pierwszego argumentu.

Uwaga: Niektóre limity dotyczące zagnieżdżania funkcji istnieją w ramach miar, aby zagwarantować, że wiele obliczeń wymaganych przez zależności między kolumnami nie ma wpływ na wydajność.

Porównywanie funkcji języka DAX i funkcji programu Excel

Biblioteka funkcji języka DAX jest oparta na bibliotece funkcji programu Excel, ale biblioteki mają wiele różnic. 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 taką samą nazwę i zachowanie ogólne, co funkcje programu Excel, ale zostały zmodyfikowane w celu wykonania różnych typów danych wejściowych, a w niektórych przypadkach może spowodować zwrócenie innego typu danych. Ogólnie nie można używać funkcji języka DAX w formułach programu Excel ani używać formuł programu Excel w Power Pivot bez żadnej modyfikacji.

  • Funkcje języka DAX nigdy nie pobierają odwołania do komórek ani zakresu jako odwołania, ale zamiast tego funkcja języka DAX przyjmuje kolumnę lub tabelę jako odwołanie.

  • Funkcje daty i godziny języka DAX zwracają dane typu DateTime. W przeciwieństwie, funkcje daty i godziny w programie Excel zwracają liczbę całkowitą reprezentującą datę jako liczbę kolejną.

  • Wiele nowych funkcji języka DAX zwraca tabelę wartości lub dokonuje obliczeń na podstawie tabeli wartości jako danych wejściowych. W przeciwieństwie do tego program Excel nie ma funkcji, które zwracają tabelę, ale niektóre funkcje mogą pracować z tablicami. Możliwość łatwego odwoływania się do kompletnych tabel i kolumn to nowa funkcja w Power Pivot.

  • Język DAX zawiera nowe funkcje odnośników podobne do funkcji wyszukiwania tablicowego i wektorowego w programie Excel. Jednak funkcje języka DAX wymagają ustanowienia relacji między tabelami.

  • Oczekuje się, że dane w kolumnie zawsze mają ten sam typ danych. Jeśli dane nie są tego samego typu, język DAX zmieni całą kolumnę na typ danych, który jest najbardziej odpowiedni dla wszystkich wartości.

Typy danych języka DAX

Dane można zaimportować do modelu danych Power Pivot z wielu różnych źródeł danych, które mogą obsługiwać różne typy danych. Po zaimportowaniu lub załadowaniu danych, a następnie użycia danych w obliczeniach lub tabelach przestawnych dane są konwertowane na typ danych Power Pivot. Aby uzyskać listę typów danych, zobacz typy danych w modelach danych.

Typ danych tabela to nowy typ danych w języku DAX, który jest wykorzystywany jako wejście lub wyjście do wielu nowych funkcji. Na przykład funkcja FILTER przyjmuje tabelę jako wejście i wyprowadza kolejną tabelę zawierającą tylko wiersze spełniające warunki filtru. Łącząc funkcje tabel z funkcjami agregacji, można wykonywać skomplikowane obliczenia na dynamicznie definiowanych zbiorach danych. Aby uzyskać więcej informacji, zobacz agregacje w dodatku Power Pivot.

Formuły i model relacyjny

Okno Power Pivot to obszar, w którym można pracować z wieloma tabelami danych i łączyć tabele w modelu relacyjnym. W tym modelu danych tabele są połączone między sobą relacjami, co umożliwia tworzenie korelacji z kolumnami w innych tabelach i tworzenie bardziej interesujących obliczeń. Na przykład można utworzyć formuły, które sumują wartości powiązanej tabeli, a następnie zapisać tę wartość w jednej komórce. Aby sterować wierszami z tabeli powiązanej, możesz stosować filtry do tabel i kolumn. Aby uzyskać więcej informacji, zobacz relacje między tabelami w modelu danych.

Ponieważ możliwe jest łączenie tabel za pomocą relacji, tabele przestawne mogą także zawierać dane z wielu kolumn, które pochodzą z różnych tabel.

Ponieważ jednak formuły mogą pracować z całymi tabelami i kolumnami, należy zaprojektować 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 (nigdy tylko do kilku wierszy lub komórek).

  • Tabele w Power Pivot muszą zawsze zawierać taką samą liczbę kolumn w każdym wierszu, a wszystkie wiersze w kolumnie muszą zawierać te same typy danych.

  • Gdy tabele są połączone relacją, należy się upewnić, że dwie kolumny użyte jako klucze mają wartości, które pasują do siebie. Ponieważ Power Pivot nie wymusza więzów integralności, w kolumnie klucza można utworzyć niepasujące wartości, a w dalszym czasie utworzyć relację. Jednak obecność pustych lub niezgodnych wartości może wpływać na wyniki formuł i wygląd tabel przestawnych. Aby uzyskać więcej informacji, zobacz odnośniki w formułach dodatku Power Pivot.

  • Podczas łączenia tabel za pomocą relacji należy powiększyć zakres lubtekst w polu c, w którym są oceniane formuły. Na przykład w przypadku formuł w tabeli przestawnej mogą mieć wpływ dowolne filtry lub nagłówki kolumn i wierszy w tabeli przestawnej. Możesz pisać formuły, które manipulują kontekstem, ale kontekst może również powodować zmiany w sposób, który może nie być przewidziany. Aby uzyskać więcej informacji, zobacz temat kontekst w formułach języka DAX.

Aktualizowanie wyników formuł

Dane r efresh i ponowne obliczenia są dwiema odrębnymi, ale pokrewnymi operacjami, które należy zrozumieć podczas projektowania modelu danych zawierającego złożone formuły, duże ilości danych lub dane uzyskane 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. Można odświeżać dane ręcznie w określonych interwałach. Jeśli skoroszyt został opublikowany w witrynie programu SharePoint, możesz zaplanować automatyczne odświeżanie z zewnętrznych źródeł.

Ponowne obliczanie to proces aktualizowania wyników formuł w celu odzwierciedlenia zmian we samych formułach i odzwierciedlenia tych zmian w danych źródłowych. Ponowne obliczanie może mieć wpływ na wydajność w następujący sposób:

  • W przypadku kolumny obliczeniowej wynik formuły powinien być zawsze ponownie obliczany dla całej kolumny po każdej zmianie formuły.

  • W przypadku miary wyniki formuły nie są obliczane, dopóki miara nie zostanie umieszczona w kontekście tabeli przestawnej lub wykresu przestawnego. Formuła zostanie również obliczona ponownie po zmianie dowolnego nagłówka wiersza lub kolumny, który wpływa na filtry na danych, lub po ręcznym odświeżeniu tabeli przestawnej.

Formuły rozwiązywania problemów

Błędy podczas pisania formuł

Jeśli podczas definiowania formuły zostanie wyświetlony błąd, Formuła może zawierać błąd syntaktyczny, błąd semantycznylub błąd obliczeń.

Błędy składniowe są najłatwiejszym rozwiązaniem. Zwykle obejmują one brakujące nawiasy lub przecinek. Aby uzyskać pomoc dotyczącą składni poszczególnych funkcji, zobacz informacje dotyczące funkcji języka DAX.

Inny typ błędu występuje, gdy składnia jest poprawie, ale wartość lub kolumna, której dotyczy odwołanie, nie są sensowne w kontekście formuły. Taka semantyka i błędy obliczeń mogą być spowodowane przez dowolny z następujących problemów:

  • Formuła odwołuje się do nieistniejącej kolumny, tabeli lub funkcji.

  • Formuła wygląda na pobrana za prawidłową, ale gdy aparat danych pobiera dane, co powoduje niezgodność typów, i zgłasza błąd.

  • Formuła przekazuje do funkcji niepoprawną liczbę lub typ parametrów.

  • Formuła odwołuje się do innej kolumny zawierającej błąd, dlatego jej wartości są nieprawidłowe.

  • Formuła odwołuje się do kolumny, która nie została przetworzona, co oznacza, że zawiera ona metadane, ale nie ma rzeczywistych danych do użycia w obliczeniach.

W pierwszych czterech przypadkach język DAX oflagowuje całą kolumnę zawierającą nieprawidłową formułę. W ostatniej sytuacji język DAX jest wyszarzony w kolumnie, aby wskazać, że kolumna jest w stanie nieprzetworzonym.

Niepoprawne lub nietypowe wyniki podczas klasyfikowania lub sortowania wartości kolumn

Gdy klasyfikacja lub porządkowanie kolumny zawierającej wartość NaN (nie liczba), może wystąpić problem lub nieoczekiwane wyniki. Na przykład, gdy obliczenie dzieli 0 przez 0, zwracany jest wynik NaN.

Wynika to z faktu, że aparat formuł sprawdza kolejność i klasyfikację przez porównanie wartości liczbowych; wartości NaN nie można jednak porównywać z innymi liczbami w kolumnie.

Aby zapewnić właściwe rezultaty, możesz użyć instrukcji warunkowych przy użyciu funkcji jeżeli, aby przetestować wartości NaN i zwrócić wartość liczbową 0.

Zgodność z modelami tabelarycznymi usług Analysis Services i trybem zapytania bezpośredniego

Ogólnie Formuły języka DAX skompilowane w Power Pivot są w pełni zgodne z modelami tabelarycznymi usług Analysis Services. Jednak w przypadku migrowania modelu Power Pivot do wystąpienia usług Analysis Services, a następnie wdrożenia modelu w trybie zapytania bezpośredniego obowiązują pewne ograniczenia.

  • Niektóre Formuły języka DAX mogą zwracać inne wyniki w przypadku wdrożenia modelu w trybie zapytania bezpośredniego.

  • Niektóre formuły mogą powodować błędy sprawdzania poprawności podczas wdrażania modelu w trybie DirectQuery, ponieważ formuła zawiera funkcję języka DAX, która nie jest obsługiwana na relacyjnym źródle danych.

Aby uzyskać więcej informacji, zobacz dokumentację modelowania tabelarycznego usług Analysis Services w programie SQL Server 2012 BooksOnline.

Uwaga:  Ta strona została przetłumaczona automatycznie i może zawierać błędy gramatyczne lub nieścisłości. Chcemy, aby ta zawartość była dla Ciebie przydatna. Czy możesz dać nam znać, czy te informacje były pomocne? Oto angielskojęzyczny artykuł do wglądu.

Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×