Forum Discussion
Cumulative Percentage
I am working on a report which calculates the percentage of sold per month , with the null value being the ones not sold. I have managed to create the below dataset and calculated the percetages and I am able to plot this no problem.
I now however need to be able to find the cumulative value of the percetages to allow me to plot the rise per month , however I want to exclude the null values from the count. See below my required dataset look :
The cumulative percentage should not include the null month and should total from month one up.
I am using the below measure to calculate the percentage:
PercentageClosed = COUNTROWS('Actual v Expected')/CALCULATE(COUNTROWS('Actual v Expected'),ALLSELECTED('Actual v Expected'))
So you're very close. ALLSELECTED returns all values that are currently being used in the table. You just need to add an extra filter statement that specifically calls out blank month of closure as something you don't want included in this measure.
Cumulative Total = CALCULATE ( COUNT ( 'Actual v Expected'[Count] ), FILTER ( ALLSELECTED ( 'Actual v Expected' ), ('Actual v Expected'[MONTH_OF_CLOSURE] <= MAX ( 'Actual v Expected'[MONTH_OF_CLOSURE] ) &&
('Actual v Expected'[MONTH_OF_CLOSURE] <> BLANK()) ) ))
9 Replies
- CmcmahanResident Rockstar
Try this:
PercentageClosed = COUNTROWS('Actual v Expected')/CALCULATE(COUNTROWS('Actual v Expected'),FILTER(ALLSELECTED('Actual v Expected'), Table[Month]<>BLANK()))This way you're explicitly filtering out month where the number is blank in your calculation.
- Arranafc19Helper IV
Hi Cmcmahan
this didnt work, What I am trying to achieve is to create a measure which calculates the cumulative percentage , but only starting from month one , not including the null values percentage
- v-frfei-msftCommunity Support
Hi Arranafc19 ,
We can create measures as below.
Measure = VAR a = MAX ( 'Table'[Month] ) - 1 RETURN IF ( a <> 0, CALCULATE ( SUM ( 'Table'[percentage] ), FILTER ( ALL ( 'Table' ), 'Table'[Month] = a ) ) )Measure 2 = CALCULATE ( SUMX ( 'Table', [Measure] ), FILTER ( ALL ( 'Table' ), 'Table'[Month] <= MAX ( 'Table'[Month] ) ) )- Arranafc19Helper IV
Hi v-frfei-msft
That didn't quite work as required, however maybe if I give a bit more context on my dataset , it may make more sense.
The table I am working off is called 'Comparison' and is made up of the below fields:
-> Month of closure which is calculated in the sql query by getting the datediff between the start and end date.
-> Count - this is creating when I grouped my dataset in power bi to count the number of rows per month of closure.
-> percentage closure -> how I am currently calculating the percetnage closed per month of closure using the below measure :
PercentageClosed = COUNTROWS('Actual v Expected')/CALCULATE(COUNTROWS('Actual v Expected'),ALLSELECTED('Actual v Expected'))From your screenshots below , this is close to what I require however I need month 1 to be included in the cumulative total and this is where the percentage total should begin.Only the null month percentage should be excluded- CmcmahanResident Rockstar
So you're happy with how Percentage Closure is currently being calculated? If your only issue is setting up the cumulative sum of percentages to ignore blank values, we can do that.
Cumulative % =
SUMX(
FILTER(
ALLSELECTED(Comparison),
Comparison[Month] <> BLANK() &&
Comparison[Month] <= SELECTEDVALUE(Comparison[Month])
),
[Percentage Closure]
)