Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes! Register now.
I am attempting to do a sumx in an opportunity table in salesforce. I want to multiply each $ value in bookings column by its corresponding conversion rate based on the stage the opportunity is in. Here is how I calculate the conversion rates for qualified and negotiating. There is also tech select and evaluation
Closed Won Opportunity Count =
COUNTROWS(
FILTER(
Opportunity,
CONTAINSSTRING(Opportunity[StageName], "Closed Won")
)
)
Qualified Opportunity Count =
COUNTROWS(
FILTER(
Opportunity,
NOT(ISBLANK(Opportunity[Date_Moved_to_Qualified__c])) ||
NOT(ISBLANK(Opportunity[Date_Moved_to_Evaluation__c])) ||
NOT(ISBLANK(Opportunity[Date_Moved_to_Tech_Select__c])) ||
NOT(ISBLANK(Opportunity[Date_Moved_to_Negotiating__c])) ||
NOT(ISBLANK(Opportunity[Date_Moved_to_Submit_for_Processing__c])) ||
CONTAINSSTRING(Opportunity[StageName], "Closed Won")
)
)
Qualified Conversion =
DIVIDE([Closed Won Opportunity Count],[Qualified Opportunity Count])
Negotiating Opportunity Count =
COUNTROWS(
FILTER(
Opportunity,
NOT(ISBLANK(Opportunity[Date_Moved_to_Negotiating__c])) ||
NOT(ISBLANK(Opportunity[Date_Moved_to_Submit_for_Processing__c])) ||
CONTAINSSTRING(Opportunity[StageName], "Closed Won")
)
)
Negotiating Conversion =
DIVIDE([Closed Won Opportunity Count],[Negotiating Opportunity Count])
Every stage conversion rate follows this logic. The rates are calculating correctly in filter logic
I have made a bucket column where all closed wons stages are now
"in hand". I want to do a sumx that iterates through the opportunity table and forecasts bookings. This is the formula I made.
Forecasted Bookings =
SUMX(
Opportunity,
SWITCH(
TRUE(),
Opportunity[Stage] = "Qualified", Opportunity[Bookings__c] * [Qualified Conversion],
Opportunity[Stage] = "Tech Select", Opportunity[Bookings__c] * [Tech Select Conversion],
Opportunity[Stage] = "Negotiating", Opportunity[Bookings__c] * [Negotiating Conversion],
Opportunity[Stage] = "Evaluation", Opportunity[Bookings__c] * [Evaluation Conversion],
Opportunity[Stage] = "In Hand", Opportunity[Bookings__c],
Opportunity[Stage] = "Closed Lost", 0,
BLANK() // Default case if none of the conditions match
)
)
However when I iterate whenever the stage is one that needs to be multiplied by a rate. it returns a blank.
Why is this what can I do?
Hi @Anonymous share file via Office 365 or dropbox, google drive link or try to put each measure as variable so replace measure with variable
Proud to be a Super User!
Hi
in part Forecasted Bookings =
check part
Opportunity[Stage] = "In Hand", Opportunity[Bookings__c],
seems that after comma, definition is not finished?
@Anonymous
Proud to be a Super User!
it is saying if it is in hand then give the regular bookings without multiplying