LEVELFILTER

LEVELFILTER('Node', "Level1", "Level2" [, "Operation" [, "CaseSensitive"]])

In Filtering & data shaping

The LEVELFILTER function filters the input to rows where a certain condition is met between level values of two compared levels.

Use this function when filtering depends on comparing member values between two levels rather than filtering by a fixed value list.

Parameters

NodeNode referenceRequired
The input node with the values to be filtered.
Level1Level nameRequired
The first level whose level values are compared.
Level2Level nameRequired
The second level whose level values are compared.
OperationKeywordOptional
The filtering condition. Default: "EQ".
  • "EQ": Only returns rows where values of Level1 and Level2 are equal. This is the default.
  • "NEQ": Only returns rows where values of Level1 and Level2 are different.
  • "STARTSWITH": Only returns rows where values of Level1 start with the values of Level2.
  • "ENDSWITH": Only returns rows where values of Level1 end with the values of Level2.
  • "CONTAINS": Returns rows where values of Level1 contain the values of Level2.
CaseSensitiveKeywordOptional
Whether to perform the level value check in a case-sensitive manner or not. Default: "TRUE".
  • "TRUE": Performs the check taking upper/lower case letters into account. This is the default.
  • "FALSE": Performs the check without taking upper/lower case letters into account.

Watch out

  • Node must contain both Level1 and Level2 to perform the filtering.
  • Level1 and Level2 cannot be the same level.
  • For the operations "STARTSWITH", "ENDSWITH", and "CONTAINS", the checks are performed based on the first compared level (Level1). This means the filtering is made according to whether a level value of Level1 matches a value of Level2, not the other way around.
  • For the operations "STARTSWITH", "ENDSWITH", and "CONTAINS", equal level values also return true values.

Examples

Compare two levels with equality and inequality

This example compares two product-related levels and shows how LEVELFILTER behaves with equality and inequality checks.

The input node contains the levels Year, Product, and Other Product.

Input node: 'Input node'

YearProductOther ProductValue
2025CarCar10
2026TruckPlane20
2027Bicyclebicycle30
2028VanTruck40

Formula: LEVELFILTER('Input node', "Product", "Other Product", "EQ", "FALSE")

YearProductOther ProductLEVELFILTER Result
2025CarCar10
2027Bicyclebicycle30

In this example, only rows with the same level values between "Product" and "Other Product" are kept. The row with "bicycle" is only kept because the operation is not performed case-sensitively.

Formula: LEVELFILTER('Input node', "Product", "Other Product", "EQ", "TRUE")

YearProductOther ProductLEVELFILTER Result
2025CarCar10

This example performs the same equality check case-sensitively, so the row with Bicycle and bicycle is removed.

Formula: LEVELFILTER('Input node', "Product", "Other Product", "NEQ", "FALSE")

YearProductOther ProductLEVELFILTER Result
2026TruckPlane20
2028VanTruck40

The not-equals operation keeps only the rows where the values of "Product" and "Other Product" differ.

Formula: LEVELFILTER('Input node', "Product", "Other Product", "NEQ", "TRUE")

YearProductOther ProductLEVELFILTER Result
2026TruckPlane20
2027Bicyclebicycle30
2028VanTruck40

With case-sensitive comparison enabled, Bicycle and bicycle are treated as different values and are therefore kept.

Use string comparison operations

This example shows how STARTSWITH, ENDSWITH, and CONTAINS work when comparing text-like level values.

Input node: 'Input node'

YearFilter YearValue
20252010
202620220
20270230
20282440

Formula: LEVELFILTER('Input node', "Year", "Filter Year", "STARTSWITH")

YearFilter YearLEVELFILTER Result
20252010
202620220

In this example, only the rows where the values of "Year" start with the values of "Filter Year" are kept. (2025, 2026)

Formula: LEVELFILTER('Input node', "Year", "Filter Year", "ENDSWITH")

YearFilter YearLEVELFILTER Result
20282440

In this example, only the rows where the values of "Year" end with the values of "Filter Year" are kept. (2024)

Formula: LEVELFILTER('Input node', "Year", "Filter Year", "CONTAINS")

YearFilter YearLEVELFILTER Result
20252010
202620220
20270230
20282440

In this example, all rows are kept since each Year value contains the value in Filter Year. (2025, 2026, 2027, 2024)

See also

FILTER
When you want to filter by explicit level values or simple conditions on one level instead of comparing values between two levels.
EQ (=)
When you want a 1/0 comparison flag between two inputs instead of directly filtering rows out of the result.
Was this page helpful?