# RANKX Function (DAX)

Owen Duncan|Last Updated: 10/5/2018
|
1 Contributor

Returns the ranking of a number in a list of numbers for each row in the table argument.

## Syntax

``````RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
``````

#### Parameters

table
Any DAX expression that returns a table of data over which the expression is evaluated.

expression
Any DAX expression that returns a single scalar value. The expression is evaluated for each row of table, to generate all possible values for ranking. See the remarks section to understand the function behavior when expression evaluates to BLANK.

value
(Optional) Any DAX expression that returns a single scalar value whose rank is to be found. See the remarks section to understand the function’s behavior when value is not found in the expression.

When the value parameter is omitted, the value of expression at the current row is used instead.

order
(Optional) A value that specifies how to rank value, low to high or high to low:

valuealternate valueDescription
0 (zero)FALSERanks in descending order of values of expression. If value is equal to the highest number in expression then RANKX returns 1.

This is the default value when order parameter is omitted.
1TRUERanks in ascending order of expression. If value is equal to the lowest number in expression then RANKX returns 1.

ties
(Optional) An enumeration that defines how to determine ranking when there are ties.

enumerationDescription
SkipThe next rank value, after a tie, is the rank value of the tie plus the count of tied values. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 16 (11 + 5).

This is the default value when ties parameter is omitted.
DenseThe next rank value, after a tie, is the next rank value. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 12.

## Return Value

The rank number of value among all possible values of expression evaluated for all rows of table numbers.

## Remarks

• If expression or value evaluates to BLANK it is treated as a 0 (zero) for all expressions that result in a number, or as an empty text for all text expressions.

• If value is not among all possible values of expression then RANKX temporarily adds value to the values from expression and re-evaluates RANKX to determine the proper rank of value.

• Optional arguments might be skipped by placing an empty comma (,) in the argument list, i.e. RANKX(Inventory, [InventoryCost],,,"Dense")

## Example

The following calculated column in the Products table calculates the sales ranking for each product in the Internet channel.

``````=RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))
``````