Skip to main content
Skip table of contents

FINDFIRST

Category: Filtering & data shaping

Overview

Description

Returns the first defined value per group along a given level. If no level is given the function will automatically use the lowest level in the time dimension used by the node.

Use this when you need to select one representative value per group, for example the first entry per product or the starting value in a time series.

Syntax

FINDFIRST('Node'[, "Level"])

Parameters

  • Node: Input node.

  • Level (optional): The name of the level to find the first values in respect to. Defaults to the lowest time level on the node.

Limitations

An error will occur:

  • If no level is provided and the node does not use the time dimension.

  • The level must be present on the entered node.

  • The level to find can not be higher in the dimension than the level used in the node (e.g. if the node uses "Month" the level can not be "Year").

(info) Function combination

Often used together with TRUE to generate starting values, for example in combination with SCHEDULEPROJECTS: TRUE(FINDFIRST('Node'))


Example

First value per product along the time dimension

This example returns only the earliest defined value for each product. Products with gaps retain only the first year's value.

Input node: Node A

2025

2026

2027

2028

Product A

4.5

4.5

4.5

Product B

5

6

6.4

Product C

7

Product D

5.6

5.6

Formula: FINDFIRST('Node A') = FINDFIRST('Node A', "Year")

2025

2026

2027

2028

Product A

4.5

Product B

5

Product C

7

Product D

5.6


Related Functions

Function

When to use instead

ENUM

When you want an index or ordering helper based on measure values rather than selecting one value per group.

ENUM_LEVEL

When you want an index based on the order of level values in dimension management rather than selecting one value per group.

JavaScript errors detected

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

If this problem persists, please contact our support.