Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
coetseem
Regular Visitor

DAX Formula

Good day, 

 

I am looking for a dax formula that can caclulate a % over each status.

 

Meaning Churn / Opening ARR = -2.8 but i want to do this for all statuse below in one coloum.

 

Each status is devided over the Opening ARR.

 

Reporting Status Sum of ARR £m % of Opening ARR
Opening ARR                  111.38100.0%
Churn-                     3.17-2.8%
Downsell-                     3.99-3.6%
Gross Retention                  104.2293.6%
Upsell                    17.2515.5%
Net Retention                  121.46109.1%
New                      3.623.3%
Acquisitions                           -  0.0%
Closing ARR                  125.08112.3%
1 ACCEPTED SOLUTION

Hi @coetseem ,

Is this column the sum of all your clients?

vzhouwenmsft_0-1715849893707.png

 Use the following DAX expression to create  measures

value = SUM('Table'[ARR Value])
Measure = 
VAR _a = SUMXX(FILTER(ALL('Table'),'Table'[Reporting Status] = "Opening ARR"),[ARR Value])
RETURN DIVIDE([value],_a)

If you simply want to see the values for a single user, put the user field in the slicer.

View solution in original post

7 REPLIES 7
Ritaf1983
Super User
Super User

Hi @coetseem 
How does your data look?
Please provide sample data that covers your issue or question completely, in a usable format (not as a screenshot).
https://community.powerbi.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-...

Account No CF_CU_NAMESum of ARR ValueDatePeriodPeriodEntityRegionReporting StatusReporting Status Detailed
Tier13531.32153P6 - Jun-23P6UKRUKOpening ARROpening ARR
Tier13531.32153P6 - Jun-23P6UKRUKGross RetentionGross Retention
Tier1256.81846P6 - Jun-23P6UKRUKUpsell   - Upsell Revenue Stream
Tier13788.13999P6 - Jun-23P6UKRUKNet RetentionNet Retention
Tier10P6 - Jun-23P6UKRUKAcquisitions   - Acquisitions Revenue Stream
Tier13788.13999P6 - Jun-23P6UKRUKClosing ARRClosing ARR
Tier10542.47853P6 - Jun-23P6UKRUKOpening ARROpening ARR
Tier10542.47853P6 - Jun-23P6UKRUKGross RetentionGross Retention
Tier1071.97887P6 - Jun-23P6UKRUKUpsell   - Upsell Revenue Stream

Account No CF_CU_NAMESum of ARR ValueDatePeriodPeriodEntityRegionReporting Status
Tier13531.32153P6 - Jun-23P6UKRUKOpening ARR
Tier13531.32153P6 - Jun-23P6UKRUKGross Retention
Tier1256.81846P6 - Jun-23P6UKRUKUpsell
Tier13788.13999P6 - Jun-23P6UKRUKNet Retention
Tier110P6 - Jun-23P6UKRUKAcquisitions
Tier13788.13999P6 - Jun-23P6UKRUKClosing ARR
Tier10200P6 - Jun-23P6UKRUKChurn
Tier10100P6 - Jun-23P6UKRUKDownsell
Tier1050P6 - Jun-23P6UKRUKNew

StatusValueDAX %
Opening ARR3531.32100.0%
Churn200.005.7%
Downsell100.002.8%
Gross Retention3531.32100.0%
Upsell256.827.3%
Net Retention3788.14107.3%
New50.001.4%
Acquisitions10.000.3%
Closing ARR3788.14107.3%

 

The Opening ARR is devided by the Opening ARR which gives me the 100% then each status is devided into the Opening ARR to give me their % but all needs to be in one column.

Hi @Ritaf1983 ,thanks for the quick reply, I'll add further.

Hi @coetseem ,

The Table data is shown below:

vzhouwenmsft_0-1715762082341.png

Please follow these steps:
1. Use the following DAX expression to create a measure

value = SUM('Table'[Sum of ARR Value])

2.Use the following DAX expression to create a measure

Measure = 
VAR _a = MAXX(FILTER(ALL('Table'),'Table'[Reporting Status] = "Opening ARR"),[Sum of ARR Value])
RETURN DIVIDE([value],_a)

3.Final output

vzhouwenmsft_1-1715762158815.png

 

Good day, 

 

This does not work on my dataset.

 

I have over 80 000 clients and each one have a line with a Opening ARR, Churn etc so in the data set you will need to add a few clients each with an Opening ARR, Churn etc. Below is the output that i get when i applied the measure.

 

coetseem_0-1715767721300.png

 

Hi @coetseem ,

Is this column the sum of all your clients?

vzhouwenmsft_0-1715849893707.png

 Use the following DAX expression to create  measures

value = SUM('Table'[ARR Value])
Measure = 
VAR _a = SUMXX(FILTER(ALL('Table'),'Table'[Reporting Status] = "Opening ARR"),[ARR Value])
RETURN DIVIDE([value],_a)

If you simply want to see the values for a single user, put the user field in the slicer.

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.