DISAGGREGATE
DISAGGREGATE('OriginalNode', "Level", 'DistributionNode')
Legacy function
This function is sustained only for compatibility purposes. Please use the newer function DISTRIBUTE instead.
The DISAGGREGATE function disaggregates the values of the Original Node for the given Level based on the value distribution from the Distribution Node, in relation to the aggregated values of the Distribution Node when rolled up to the levels of the Original Node. Can be used to redistribute values that are not available on a certain level. An example is the assignment of OPEX to products according to their revenue.
Use this function when you need to allocate values from a higher level to a more detailed level based on an existing distribution.
Parameters
- OriginalNodeNode referenceRequired
- Input node, specified using the node name in single quotes (e.g.
'OPEX') - LevelLevel nameRequired
- Level by which the OriginalNode should be disaggregated, i.e. the level which should exist on the node after application of the function (e.g.
"Product") - DistributionNodeNode referenceRequired
- Node by whose distribution the values of the OriginalNode should be disaggregated, specified using the node name in single quotes (e.g.
'Revenue')
Watch out
- The function groups the values according to all shared levels of
OriginalNodeandDistributionNode. In the example given here, this is the"Year"level, and hence the distribution is applied to each year individually. If both nodes share a hierarchy but have different levels, theDistributionNodeneeds to have the finer level and is rolled up to match the level ofOriginalNode.
Example
Disaggregate annual OPEX to products
This example shows how annual OPEX values are distributed to the product level based on the revenue mix in each year. The distribution is calculated separately for each year because both input nodes share the 'Year' level.
Input node: 'OPEX'
| Year | Value |
|---|---|
| 2025 | 4000 |
| 2026 | 8000 |
Input node: 'Revenue'
| Year | Product | Value |
|---|---|---|
| 2025 | M1 | 100 |
| 2025 | M2 | 300 |
| 2025 | Z3 | 400 |
| 2026 | M1 | 200 |
| 2026 | M2 | 600 |
| 2026 | Z3 | 800 |
Formula: DISAGGREGATE('OPEX', "Product", 'Revenue')
| Year | Product | DISAGGREGATE Result |
|---|---|---|
| 2025 | M1 | 500 |
| 2025 | M2 | 1500 |
| 2025 | Z3 | 2000 |
| 2026 | M1 | 1000 |
| 2026 | M2 | 3000 |
| 2026 | Z3 | 4000 |
See also
- DISTRIBUTE
- When you want the modern replacement that covers the same use case with clearer behavior and fewer legacy limitations.
- ROLLUP
- When you want to aggregate values to a higher level instead of distributing them to a more detailed one.