Reference Updated March 25, 2026

LEVELFILTER

Category: Filtering & data shaping

Overview

Description

Filters the input to rows where a certain condition is met between level values of two compared levels.

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

Syntax

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

Parameters

  • Node: The input node with the values to be filtered.

  • Level1: The first level whose level values are compared.

  • Level2: The second level whose level values are compared.

  • Operation: The filtering condition. Supported operations are:

    • "EQ": Only returns rows where values of Level1 and Level2 are equal. (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.

  • CaseSensitive: Whether to perform the level value check in a case-sensitive manner or not. Supported values are:

    • "TRUE": Performs the check taking upper/lower case letters into account. (default)

    • "FALSE": Performs the check without taking upper/lower case letters into account.

Limitations/

Notes

  • 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.

  • The default operation is "EQ" if not specified.

  • The default case-sensitive value is "TRUE" if not specified.


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 Product→ LEVELFILTER 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 Product→ LEVELFILTER 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 Product→ LEVELFILTER 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 Product→ LEVELFILTER 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 Year→ LEVELFILTER 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 Year→ LEVELFILTER 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 Year→ LEVELFILTER 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)


FunctionWhen to use instead
FILTERWhen 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?