cancel
Showing results for
Did you mean:
Regular Visitor

Market Share Percent In Ribbon Chart - % Of Column Total

We are trying to mimic The 100% stacked bar chart's % of column total calculation on a ribbon chart. So essentially a market share % of total calculation for each date we have.

We've tried creating a measure that we thought would work but it has not:

```AllDivisionTracking := CALCULATE ( [TrackingNumbers], ALL ( Divisions ) )

PercentOfTotal := DIVIDE ( [TrackingNumbers], [AllDivisionTracking] )```

This measure does not seem to work when inserted as the measure on a ribbon chart. The ribbon chart seems to make this calculation over the entire date range instead of limiting it to each day as we would have expected.

1 ACCEPTED SOLUTION
Regular Visitor

Taking @deldersveld solution into consideration a ribion chart with Market Share Trends can be created. I used the formulas below and tested it for accuracy and it seems to work:

```AllDivisionTracking := CALCULATE ( DistinctCount([TrackingNumbers]),FILTER(DateTable,DateTable[Date]), ALL ( Divisions ) )

PercentOfTotal := DIVIDE ( DistinctCount([TrackingNumbers]), [AllDivisionTracking] )```

I added an external date table that was used in the calculation.

3 REPLIES 3
New Member

I'm having the exact same problem but I think my data is set up slightly differently and I can't figure out what is going wrong. My data looks like the image attached.

I want the X axis on the chart to be Lifecycle Stage and the Y axis to be % of total cancellations by lifecycle stage, with each column split by cancellation reason.

I'd also like to be able to filter the resulting chart by geo and/or product type.

These are the measures I tried:

cancellation_reasons_per_stage =CALCULATE(SUM('Table 1'[Count]),filter('Table 1','Table 1'[Lifecycle Stage]),ALL('Table 1'[Cancellation Reason]))

%_of_total = DIVIDE(SUM('Table 1'[Count]),[cancellation_reasons_per_stage])

Thanks!

Regular Visitor

Taking @deldersveld solution into consideration a ribion chart with Market Share Trends can be created. I used the formulas below and tested it for accuracy and it seems to work:

```AllDivisionTracking := CALCULATE ( DistinctCount([TrackingNumbers]),FILTER(DateTable,DateTable[Date]), ALL ( Divisions ) )

PercentOfTotal := DIVIDE ( DistinctCount([TrackingNumbers]), [AllDivisionTracking] )```

I added an external date table that was used in the calculation.

MVP

Try using ALLEXCEPT with the date column instead of ALL: https://msdn.microsoft.com/en-us/query-bi/dax/allexcept-function-dax

Announcements

The Power BI Community Show

Welcome to the Power BI Community Show! Jeroen ter Heerdt talks about the importance of Data Modeling.

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through June10th!

Check it Out!

Watch Session 22 Ted's Dev Camp along with past sessions!