Professional Documents
Culture Documents
BID-309
Please silence
cell phones
Regional Event
This is Community
Session Recordings
PASS Newsletter
Session Evaluations
Submit by 11:59 PM EST
Friday Nov. 7 to
WIN prizes
Your feedback is
important and valuable.
ways to access
Go to
passsummit.com/evals
Evaluation Deadline:
11:59 PM EST, Sunday Nov. 16
a.raad.g@gmail.com
www.rad.pasfu.com
www.linkedin.com/in/rezarad
Agenda
Introduction to Power Query
Power Query Formula Language: M
Top Five M Functionalities
Date Dimension with Power Query
Power Query for Office 365 Benefits
Introduction to
Power Query
Online Search
Demo: Fetch
Movies Data
with Power
Query
Power Query
Formula
Language: M
What is M?
Everything that Happens on GUI works with a Code Behind
Code Behind is a Functional Language: M
Structure of M
M is Case Sensitive
M Syntax
let
TableA = #table({"CustomerId", "TranDate","TranCount"},
{
{1,DateTime.FromText("2014-01-01 01:00:00.000"),10},
{1,DateTime.FromText("2014-01-01 02:00:00.000"),5},
{1,DateTime.FromText("2014-01-03 01:00:00.000"),5},
{1,DateTime.FromText("2014-01-04 02:00:00.000"),80}
}),
TableB = #table({"CustomerId", "TranDate","TranCount"},
{
{1,DateTime.FromText("2014-01-01 02:00:00.000"),10},
{1,DateTime.FromText("2014-01-01 03:00:00.000"),5},
{1,DateTime.FromText("2014-01-02 01:00:00.000"),20},
{1,DateTime.FromText("2014-01-02 03:00:00.000"),15},
{2,DateTime.FromText("2014-01-01 01:00:00.000"),5},
{2,DateTime.FromText("2014-01-01 02:00:00.000"),80}
}),
TableATransformed=Table.Sort(
Table.AddColumn(TableA,"Date",each Date.From([TranDate]))
,{"CustomerId","TranDate"}
) ,
TableBTransformed=Table.Sort(
Table.AddColumn(TableB,"Date",each Date.From([TranDate]))
,{"CustomerId","TranDate"}
) ,
TableAGrouped=Table.Group(TableATransformed,{"CustomerId","Date"},{"Total",each List.Last([TranCount])}),
TableBGrouped=Table.Group(TableBTransformed,{"CustomerId","Date"},{"Total",each List.Last([TranCount])})
in
Table.Join(Table.PrefixColumns(TableAGrouped,"TableA"),{"TableA.CustomerId","TableA.Date"},TableBGrouped,{"CustomerId","Date"},JoinKind.FullOuter)
DEMO: Join
Tables with M
Script
Top 5 M
Functionalities
Error Handling
EACH; Singleton Function
Generator Functions
Table Functions
Table.AddColumn
Table.RemoveColumns
Table.ReorderColumns
Table.SelectColumns
Table.ReplaceValue
Table.Sort
Table.AddIndexColumn
Table.FillDown
DEMO: Table
Functions
Custom Functions
Re-use your code
Reduce redundancy
Increase consistency
Custom Functions
Lamda expression
Parameters (optional,required)
Multi-Line functions
Generators
List can be generated
List.Dates(<start date>,<end date>)
Generates List of Dates from <start date> to <end date>
DEMO: Custom
Function,
Generator, Each
Function
Error Handling
Control of Execution when error happens
Sending proper error messages
Preventing failure with messages for troubleshooting
DEMO: Error
Handling
Date Dimension
with Power
Query
Date Dimension
Features
Configurable via table in Excel Sheet
Fiscal Columns
Public Holidays Fetched Live
How it works
Generators; to build the base structure
EACH; to apply transformations on each item in list
Date/Text Functions
Odata
Table Functions
DEMO: Date
Dimension
Power BI Features
Share Queries
Manage Shared Queries
Find and use a Shared Query
View Usage Analytics for Shared Query
Summary
Questions?
@Rad_Reza
a.raad.g@gmail.com
www.rad.pasfu.com
www.linkedin.com/in/rezarad
Regional Event
This is Community
Session Recordings
PASS Newsletter
Session Evaluations
Submit by 11:59 PM EST
Friday Nov. 7 to
WIN prizes
Your feedback is
important and valuable.
ways to access
Go to
passsummit.com/evals
Evaluation Deadline:
11:59 PM EST, Sunday Nov. 16