Reference Updated March 26, 2026

ENUM_LEVEL

Category: Filtering & data shaping

Overview

Description

Iterates through the values of the specified levels and returns each value with a number assigned in ascending or descending order according to the sequence in the dimension management.

Use this when you need to number level values by their position in dimension management, for example to create index columns or define ordering rules independent of measure values.

Syntax

`ENUM_LEVEL("Level1" [, "Level2", ...] [, "Order"])`

Parameters

  • Level: One or more levels whose values are enumerated, specified in double quotes (e.g. "Year", "Country").

  • Order (optional): Whether to enumerate in ascending or descending order.

    • "ASC" - Enumerates in ascending order according to the sequence in dimension management. This is the default.

    • "DESC" - Enumerates in descending order (last value in dimension management gets number 1).

Limitations

  • If multiple levels are passed to the function, the alphabetical order of the dimension name and the hierarchy of levels within that dimension will determine which level takes precedence in the event of a tie.


Examples

Enumeration along a single level (ASC and DESC)

This example numbers each year value according to its position in dimension management, first ascending (default) then descending.

Formula: ENUM_LEVEL("Year")

Year→ ENUM_LEVEL Result
20251
20262
20273
20284

Formula: ENUM_LEVEL("Year", "DESC")

Year→ ENUM_LEVEL Result
20254
20263
20272
20281

Enumeration across multiple levels

When multiple levels are specified, the alphabetical order of dimension names determines which level takes precedence in the combined enumeration.

Dimensions:

Time → Year

Location → Country

Formula: ENUM_LEVEL("Year", "Country")

YearCountry→ ENUM_LEVEL Result
2025France1
2026France2
2027France3
2028France4
2025Germany5
2026Germany6
2027Germany7
2028Germany8

In this example "Location" dimension is prioritised over "Time" which starts enumeration with rows having value "France" over "Germany". Within the rows having same value, the "Year" level is used to further break the tie.


FunctionWhen to use instead
ENUMWhen you want to enumerate rows by measure value rather than by level order in dimension management.
FINDFIRSTWhen you want to select one value per group rather than assign ranking numbers.
Was this page helpful?