Skip to main content
Skip table of contents

Filtering & data shaping

Overview

Use this category when you need to restrict results to a subset, select representative values per group, fill missing combinations, or create helper tables such as ranks and enumerations.

These functions help you shape the result set without changing overall dimensionality.

Start here if…

  • You want to filter a node to specific level values, for example EMEA or APAC only.

  • You want to pick one value per group.

  • You want to fill missing level values or combinations so calculations don’t break.

  • You need ranking / enumeration helpers for further logic.

Not here if…


Mental model

  • Filter functions keep only rows that match a level value or condition

  • Pick functions select one value per group

  • Fill functions add missing level values or combinations

  • Rank functions generate helper indices based on value order or dimension order

  • Map functions translate values through a lookup or threshold table


Common patterns

Filter to a list of level values
FILTER('Node', "Level", ["A", "B"])
Use when you want a subset based on explicit level values.

Filter by comparing level values
LEVELFILTER('Node', "Level1", "Level2")
Use when the filter depends on comparing one level value to another.

Pick the first value per group
FINDFIRST('Node')
Use when you need a single representative value per group.

Fill missing level values for a dimension
FILLMISSING('Node')
Use when you want all level values of a dimension to be present.

Fill missing with last available value
FILLMISSING_LAST('Node')
Use when you want to carry the previous value forward.

Fill missing values after reshaping
FILL_NA('Node')
Use when reshaping or pivoting created missing cells that should be filled explicitly.

Mark missing combinations between two nodes
FINDMISSING('Node1', 'Node2')
Use when you want a diagnostic flag for mismatched combinations.

Create a rank or enumeration helper
ENUM('Node') or ENUM_LEVEL("Level")
Use when you need indices for sorting, thresholds, or rule logic.

Map values through a lookup table
LOOKUP('LookupValue', 'Index', 'ReturnValue')
Use when you need threshold-based mapping from one measure to another.


Functions in this category

Function

Description

FILTER

Keeps only rows where the specified level matches the filter condition.

LEVELFILTER

Keeps only rows where a comparison between two level values meets a condition.

FINDFIRST

Returns the first value per group defined by a specified level.

FILLMISSING

Adds missing level values for a dimension into the result.

FILLMISSING_LAST

Fills missing level values using the last available value.

FILL_NA

Fills missing values for existing combinations after reshaping/pivoting.

FINDMISSING

Marks missing combinations between two nodes as 1 and existing ones as 0.

ENUM

Assigns an index based on value order (ascending/descending).

ENUM_LEVEL

Assigns an index based on the order of level values in dimension management.

LOOKUP

Maps values using an index/return table with threshold matching.


Choosing between similar functions

FILTER vs LEVELFILTER

  • Use FILTER when you filter by explicit level values or simple conditions on one level.

  • Use LEVELFILTER when the filter depends on comparing level values.

FILLMISSING vs FILLMISSING_LAST

  • Use FILLMISSING when you want to add missing values using a defined fill behavior.

  • Use FILLMISSING_LAST when you want to fill gaps with the last available value.

FILLMISSING vs FILL_NA

  • Use FILLMISSING when you want to add missing values for a dimension or level.

  • Use FILL_NA when reshaping created missing cells and you want to fill only those cells.

FINDFIRST vs ENUM / ENUM_LEVEL

  • Use FINDFIRST when you want to select one value per group.

  • Use ENUM / ENUM_LEVEL when you want an index or ordering helper.

FINDMISSING vs IS_NA

  • Use FINDMISSING when you want to compare two nodes and detect missing combinations between them.

  • Use IS_NA when you want to detect undefined values in a single node.


Pitfalls & troubleshooting

  • FILTER returns empty: confirm level values match exactly (spelling/case) and the referenced level is correct.

  • More rows than expected after filling: confirm that you are filling the intended dimension or level.

  • Unexpected missing values after reshaping: use FILL_NA or a diagnostic helper node to inspect missing intersections.

  • Single-node missingness checks: use IS_NA when you need a diagnostic flag for undefined values.


Related sections

JavaScript errors detected

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

If this problem persists, please contact our support.