Tutorial with example
In today’s DAX Fridays video I will show you how to round time, prices and numbers using ROUND, ROUNDUP, ROUNDDOWN, INT, TRUNC, ODD, EVEN, MROUND, FLOOR and CEILING. Rounding numbers, time and prices is a very useful skill as it will give you more control of your dataset and the accurancy in which your numbers are presented.
We are going through the functions in this order:
01:01 Round to the nearest number with ROUND
02:37 Round up to the nearest number with ROUNDUP
03:16 Round down to nearest number with ROUNDDOWN
04:11 Round down prices to the nearest integer with INT
05:00 Remove decimals from the number with TRUNC
05:48 Round up to the nearest odd number using ODD
06:11 Round up to the nearest odd number using ODD
07:43 Round prices to the nearest 0.05 of a euro cent with MROUND
08:58 Round down prices to the nearest 0.05 of a euro cent with FLOOR
09:23 Round up prices to the nearest 0.05 of a euro cent with CEILING
10:56 Round time to the nearest hour with MROUND
11:45 Round up time to the nearest 15 minutes with CEILING
12:31 Round down time to the nearest 15 minutes with FLOOR
Download example file:
Link to Power BI file: here.
There are two CEILING functions in DAX, with the following differences:
- The CEILING function emulates the behavior of the CEILING function in Excel.
- The ISO.CEILING function follows the ISO-defined behavior for determining the ceiling value.
The two functions return the same value for positive numbers, but different values for negative numbers. When using a positive multiple of significance, both CEILING and ISO.CEILING round negative numbers upward (toward positive infinity). When using a negative multiple of significance, CEILING rounds negative numbers downward (toward negative infinity), while ISO.CEILING rounds negative numbers upward (toward positive infinity).
The return type is usually of the same type of the significant argument, with the following exceptions:
- If the number argument type is currency, the return type is currency.
- If the significance argument type is Boolean, the return type is integer.
- If the significance argument type is non-numeric, the return type is real.