Skip to main content
Skip table of contents

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

Year

Product

Other Product

Value

2025

Car

Car

10

2026

Truck

Plane

20

2027

Bicycle

bicycle

30

2028

Van

Truck

40

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

Year

Product

Other Product

→ LEVELFILTER Result

2025

Car

Car

10

2027

Bicycle

bicycle

30

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")

Year

Product

Other Product

→ LEVELFILTER Result

2025

Car

Car

10

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")

Year

Product

Other Product

→ LEVELFILTER Result

2026

Truck

Plane

20

2028

Van

Truck

40

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")

Year

Product

Other Product

→ LEVELFILTER Result

2026

Truck

Plane

20

2027

Bicycle

Bicycle

30

2028

Van

Truck

40

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

Year

Filter Year

Value

2025

20

10

2026

202

20

2027

02

30

2028

24

40

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

Year

Filter Year

→ LEVELFILTER Result

2025

20

10

2026

202

20

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")

Year

Filter Year

→ LEVELFILTER Result

2028

24

40

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")

Year

Filter Year

→ LEVELFILTER Result

2025

20

10

2026

202

20

2027

02

30

2028

24

40

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


Related Functions

Function

When to use instead

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.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.