Skip to main content

Calculation Measure

The Calculation Measure function provides flexible measure computation for multidimensional analysis, supporting various calculation types to enable complex analysis scenarios. This document details the types of calculation measures and their configuration methods.


1. Conditional Aggregationโ€‹

Conditional Aggregation supports summarizing measure data based on specified conditions and aggregation methods. Aggregation functions include:

Aggregation FunctionDescription
SumCumulative sum
CountCount of selected dimension members
MinMinimum measure value among dimension members
MaxMaximum measure value among dimension members
AverageAverage measure value among dimension members
Standard DeviationSample standard deviation of measure
Population Standard DeviationPopulation standard deviation of measure
MedianMedian measure value among dimension members
Top PercentSum of top X% of dimension members by measure
Top CountSum of top N dimension members by measure
Top SumSum until cumulative measure exceeds threshold
  • Using Conditional Aggregation: Aggregation functions compute under selected conditions (include or exclude).

Conditional Aggregation Functions and Examples

1. Sumโ€‹

Description: Sums measure values for specified dimension members.

Example: Sum sales for "Beverages" product category:

Sum(
[Product].[Category].[Beverages].Children,
[Measures].[Sales Amount]
)

2. Countโ€‹

Description: Counts dimension members meeting conditions.

Example: Count provinces with sales > 1M:

Count(
Filter(
[Region].[Province].Members,
[Measures].[Sales Amount] > 1000000
)
)

3. Minโ€‹

Description: Returns minimum measure value among dimension members.

Example: Find lowest sales amount in product subcategories:

Min(
[Product].[Subcategory].Children,
[Measures].[Sales Amount]
)

4. Maxโ€‹

Description: Returns maximum measure value among dimension members.

Example: Find highest sales amount across regions:

Max(
[Region].[Area].Children,
[Measures].[Sales Amount]
)

5. Averageโ€‹

Description: Calculates average measure value among dimension members.

Example: Average order amount per customer group:

Avg(
[Customer].[Group].Children,
[Measures].[Order Amount]
)

6. Standard Deviationโ€‹

Description: Calculates sample standard deviation (divided by n-1).

Example: Analyze sales volatility (sample standard deviation):

Stdev(
[Product].[Subcategory].Members,
[Measures].[Sales Amount]
)

7. Population Standard Deviationโ€‹

Description: Calculates population standard deviation (divided by n).

Example: Population standard deviation of sales across countries:

StdevP(
[Geography].[Country].Members,
[Measures].[Sales Amount]
)

8. Medianโ€‹

Description: Returns median measure value among dimension members.

Example: Median sales amount across product categories:

Median(
[Product].[Category].Members,
[Measures].[Sales Amount]
)

9. Top Percentโ€‹

Description: Sums top X% of dimension members sorted by measure.

Example: Total sales of top 20% customers:

Sum(
TopPercent(
[Customer].[Customer Name].Members,
20,
[Measures].[Sales Amount]
),
[Measures].[Sales Amount]
)

10. Top Countโ€‹

Description: Sums top N dimension members by measure.

Example: Sum sales of top 5 provinces:

Sum(
TopCount(
[Region].[Province].Members,
5,
[Measures].[Sales Amount]
),
[Measures].[Sales Amount]
)

11. Top Sumโ€‹

Description: Sums members until cumulative measure exceeds threshold.

Example: Sum top customers until total sales exceed 5M:

Sum(
TopSum(
[Customer].[Customer Name].Members,
5000000,
[Measures].[Sales Amount]
),
[Measures].[Sales Amount]
)

Using Conditional Aggregationโ€‹

Conditional aggregation computes under specified conditions (include or exclude).

โœ… Principle:โ€‹

Conditional aggregation applies aggregation functions (e.g., Sum, Avg, Count) to dimension members meeting specific conditions, using Filter, Aggregate, or specific members (e.g., customer, product, region) to limit the data subset.

In MDX, conditions are embedded in the aggregation functionโ€™s second parameter:

Sum(Dimension.Members, Aggregate(Condition, [Measures].Value))

โœ… Purpose:โ€‹

  1. Finer Data Analysis: E.g., sum sales for โ€œSpecialty Bike Shopโ€ customers only.
  2. Business Condition Modeling: E.g., calculate sales from VIP customers or specific regions.
  3. Flexible Reporting: Build complex measures via MDX without altering cube structure.

โœ… Example Comparison:โ€‹

  • Without Conditional Aggregation:

    Sum( [Product.Products].[Category].Members, [Measures].[Sales Amount] )

    ๐Ÿ‘‰ Unconditional sum of sales across all product categories.

  • With Conditional Aggregation:

    Sum( [Product.Products].[Category].Members, Aggregate( [Reseller].[Specialty Bike Shop], [Measures].[Sales Amount] ) )

    ๐Ÿ‘‰ Sum sales for โ€œSpecialty Bike Shopโ€ resellers, restricted to each product category.

2. Restricted Measureโ€‹

Restricted Measure refers to measures under specific constraints, such as limiting variable ranges, relationships, or values. E.g., analyzing data points within a specific dimension range or with defined relationships, improving analysis precision and statistical significance.

  1. Select base measure field.
  2. Add one or more constraint dimensions and specify members or dynamic parameters.
  3. Optional: Enable Constant Selection to fix constraints against other query filters.

๐Ÿ’ก Note: Constraints can be dynamically set via parameters. See Parameter Usage in Restricted Measures.

Constant Selectionโ€‹

When enabled, measure constraints remain fixed, unaffected by page filters or query conditions. When disabled, constraints adapt to query context changes.

Parameter Restrictionโ€‹

Constraints support parameters, allowing users to interactively select dimension members, enhancing analysis flexibility.

๐Ÿ“˜ Note: Indicator is a special form of restricted measure with identical constraint mechanisms.


3. Calculated Measureโ€‹

Calculated Measure supports custom expressions for complex computation logic.

Usage:โ€‹

  • Enter formula in the calculation measure editor.
  • Reference existing measures, dimension members, or parameters.
  • Use various mathematical and analytical functions.

Example:

AVG(LastPeriods([@Sales_MA_Windows], [Time].CurrentMember), [Measures].[profit])

Where:

  • [@Sales_MA_Windows] references a parameter.
  • [Measures].[profit] references a measure field.

Toolbar Supportโ€‹

  • Dimension Members: Browse and insert hierarchy members.
  • Calculated Members: Insert existing calculated measures.
  • Parameter Management: Insert or create parameter variables.

See: Parameter Usage in Calculated Measures.


4. Measure Controlโ€‹

Measure Control creates dynamically selectable measure fields, allowing users to choose measures during analysis.

Configuration Steps:โ€‹

  1. Create a calculation measure, select Measure Control type.
  2. Define display behavior and add selectable measure fields.
  3. Configure input controls (e.g., measure selector widget) for user interaction.

๐Ÿ“˜ See: Input Control Widgets.


5. Difference Fromโ€‹

Difference From supports difference or ratio calculations between dimension members, suitable for year-over-year, period-over-period, or version comparisons. Supports time and other dimension types.

Configuration Process:โ€‹

  1. Select measure field for comparison (supports all measure types).
  2. Set base dimension (e.g., time).
  3. Configure comparison items:
    • Current member.
    • Previous N members.
    • Next N members.
    • Parallel members (specify level).
    • Ancestor members (at specified level).
  4. Set comparison method:
    • Difference: A - B.
    • Percentage Difference: (A - B) / A or (A - B) / B.
    • Direct Ratio: A / B.
    • Denominator Absolute Value: E.g., (A - B) / abs(B).

This flexible setup supports various comparison dimensions and methods, meeting common data comparison needs.


For more on parameter settings, input controls, and chart interactions, see: