CEILING DAX Function (Math and Trig)
Rounds a number up, to the nearest integer or to the nearest unit of significance.
Syntax
Parameter | Attributes | Description |
---|---|---|
Number |
The value you want to round. |
|
Significance |
The multiple to which you want to round. |
Return values
The number is rounded as specified. The return data 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 Decimal.
Remarks
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).
Examples
= CEILING ( 10.2, 1 ) -- Returns 11 (Integer) = CEILING ( 10.7, 1 ) -- Returns 11 (Integer) = CEILING ( 10.2, 0.5 ) -- Returns 10.5 (Decimal) = CEILING ( 10.7, 0.5 ) -- Returns 11 (Decimal) = CEILING ( 10.2, CURRENCY ( 0.5 ) ) -- Returns 10.5 (Currency) = CEILING ( 10.7, CURRENCY ( 0.5 ) ) -- Returns 11 (Currency) = CEILING ( -10.2, 1 ) -- Returns -10 (Integer) = CEILING ( -10.2, -1 ) -- Returns -11 (Integer) = CEILING ( -10.7, 1 ) -- Returns -10 (Integer) = CEILING ( -10.7, -1 ) -- Returns -11 (Integer) = CEILING ( -10.2, 0.5 ) -- Returns -10 (Decimal) = CEILING ( -10.7, 0.5 ) -- Returns -10.5 (Decimal) = CEILING ( -10.2, CURRENCY ( 0.5 ) ) -- Returns -10 (Currency) = CEILING ( -10.7, CURRENCY ( 0.5 ) ) -- Returns -10.5 (Currency)
-- Rounding functions, using multiples of the second argument -- -- FLOOR returns the smaller multiple -- MROUND returns the nearer multiple (does not work with negative values) -- CEILING returns the larger multiple -- ISO.CEILING is like CEILING, handles differently negative numbers DEFINE VAR Vals = GENERATESERIES ( 5, 20, 2 ) EVALUATE ADDCOLUMNS ( Vals, "FLOOR", FLOOR ( [Value], 3 ), "MROUND", MROUND ( [Value], 3 ), "CEILING", CEILING ( [Value], 3 ), "ISO.CEILING", ISO.CEILING ( [Value], 3 ) )
Value | FLOOR | MROUND | CEILING | ISO.CEILING |
---|---|---|---|---|
5 | 3 | 6 | 6 | 6 |
7 | 6 | 6 | 9 | 9 |
9 | 9 | 9 | 9 | 9 |
11 | 9 | 12 | 12 | 12 |
13 | 12 | 12 | 15 | 15 |
15 | 15 | 15 | 15 | 15 |
17 | 15 | 18 | 18 | 18 |
19 | 18 | 18 | 21 | 21 |
-- When the significance is negative, CEILING and ISO.CEILING -- behave differently -- -- CEILING rounds towards the smaller value ISO.CEILING rounds towards -- the largest one. This is important with negative significance DEFINE VAR Vals = GENERATESERIES ( -20, 0, 3 ) VAR Significance = -3 EVALUATE ADDCOLUMNS ( Vals, "FLOOR", FLOOR ( [Value], Significance ), "CEILING", CEILING ( [Value], Significance ), "ISO.CEILING", ISO.CEILING ( [Value], Significance ) )
Value | FLOOR | CEILING | ISO.CEILING |
---|---|---|---|
-20 | -18 | -21 | -18 |
-17 | -15 | -18 | -15 |
-14 | -12 | -15 | -12 |
-11 | -9 | -12 | -9 |
-8 | -6 | -9 | -6 |
-5 | -3 | -6 | -3 |
-2 | 0 | -3 | 0 |
Related functions
Other related functions are:
Last update: Dec 4, 2024 » Contribute » Show contributors
Contributors: Alberto Ferrari, Marco Russo
Microsoft documentation: https://docs.microsoft.com/en-us/dax/ceiling-function-dax