cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
amandaborges
Regular Visitor

How to calculate the number of active opportunities per month

Hi guys, 

 

I'm new here and I have the following scenario:

 

I use the SalesForce opportunities base and I have a calendar table. The two are related by the opportunity's closing date. (Making it clear that in the Opportunity table, the data is not repeated)

 

My structure is as follows in the Opportunity table:

 

amandaborges_0-1626725274874.png

 

I need to make a table with the months of the year and how many active opportunities per month.

 

For example: Opportunity 1 opened in January and closed in July. It has to appear active in January, February, March, April, May, June and July.

 

How can I do this? I can't solve it 😞

 

Thank you in advance!

1 ACCEPTED SOLUTION
DataInsights
Super User II
Super User II

@amandaborges,

 

This solution uses a disconnected date table SlicerDate. It does not have any relationships with other tables.

 

Measure:

 

Active Opportunities = 
VAR vMinDate =
    MIN ( SlicerDate[Date] )
VAR vMaxDate =
    MAX ( SlicerDate[Date] )
VAR vResult =
    CALCULATE (
        COUNT ( Opportunity[ID] ),
        // creation date in current month
        ( Opportunity[Creation date] >= vMinDate
            && Opportunity[Creation date] <= vMaxDate )
            // closing date in current month
            || ( Opportunity[Closing date] >= vMinDate
            && Opportunity[Closing date] <= vMaxDate )
            // creation date in earlier month and closing date in later month
            || ( Opportunity[Creation date] < vMinDate
            && Opportunity[Closing date] > vMaxDate )
    )
RETURN
    vResult

 

Create visual with SlicerDate[Month]:

 

DataInsights_0-1626807944844.png

 

View solution in original post

3 REPLIES 3
DataInsights
Super User II
Super User II

@amandaborges,

 

This solution uses a disconnected date table SlicerDate. It does not have any relationships with other tables.

 

Measure:

 

Active Opportunities = 
VAR vMinDate =
    MIN ( SlicerDate[Date] )
VAR vMaxDate =
    MAX ( SlicerDate[Date] )
VAR vResult =
    CALCULATE (
        COUNT ( Opportunity[ID] ),
        // creation date in current month
        ( Opportunity[Creation date] >= vMinDate
            && Opportunity[Creation date] <= vMaxDate )
            // closing date in current month
            || ( Opportunity[Closing date] >= vMinDate
            && Opportunity[Closing date] <= vMaxDate )
            // creation date in earlier month and closing date in later month
            || ( Opportunity[Creation date] < vMinDate
            && Opportunity[Closing date] > vMaxDate )
    )
RETURN
    vResult

 

Create visual with SlicerDate[Month]:

 

DataInsights_0-1626807944844.png

 

View solution in original post

@DataInsights , hey! 🙂

 

Thank you for your help! This works perfectly.

 

In my structure there is already a calendar table related to several other tables. I'll create one just for this kind of situation... I hope it won't be a problem.

 

I really appreciate it 🙂 Have a nice week.

Hi Amanda,

 

Glad to hear that works. That's the correct approach--keep the main calendar table in your data model (with relationships to other tables).

 

Have a good week. 🙂

Helpful resources

Announcements
PBI_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Get Ready for Power BI Dev Camp

Microsoft named a Leader in The Forrester Wave

Microsoft received the highest score of any vendor in both the strategy and current offering categories.

Get Ready for Power BI Dev Camp

Power BI Dev Camp - September 30th, 2021

Mark your calendars and join us for our next Power BI Dev Camp!

PowerPlatform 768x460.png

Microsoft Learn

Check out our new Discover Your Career Path blog post series and get all the details.

Top Solution Authors