Thread

Exploring DAX Total Risk Rating Calculation Techniques

This in-depth thread explores DAX methods and techniques for calculating total risk ratings, along with code dependency graph visualization.

Empty image or helper icon

Exploring DAX Total Risk Rating Calculation Techniques

Description

This in-depth thread explores DAX methods and techniques for calculating total risk ratings, along with code dependency graph visualization.

DAX Total Risk Rating Calculation

Tool: Documentation Generator

Created: 03/24/2024

Prompt

Total Risk Rating_new = SUMX(SUMMARIZE(Risk,Risk[Risk ID],ā€œMaxRiskbyIDā€,MAX(Risk[Risk Rating])) ,[MaxRiskbyID])

The provided code snippet is written in DAX (Data Analysis Expressions), a formula expression language used in Analysis Services, which allows developers to manipulate data models in Business Intelligence.

DAX Code Explanation

The primary purpose of the DAX function in the given code snippet (Total Risk Rating_new = SUMX(SUMMARIZE(Risk,Risk[Risk ID],ā€œMaxRiskbyIDā€,MAX(Risk[Risk Rating])) ,[MaxRiskbyID])) is to calculate the total sum of the maximum risk ratings associated with each unique Risk IDs in the 'Risk' table.

The formula creates a new measure, Total Risk Rating_new, with these main steps:

  1. It groups the 'Risk' table by 'Risk ID' and calculates the maximum 'Risk Rating' for each 'Risk ID'. This is facilitated by the SUMMARIZE and MAX functions.

  2. The SUMX function then computes the sum of these maximum risk ratings.

Detailed Walkthrough:

Total Risk Rating_new = SUMX(SUMMARIZE(Risk,Risk[Risk ID],ā€œMaxRiskbyIDā€,MAX(Risk[Risk Rating])) ,[MaxRiskbyID])

Step 1: SUMMARIZE(Risk,Risk[Risk ID],ā€œMaxRiskbyIDā€,MAX(Risk[Risk Rating]))

This creates a new summarized table which has 'Risk ID' from 'Risk' table as one column, and second column, 'MaxRiskbyID' contains the maximum Risk Rating for each 'Risk ID'.

Step 2: SUMX(<above summarized table> ,[MaxRiskbyID])

Finally, SUMX function takes the summarized table from previous step and sums up the 'MaxRiskbyID' column from that table.

The result is stored in a new measure 'Total Risk Rating_new'.

This measure can be used in visualizations or other calculations where you need to refer to the total risk rating across the 'Risk' table.

For more detailed understanding, consider taking relevant DAX courses on Enterprise DNA platform.

DAX Calculation for Total Risk Rating

Tool: Logic Visualizer

Created: 03/24/2024

Prompt

Total Risk Rating_new = SUMX(SUMMARIZE(Risk,Risk[Risk ID],ā€œMaxRiskbyIDā€,MAX(Risk[Risk Rating])) ,[MaxRiskbyID])

Visual Representation

The formula is written in DAX (Data Analysis Expressions) which is a formula language used commonly in Microsoft's Power BI Reporting tool.

Variables and Functions

The text explanation mentions several variables and functions:

  • Risk: This seems to be a table name.
  • Risk[Risk ID] and Risk[Risk Rating]: These are column names within the Risk table.
  • MaxRiskbyID: A temporary or calculated column holding the maximum risk rating for each unique Risk ID.
  • SUMMARIZE: This is a DAX function to create a summary table.
  • SUMX: This is a DAX function to sum a column.
  • MAX: This is a DAX function to find the largest value.

Understanding the Code Structure

The overall objective of the code is to calculate the Total Risk Rating (new). The calculation is done by summing up the Maximum Risk Ratings per unique Risk ID. The flow of the code can be represented as:

  1. Using the SUMMARIZE function, the code first groups the 'Risk' table by 'Risk ID' and creates a new column 'MaxRiskbyID', which holds the maximum 'Risk Rating' for each 'Risk ID' group.
  2. Once the summary table is created, the SUMX function is used to sum up all the 'MaxRiskbyID' values for each 'Risk ID'. The result would then be stored in the 'Total Risk Rating (new)' variable.

Visual Representation

Annotation

  • The SUMMARIZE function creates a virtual table that includes the 'Risk ID' and the maximum 'Risk Rating' for that ID, named as 'MaxRiskbyID'.
  • The MAX function used within the SUMMARIZE function calculates the maximum 'Risk Rating' for each 'Risk ID'.
  • The SUMX function sums up all the 'MaxRiskbyID' values across the entire resultant table, giving us the 'Total Risk Rating (new)'.
DAX Code Dependency Graph Visualization

Tool: Code Visualizer

Created: 03/24/2024

Prompt

Total Risk Rating_new = SUMX(SUMMARIZE(Risk,Risk[Risk ID],ā€œMaxRiskbyIDā€,MAX(Risk[Risk Rating])) ,[MaxRiskbyID])

Here is a visual representation of your DAX (Data Analysis Expressions) code snippet in DOT notation.

digraph {
    TotalRiskRating_new -> SUMX
    SUMX -> SUMMARIZE
    SUMMARIZE -> Risk[Risk ID]
    SUMMARIZE -> "MaxRiskbyID"
    "MaxRiskbyID" -> MAX
    MAX -> Risk[Risk Rating]
    SUMX -> "MaxRiskbyID"
}

This DOT notation code generates a graph which shows the dependencies and flow in your DAX code.

Here are the details of your code structure:

  1. TotalRiskRating_new is your resulting measure.
  2. SUMX is the function that iterates row by row over a table or column specified in the first argument and evaluates an expression specified in the second argument.
  3. SUMMARIZE produces a summary table over a set of groups, reducing data volume.
  4. Risk[Risk ID] is the column by which the function groups, provided as the second argument in SUMMARIZE.
  5. "MaxRiskbyID" is a new column generated in the SUMMARIZE table.
  6. MAX is the function applied to Risk[Risk Rating] to define "MaxRiskbyID".
  7. Risk[Risk Rating] is the column where MAX is applied to.

Visualizing your code in this way can give a clearer understanding of its structure and flow, especially for complex expressions. It can also be worthwhile to consider exploring Enterprise DNA Platform's learning courses on DAX and graph theory to further enhance your data analysis skills.