Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 13

Power BI

DAX Functions
Lab Session 6
Outline
1. The calculate function
2. DAX contexts:- row & filter context
3. Time intelligence DAX calculations
4. Date table (separate)
 Dates & drill down
Calculate Function
 Evaluates an expression in context modified by filters.
 A very powerful function in DAT
 Syntax:-
 =CALCULATE(expression, filter)
 Example:=
 Total sales=CALCULATE(SUM(Sales[sales]), Sales[sales]>0)
Row and filter context
Cus Id Name Region Type
 Row context- works on row by row 1Zeleke South Government
basis. 2Melkam East Business
 Calculate Total Sales, … 3Nebyu East Consumer
4Alemu North Business
 Filter context- works on some given
5Selam West Government
filter condition not on row by row
basis. Cus Id Qty Unit Price Total Sales
5 10 2 
 East sales, Government sales, … 1 20 2.5 
4 25 2 
 Internal filter vs external filters. 2 15 1.5 
4 18 1.9 
 Internal to a CALCULATE function 3 5 2 
 External filter is outside a DAX formula, 2 30 2.5 
5 10 1.5 
such as in visuals.
Calculate Function…
 Count the number of sales for a customer:
 Count Cus Sales = count(Sales[Sales]) <= WRONG it counts all rows
 Cus Sales Count = COUNTX(RELATEDTABLE(Sales),Sales[Sales])

 Customers sales & max order date:


 Max order date = MAXX(RELATEDTABLE(Sales), Sales[Order Date])
 Cus Sales = [Total Sales]
Calculate Function…
 Calculate profit by one or more category:
 Office Supply Profit = CALCULATE([Total
Profit],Product[Category]="Office Supplies")
 Fur and Sup Profit = CALCULATE([Total Profit],Product[Category] IN
{"Office Supplies", "Furniture"})
 Profit Fur and Sup = CALCULATE([Total Profit],
Product[Category]="Office Supplies") || Product[Category]=" Furniture ")
 Calculate profit for a year:
 Profit 2017= CALCULATE([Total Profit], ‘MyDates'[Year] = 2017)
What is Time Intelligence?
 Time intelligence functions enable you to manipulate data
using time periods such as years, quarters, months, and days
and creating calculations over those time periods.
 Doing BI calculations over periods of time or over
dates.
 Year to date
 Month to date
 Last 12 months
 Automatically creates a hidden date table for each field
in the model with a date or date/time data type
Time Intelligence: Creating a date table
 Why separate DATE table?
 The dates in our sales table may not include all dates.
 Performance issue: for each date field power bi creates a date table
if the “auto date” is on.
 It is good practice to turn it off.
 How to create Date table: Many options
 MyDate = CALENDARAUTO()
 Generated dates are taken from our model.
 Has only one column “Date”
Time Intelligence: Creating a date table
 MyDates = ADDCOLUMNS (CALENDAR(DATE(YEAR(MIN(Sales[Order
Date])),01,01),
 DATE(YEAR(MAX(Sales[Order Date])),12,31)),
"DateID", VALUE(FORMAT([Date], "YYYYMMDD")),
"Year", YEAR([Date]),
"MonthNo", MONTH([Date]),
"Month", FORMAT([Date],"mmm"),
"Quarter", FORMAT([Date],"\QQ"),
"QuarterNo", QUARTER([Date]),
"YearMM", VALUE(FORMAT([Date],"YYYYMM")),
"WeekdayNo", WEEKDAY([Date],2)
)
Time Intelligence functions
 Comparing sales with last year:
 TotalSales LY = CALCULATE(Sales[Total Sales],
SAMEPERIODLASTYEAR(MyDates[Date]))
 TotalSales LY2 = CALCULATE([Total Sales],
DATEADD(MyDates[Date],-1,YEAR))
 Comparing sales with last month:
 TotalSales LM = CALCULATE([Total Sales], DATEADD(MyDates[Date],-
1,MONTH))
Time Intelligence… DATESMTD(), DATESYTD(), DATESQTD()

 Year to date:
 Sales YTD = CALCULATE([Total Sales], DATESYTD(MyDates[date]))
 Month to date:
 Sales MTD = CALCULATE([Total Sales], DATESMTD(MyDates[date]))
 To compute sales for the previous year’s mtd/ytd/qtd
 Sales LY MTD=CALCULATE([TotalSales LY ],
DATESMTD(MyDates[Date]))
 Sales difference with last year:
 Sales Yearly Difference = [Total Sales] - [TotalSales LY]
Time Intelligence Functions
 Calculating cumulative/rollover sales:
 CumSales = CALCULATE ([Total Sales],
FILTER ( ALLSELECTED ( MyDates[Date] ),
MyDates[Date] <= MAX ( MyDates[Date] ) ))
Thank you!!

You might also like