What's DAX?
DAX stands for "Data Analysis Expressions" which is a library of functions and operators that can be combined to build formulas and expressions in Power BI, Analysis Services, and Power Pivot in Excel data models.
DAX is a powerful query language you can create a full query using it, also you can create custom calculations for Calculated Columns, Measures, Calculated Tables, Calculation Groups, Custom Format Strings, and filter expressions in role-based security in Tabular models. it has multiple functions.
Where we can use DAX?
You can use the DAX in the following:
- Power BI
- DAX Studio
- Analysis Services
- Power Pivot
- Excel
DAX Functions
Date and time functions
DAX functions are based on the DateTime data types used by Microsoft SQL Server.
CALENDAR
Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is from the specified start date to the specified end date, inclusive of those two dates.
CALENDAR (DATE (2005, 1, 1), DATE (2015, 12, 31))
CALENDARAUTO
Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is calculated automatically based on data in the model.
CALENDARAUTO([fiscal_year_end_month])
DATE
Returns the specified date in datetime format.
DATE(2009,7,8)
DATEDIFF
Returns the count of interval boundaries crossed between two dates.
DATEDIFF([Start Date], [End Date], MINUTE )
DATEVALUE
Converts a date in text format to a date in datetime format.
DATEVALUE("8/1/2009")
DAY
Returns the day of the month, a number from 1 to 31.
DAY("March 4 2007")
EDATE
Returns the date that is the indicated number of months before or after the start date. Use EDATE to calculate maturity dates or due dates that fall on the same day of the month as the date of issue.
EDATE([TransactionDate],3)
EOMONTH
Returns the date in datetime format of the last day of the month, before or after a specified number of months. Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month.
EOMONTH("March 3, 2008",1.5)
HOUR
Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.).
HOUR("March 3, 2008 3:00 PM")
MINUTE
Returns the minute as a number from 0 to 59, given a date and time value.
MINUTE("March 23, 2008 1:45 PM")
MONTH
Returns the month as a number from 1 (January) to 12 (December).
MONTH("March 3, 2008 3:45 PM")
NOW
Returns the current date and time in datetime format.
The NOW function is useful when you need to display the current date and time on a worksheet or calculate a value based on the current date and time, and have that value updated each time you open the worksheet.
NOW()
QUARTER
Returns the quarter as a number from 1 (January – March) to 4 (October – December).
QUARTER([Order Date])
SECOND
Returns the seconds of a time value, as a number from 0 to 59.
SECOND("March 3, 2008 12:00:03")
TIME
Converts hours, minutes, and seconds given as numbers to a time in datetime format.
TIME([intHours],[intMinutes],[intSeconds])
TIMEVALUE
Converts a time in text format to a time in datetime format.
TIMEVALUE("20:45:30")
TODAY
Returns the current date.
TODAY()
UTCNOW
Returns the current UTC date and time.
UTCNOW()
UTCTODAY
Returns the current UTC date.
UTCTODAY()
WEEKDAY
Returns a number from 1 to 7 identifying the day of the week of a date. By default the day ranges from 1 (Sunday) to 7 (Saturday).
WEEKDAY([HireDate])
WEEKNUM
Returns the week number for the given date and year according to the return_type value. The week number indicates where the week falls numerically within a year.
WEEKNUM("Feb 14, 2010")
YEAR
Returns the year of a date as a four digit integer in the range 1900-9999.
YEAR("March 2007")
YEARFRAC
Calculates the fraction of the year represented by the number of whole days between two dates. Use the YEARFRAC worksheet function to identify the proportion of a whole year's benefits or obligations to assign to a specific term.
YEARFRAC("Jan 1 2007","Mar 1 2007")
Filter functions
These functions help you return specific data types, lookup values in related tables, and filter by related values. Lookup functions work by using tables and relationships between them. Filtering functions let you manipulate data context to create dynamic calculations.
FILTER(Sales,<filter>)
Financial functions
These functions are used in formulas that perform financial calculations, such as net present value and rate of return.
COUPDAYS(DATE(2011,1,25), DATE(2011,11,15), 2, 1)
Information functions
These functions look at a table or column provided as an argument to another function and tell you whether the value matches the expected type. For example, the ISERROR function returns TRUE if the value you reference contains an error.
ISERROR(150/0)
Logical functions
These functions return information about values in an expression. For example, the TRUE function lets you know whether an expression that you are evaluating returns a TRUE value.
IF('sales'[product]=12,"Offer","-")
Math and Trig functions
Mathematical functions in DAX are similar to Excel's mathematical and trigonometric functions. However, there are some differences in the numeric data types used by DAX functions.
ABS(-12)
Other functions
These functions perform unique actions that cannot be defined by any of the categories most other functions belong to.
BLANK('Sales'[Coupon])
Parent and Child functions
These Data Analysis Expressions (DAX) functions help users manage data that is presented as a parent/child hierarchy in their data models.
PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey])
Relationship functions
These functions are for managing and utilizing relationships between tables. For example, you can specify a particular relationship to be used in a calculation.
FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
Statistical functions
These functions perform aggregations. In addition to creating sums and averages, or finding minimum and maximum values, in DAX you can also filter a column before aggregating or create aggregations based on related tables.
COUNT( 'SalesTerritory'[SalesTerritoryCountry])
Table manipulation functions
These functions return a table or manipulate existing tables.
DataTable("Name", STRING, "Region", STRING ,{ {" User1","East"}, {" User2","East"}, {" User3","West"}, {" User4","West"}, {" User4","East"} } )
Text functions
With these functions, you can return part of a string, search for text within a string, or concatenate string values. Additional functions are for controlling the formats for dates, times, and numbers.
LOWER( 'SalesTerritory'[SalesTerritoryCountry])
Time intelligence functions
These functions help you create calculations that use built-in knowledge about calendars and dates. By using time and date ranges in combination with aggregations or calculations, you can build meaningful comparisons across comparable time periods for sales, inventory, and so on.
DATEADD(DateTime[DateKey],-1,year)
DAX data types
DAX supports values for seven data types:
- Integer
- Real
- Currency
- Date (DateTime)
- TRUE/FALSE (Boolean)
- String
- Variant
Conclusion
In conclusion, we have briefly explored the DAX and some of its main functions, and when we can use it.
See Also