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

Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!

Reply
Vyshnavi
New Member

i got contribution more 100% how to resolve these issue ... below i have shared the logic

I need to calculate th contribution for opportunity rsv  threshold .but i'm getting more than 100%

first i calcualted the opportunity rsv logic 
Opportunity RSV = [New RSV]-[RSV]

later i created the driving measure to get postive and negative data.
RSV_Threshold =

var opportunityrsv=[Opportunity RSV]

return if(opportunityrsv < 0 ,-1,IF([Opportunity RSV]>0,1,0))

i calculated the rsv threshold at cell level i summed up opportunity rsv .
Opportunity Rsv Threshold =

VAR positive_opportunity_rsv = SUMX (
'Target',
IF ('Target'[RSV_Threshold]=1 , [Opportunity RSV], 0 )
)
VAR negative_opportunity_rsv = SUMX (
'Target',
IF ( 'Target'[RSV_Threshold] = -1, [Opportunity RSV], 0 )
)
VAR net_rsv = positive_opportunity_rsv - negative_opportunity_rsv

var Opportunityrsv=
SWITCH(
MAX('Opportunity RSV'[Opportunity RSV Comparison]) ,
"Negative opportunity RSV",negative_opportunity_rsv ,
"Positive opportunity RSV", positive_opportunity_rsv ,
"NET Opportunity RSV", net_rsv)

return IF(ISBLANK(SUM('Time Progression'[Progression Offset])), BLANK(), Opportunityrsv)

 now i need to calculate the contribution intried the below logic but it's giving more than 100% how to resolve these.

Opportunity Rsv Threshold contribution =
var totarsv=CALCULATE(SUMX(Target, [Opportunity RSV]),ALL(Target))
VAR positive_opportunity_rsv = SUMX (
            'Target',
            IF ('Target'[RSV_Threshold]=1 , [Opportunity RSV], 0 )
        )
VAR negative_opportunity_rsv = SUMX (
            'Target',
            IF ( 'Target'[RSV_Threshold] = -1, [Opportunity RSV], 0 )
        )
VAR net_rsv = positive_opportunity_rsv +negative_opportunity_rsv

var Opportunityrsv=  
SWITCH(
        MAX('Opportunity RSV'[Opportunity RSV Comparison]) ,
    "Negative opportunity RSV",DIVIDE(negative_opportunity_rsv,totarsv) ,
    "Positive opportunity RSV", DIVIDE( positive_opportunity_rsv,totarsv) ,
    "NET Opportunity RSV",DIVIDE( net_rsv,totarsv))
       
return IF(ISBLANK(SUM('Time Progression'[Progression Offset])), BLANK(), Opportunityrsv)
   
1 ACCEPTED SOLUTION
Vyshnavi
New Member

var totarsv=CALCULATE(SUMX(Target, [Opportunity RSV]),ALL(Target))
VAR positive_opportunity_rsv = SUMX (
            'Target',
            IF ('Target'[RSV_Threshold]=1 , [Opportunity RSV], 0 )
        )
VAR negative_opportunity_rsv = SUMX (
            'Target',
            IF ( 'Target'[RSV_Threshold] = -1, [Opportunity RSV], 0 )
        )
VAR net_rsv = positive_opportunity_rsv +negative_opportunity_rsv

 

var Opportunityrsv=  
SWITCH(
        MAX('Opportunity RSV'[Opportunity RSV Comparison]) ,
    "Negative opportunity RSV",DIVIDE(negative_opportunity_rsv,totarsv) ,
    "Positive opportunity RSV"DIVIDE( positive_opportunity_rsv,totarsv) ,
    "NET Opportunity RSV",DIVIDE( net_rsv,totarsv))
       
return IF(ISBLANK(SUM('Time Progression'[Progression Offset])), BLANK(), Opportunityrsv)
   these logic is giving more than 100%
 

View solution in original post

3 REPLIES 3
Vyshnavi
New Member

Vyshnavi_0-1729056461272.png

the measure i'm using 

contribution =
var Total_RSV =
CALCULATE([Opportunity RSV],  FILTER(Target,[RSV_Threshold] = 1 || 'Target'[RSV_Threshold] = -1),REMOVEFILTERS('Target'))


VAR Positive_RSV =
SUMX(
    'Target',
    IF('Target'[RSV_Threshold] = 1, [Opportunity RSV], 0)
)

VAR Negative_RSV =
SUMX(
    'Target',
    IF('Target'[RSV_Threshold] = -1, [Opportunity RSV], 0)
)

VAR Net_RSV = Positive_RSV - Negative_RSV


VAR Positive_Contribution =
DIVIDE(Positive_RSV, Total_RSV, 0)

VAR Negative_Contribution =
DIVIDE(Negative_RSV, Total_RSV, 0)

VAR Net_Contribution =
DIVIDE(Net_RSV, Total_RSV, 0)

RETURN
SWITCH(
    MAX('Opportunity RSV'[Opportunity RSV Comparison]),
    "Positive opportunity RSV", Positive_Contribution,
    "Negative opportunity RSV", Negative_Contribution,
    "NET Opportunity RSV", Net_Contribution,
    BLANK()
)
Vyshnavi
New Member

var totarsv=CALCULATE(SUMX(Target, [Opportunity RSV]),ALL(Target))
VAR positive_opportunity_rsv = SUMX (
            'Target',
            IF ('Target'[RSV_Threshold]=1 , [Opportunity RSV], 0 )
        )
VAR negative_opportunity_rsv = SUMX (
            'Target',
            IF ( 'Target'[RSV_Threshold] = -1, [Opportunity RSV], 0 )
        )
VAR net_rsv = positive_opportunity_rsv +negative_opportunity_rsv

 

var Opportunityrsv=  
SWITCH(
        MAX('Opportunity RSV'[Opportunity RSV Comparison]) ,
    "Negative opportunity RSV",DIVIDE(negative_opportunity_rsv,totarsv) ,
    "Positive opportunity RSV"DIVIDE( positive_opportunity_rsv,totarsv) ,
    "NET Opportunity RSV",DIVIDE( net_rsv,totarsv))
       
return IF(ISBLANK(SUM('Time Progression'[Progression Offset])), BLANK(), Opportunityrsv)
   these logic is giving more than 100%
 
lbendlin
Super User
Super User

Please provide sample data that covers your issue or question completely, in a usable format (not as a screenshot).

Do not include sensitive information. Do not include anything that is unrelated to the issue or question.

Need help uploading data? https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...

Please show the expected outcome based on the sample data you provided.

Want faster answers? https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...

Helpful resources

Announcements
Sticker Challenge 2026 Carousel

Join our Community Sticker Challenge 2026

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

January Power BI Update Carousel

Power BI Monthly Update - January 2026

Check out the January 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.