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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Smritide
Regular Visitor

Using FILTER with SUMX & DISTINCT

Hi

 

I have two tables -

 

1) A student information table (Master Table) stating if they were admitted or denied for a course. For those admitted, I have a column calculating revenue earned from that student (for denied students it return $0). The table also indicates name of the event students attended and learned about the course.

 

2) An events table (Event Category) with names of each event and cost associated with the event. 

 

I want to calculate ROI for each event. I used the following formula.

 

ROI = DIVIDE([Returns],SUMX(DISTINCT('Event Details'[Event Category (City)]),Master[Avg Cost]),0)

 

Where,

Returns = SUMX(DISTINCT(Master[Revenue]),Master[Revenue])-SUMX(DISTINCT('Event Details'[Event Category (City)]),Master[Avg Cost])

 

I used the sumx and distinct function as I wanted to sum each row for admitted students returning cost against specific events. e.g. if you consider the following scenario, I want sum of cost associated with Event A, Event B and Event C where Event A's cost is calculated only once. 

 

Student A Admitted Event A 

Student B Admitted Event B

Student C Denied    Event A

Student D Admitted Event C

 

The SUMX and DISTINCT function does that for me, however I want to put a filter in the formula so that the measure calculates the returns only for Admitted students.

 

Can you help me figure this out? I tried using FILTER but it does not work. 

1 ACCEPTED SOLUTION

Hey,

 

I just figured it out.

 

CALCULATE(SUMX(DISTINCT('Event Details'[Event Category (City)]),Master[Avg Cost]),FILTER(Master,Master[Decision Name]="Admitted")

 

The problem was that there is a cost associated against each denied item as well so the previous function returned a sum off all positives and negative returns wherein I only wanted positive returns.

 

 

View solution in original post

5 REPLIES 5
Greg_Deckler
Super User
Super User

I guess the first question I would have is "why"? If denied students are $0 then including them in a SUM would not affect the result.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Hey,

 

I just figured it out.

 

CALCULATE(SUMX(DISTINCT('Event Details'[Event Category (City)]),Master[Avg Cost]),FILTER(Master,Master[Decision Name]="Admitted")

 

The problem was that there is a cost associated against each denied item as well so the previous function returned a sum off all positives and negative returns wherein I only wanted positive returns.

 

 

Hi @Smritide,

Congratulations, you resolved the problem by yourself, please mark the solution as workaround, so that more people will benefit from here.

Best Regards,
Angelia

Smritide
Regular Visitor

Hi

 

I have two tables -

 

1) A student information table (Master Table) stating if they were admitted or denied for a course. For those admitted, I have a column calculating revenue earned from that student (for denied students it return $0). The table also indicates name of the event students attended and learned about the course.

 

2) An events table (Event Category) with names of each event and cost associated with the event. 

 

I want to calculate ROI for each event. I used the following formula.

 

ROI = DIVIDE([Returns],SUMX(DISTINCT('Event Details'[Event Category (City)]),Master[Avg Cost]),0)

 

Where,

Returns = SUMX(DISTINCT(Master[Revenue]),Master[Revenue])-SUMX(DISTINCT('Event Details'[Event Category (City)]),Master[Avg Cost])

 

I used the sumx and distinct function as I wanted to sum each row for admitted students returning cost against specific events. e.g. if you consider the following scenario, I want sum of cost associated with Event A, Event B and Event C where Event A's cost is calculated only once. 

 

Student A Admitted Event A 

Student B Admitted Event B

Student C Denied    Event A

Student D Admitted Event C

 

The SUMX and DISTINCT function does that for me, however I want to put a filter in the formula so that the measure calculates the returns only for Admitted students.

 

Can you help me figure this out? I tried using FILTER but it does not work. 

Hi @Smritide,

Trt to put your sumx inside a CALCULATE something like this:

CALCULATE(SUMX(DISTINCT(Master[Revenue]),Master[Revenue]), Master[Admmited] ="admitted")

Regards,
MFelix


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.