powerbi Power Query (M) and DAX - What's the difference?


Introduction

M and DAX are two building blocks of Power BI. They both are functional languages but they differ considerably and are used for very different purposes.

This page shows code samples for both languages and explains their purpose.

Remarks

M and DAX are two building blocks of Power BI. They both are functional languages but they differ considerably and are used for very different purposes.

M is used in Power Query (a.k.a. Get & Transform in Excel 2016) and the query tool for Power BI Desktop. Its functions and syntax are very different from Excel worksheet functions. M is a mashup query language used to query a multitude of data sources. It contains commands to transform data and can return the results of the query and transformations to either an Excel table or the Excel or Power BI data model.

More information about M can be found in this MSDN area: Introduction to Power Query (informally known as "M") Formula Language

DAX stands for Data Analysis eXpressions. DAX is the formula language used in Power Pivot and Power BI Desktop. DAX uses functions to work on data that is stored in tables. Some DAX functions are identical to Excel worksheet functions, but DAX has many more functions to summarize, slice and dice complex data scenarios.

There are many tutorials and learning resources for DAX. The Introduction to DAX is a good place to start.

In essence: First you use Power Query (M) to query data sources, clean and load data. Then you use DAX to analyze the data in Power Pivot. Finally, you build pivot tables (Excel) or data visualisations with Power BI.

Power Query and DAX resources can also be found on lots of blogs (e.g. Power BI Team Blog) and in the "Desktop" section of the Power BI Community site.