Microsoft Power BI obsługuje dwa różne języki, język M i DAX (Data Analysis Expression), które mogą być używane do filtrowania, zarządzania i wizualizacji danych.
Język M może być uważany za język formuł zapytań i może być używany w edytorze zapytań Power BI w celu przygotowania danych przed ich załadowaniem do modelu Power BI.
Z drugiej strony, DAX to analityczny język obliczeń danych, który może być używany do dogłębnej analizy danych w fazie Data View.
M i DAX nie są od siebie zależne i mają zupełnie inne struktury i logikę oraz różne kody bazowe. M i DAX nie mogą być używane jednocześnie, ponieważ język M jest używany w Query Editor, podczas gdy DAX jest używany głównie w modelu Data View.
Ten wpis na blogu pokaże Ci, jak M i DAX różnią się od siebie w Power BI, z pomocą przykładów. Zobacz ten artykuł, aby uzyskać szybkie wprowadzenie do DAX.
Importowanie zbioru danych
W tej sekcji zaimportujemy pusty zbiór danych, którego użyjemy do wykonania naszych zapytań w języku M i DAX. Aby to zrobić, należy kliknąć przycisk „Pobierz dane” w górnym menu, jak pokazano na poniższym zrzucie ekranu.
Nowy dialog wyświetli listę wszystkich łączy danych otwartych dla Power BI.
W sekcji wyszukiwania wpisz „Web”, a bardzo szybko pojawi się opcja danych „Web”, a także ikona w opcji Wszystkie źródła danych. Wybierz opcję „Web”, a następnie kliknij „Połącz” na dole. Widać to wyraźnie na poniższym zrzucie ekranu.
![](https://www.sqlshack.com/wp-content/uploads/2020/05/selecting-the-web-data-source-.png)
Pojawi się okno dialogowe, które widać na poniższym zrzucie ekranu. Teraz musisz wstawić poniższy adres URL do pola oznaczonego jako URL:
https://raw.githubusercontent.com/treselle-systems/customer_churn_analysis/master/WA_Fn-UseC_-Telco-Customer-Churn.csv
Kliknij „OK”, aby potwierdzić, gdy to zrobisz.
Oto zrzut ekranu dla odniesienia:
![](https://www.sqlshack.com/wp-content/uploads/2020/05/entering-the-url-for-the-data-source-that-we-want.png)
Ten adres URL przenosi Power BI do Github, który przechowuje plik danych CSV, którego potrzebujemy. Plik danych jest zbiorem danych dotyczących rezygnacji klientów firmy telekomunikacyjnej. Zawiera on dane o klientach firmy telekomunikacyjnej, którzy opuścili firmę po pewnym czasie.
W zależności od rozmiaru pliku, pobranie danych ze zdalnej strony może zająć chwilę.
Po pobraniu danych mamy dwie opcje: albo możemy bezpośrednio zaimportować dane do Data/Report View, albo możemy najpierw załadować dane do Query Editor. Ponieważ język M działa w edytorze zapytań, najpierw załadujemy dane do edytora zapytań, klikając „Przekształć dane”, jak pokazano na poniższym zrzucie ekranu:
Zobaczysz, że zbiór danych zawiera informacje o kliencie, takie jak płeć, wiek, usługa telefoniczna, usługa internetowa, osoby pozostające na utrzymaniu itp.
Po kliknięciu przycisku Przekształć, powinieneś zobaczyć następujący edytor zapytań.
Różnice między M Language a DAX
W poprzedniej sekcji podłączyliśmy Power BI do atrapy zbioru danych na GitHubie. W tej sekcji, z pomocą przykładów, zobaczysz różnice pomiędzy M Language i DAX.
M Language
Po pierwsze, zobaczymy czym jest M i jak jest używany w Power BI. Jak już wcześniej wspomniałem, Język M służy do zarządzania i filtrowania danych w Edytorze zapytań. Jeśli zamknąłeś Edytor zapytań, możesz go otworzyć, klikając opcję „Edytuj zapytania” z górnego menu.
![](https://www.sqlshack.com/wp-content/uploads/2020/05/reopening-the-query-editor-by-clicking-edit-querie.png)
W Edytorze zapytań jedyną nazwą tabeli w lewym panelu ekranu będzie Twoja tabela, jak pokazano poniżej. Kliknij na tabelę danych „WA_Fn-UseC_-Telco-Customer-Churn” w lewym panelu edytora zapytań, jak pokazano poniżej:
Aby zobaczyć zapytania w M. Wybierz dowolną kolumnę, na przykład „Partner”, a następnie kliknij przycisk „Usuń kolumny” z górnego menu. Spowoduje to usunięcie kolumny „Partner” z tabeli, jak pokazano poniżej:
Następnie kliknij opcję „Widok” z górnego menu, jak pokazano na poniższym zrzucie ekranu.
Kliknij pole wyboru „Pasek formuły”. Powinieneś teraz zobaczyć zapytanie w pasku formuły, jak pokazano na poniższym zrzucie ekranu. Zapytanie tutaj brzmi „= Table.RemoveColumns(#”Changed Type”,{„Partner”}). To zapytanie jest zapytaniem w języku M używanym do usunięcia kolumny „Partner” z wybranej tabeli. Można zauważyć, że zapytanie języka M jest bardziej podobne do polecenia SQL lub LINQ (Language Integrated Query) w języku C#.
Aby zobaczyć wszystkie poprzednio wykonane zapytania języka M w zbiorze danych, można kliknąć na „Widok – Edytor zaawansowany”, jak pokazano na poniższym zrzucie ekranu.
Po kliknięciu opcji „Edytor zaawansowany” z górnego menu, powinno zostać wyświetlone okno Edytor zaawansowany, jak pokazano poniżej. W oknie Edytor zaawansowany znajdują się wszystkie zapytania w języku M, które zostały wykonane do tej pory w bieżącej sesji.
Widać, że ostatnie zapytanie jest tym, które usunęło kolumnę „Partner” z tabeli. Przed tym jest zapytanie „Zmień typ”, które służy do przypisania typów danych do różnych kolumn w zbiorze danych. A wcześniej zapytanie „Promowane nagłówki” służy do ustawienia kolumn nagłówkowych. Jeśli wykonasz inne zapytanie, pojawi się ono na dole na liście zapytań w „Advance Editor”.
Spróbujmy dodać prostą kolumnę w tabeli książek i zobaczmy zapytanie M do tego celu. Kliknij na opcję „Add Column -> Custom Column” w menu na górze okna, jak widać poniżej:
Powinieneś zobaczyć okno poniżej. Kliknij kolejno na kolumny „TotalCharges” oraz „MonthlyCharges”, a następnie kliknij przycisk „Wstaw”, aby wstawić je do okna edytora zapytań. W oknie edytora zapytań, dodaj znak „+” pomiędzy nazwami dwóch kolumn i kliknij przycisk „OK”.
![](https://www.sqlshack.com/wp-content/uploads/2020/05/seeing-up-a-custom-column-.png)
Powinieneś zobaczyć nową kolumnę „Monthly-Total” dodaną do tabeli, jak pokazano poniżej. Na pasku formuły możesz również zobaczyć zapytanie M wygenerowane w celu utworzenia kolumny „Monthly-Total”. Kolumna „Monthly-Total” wyświetla sumę wartości z kolumn „TotalCharges” i „MonthlyCharges”.
Teraz, jeśli ponownie otworzysz okno „Edytor zaawansowany”, zobaczysz zapytanie użyte do dodania kolumny „Monthly-Total” na dole zapytań w edytorze zaawansowanym.
Teraz wiemy, jak działa język M i jak wygląda. W następnej części spróbujemy stworzyć tę samą kolumnę „Miesięcznie – Suma 2” za pomocą DAX (Data Analysis Expression).
Zapytania DAX są wykonywane w widoku danych, dlatego musimy przenieść dane z Edytora zapytań do widoku danych. Aby to zrobić, w Edytorze zapytań kliknij opcję „Zamknij & Zastosuj” z górnego menu, jak pokazano poniżej:
Po kliknięciu przycisku „Zamknij & Zastosuj” zostanie otwarty Widok danych.
DAX (Data Analysis Expression)
W tym rozdziale zobaczymy, jak dodać nową kolumnę do tabeli Książki za pomocą DAX. W widoku danych kliknij na opcję „Modelowanie -> Nowa kolumna” z górnego menu, jak pokazano poniżej:
![](https://www.sqlshack.com/wp-content/uploads/2020/05/creating-a-new-column-in-the-data-view-.png)
Po kliknięciu na opcję „Nowa kolumna” powinno pojawić się następujące okno. Na pasku formuły widoczna jest domyślna nazwa kolumny. W tym pasku formuły można wykonywać zapytania DAX.
![](https://www.sqlshack.com/wp-content/uploads/2020/05/executing-a-dax-query-in-the-formula-bar.png)
W pasku formuły należy wpisać zapytanie „Miesięcznie – Suma 2 = + ” i nacisnąć klawisz „Enter”. Po naciśnięciu klawisza Enter pojawi się nowa kolumna „Monthly-Total 2”, która wyświetla sumę wartości w kolumnach „TotalCharges” i „MonthlyCharges”.
![](https://www.sqlshack.com/wp-content/uploads/2020/05/our-new-formula-operating-in-the-formula-bar-.png)
Widać, że zapytania DAX są bardziej podobne do MS Excel.
Wnioski
M Language i DAX to dwa języki obsługiwane przez Power BI do manipulowania, filtrowania i analizowania danych. Choć oba języki mają podobne funkcjonalności, działają niezależnie od siebie. M jest używany do wstępnego przetwarzania danych w edytorze zapytań, podczas gdy DAX jest używany do analizy danych po ich załadowaniu do modelu widoku danych.
- Autor
- Recent Posts
![](https://s33046.pcdn.co/wp-content/uploads/gravatar/ben.jpg)
View all posts by Ben Richardson
![](https://s33046.pcdn.co/wp-content/uploads/gravatar/ben.jpg)
- Working with Power BI report themes – February 25, 2021
- Power BI: Wykresy wodospadowe i połączone wizualizacje – 19 stycznia 2021
- Power BI: Formatowanie warunkowe i kolory danych w akcji – 14 stycznia 2021
.