cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
ngocnguyen
Helper III
Helper III

Compare data with conditional slicer

Hi,

I have 3 tables as belows. I wanna create slicer of customer, in which. when I choose 1 specific customer (Ex: Customer A) => It will show the the visual as "result1". 

If I don't choose that slicer, it will show the visual as " result2"

 

So, what Dax formulas can I use ?

Thanks in advance for your support!

 

Ix.PNG

2 ACCEPTED SOLUTIONS
timg
Solution Specialist
Solution Specialist

Hi Ngocnguyen,

 

This might be worth a try:

 

Measures:

ActualSum = SUM(CustomerActual[ActualAmount])
TargetCalculation = IF(ISFILTERED(CustomerActual),SUM(CustomerTarget[CustomerTarget]),SUM(TotalTarget[Target]))
Compare = CustomerActual[ActualSum] - TotalTarget[TargetCalculation]
 
The ISFILTERED funciton can be used to differentiate between the unfiltered table and when a specific customer is selected. When paired with a slicer, the TargetCalculation measure would result in the sum of the selected customer, or the sum of the TotalTarget table, based on the slicer selection.
 
Customer selected:
Capture1.PNG
 
No customer selected:
Capture.PNG
 
Hope this helps!
 
Best regards,
 
Tim

View solution in original post

lkalawski
Super User II
Super User II

Hi @ngocnguyen 

I prepared a solution for you. 

You can create this 4 measures:

Selected Customer = 
IF(ISFILTERED(Table1[Customer]), CONCATENATEX(DISTINCT(Table1[Customer]), Table1[Customer],","),
"ALL Customers")

Actual = 
Sum(Table1[Actual Amount])

Target = 
IF(ISFILTERED(Table1[Customer]),
    Sum(Table2[Target]),
    MAX(Table3[Target])
)

Compare = [Actual] - [Target]

 

PBI_SuperUser_Rank@1x.png Proud to be a Super User.
If I helped, please accept the solution and give kudos
Linkedin

 

View solution in original post

2 REPLIES 2
lkalawski
Super User II
Super User II

Hi @ngocnguyen 

I prepared a solution for you. 

You can create this 4 measures:

Selected Customer = 
IF(ISFILTERED(Table1[Customer]), CONCATENATEX(DISTINCT(Table1[Customer]), Table1[Customer],","),
"ALL Customers")

Actual = 
Sum(Table1[Actual Amount])

Target = 
IF(ISFILTERED(Table1[Customer]),
    Sum(Table2[Target]),
    MAX(Table3[Target])
)

Compare = [Actual] - [Target]

 

PBI_SuperUser_Rank@1x.png Proud to be a Super User.
If I helped, please accept the solution and give kudos
Linkedin

 

View solution in original post

timg
Solution Specialist
Solution Specialist

Hi Ngocnguyen,

 

This might be worth a try:

 

Measures:

ActualSum = SUM(CustomerActual[ActualAmount])
TargetCalculation = IF(ISFILTERED(CustomerActual),SUM(CustomerTarget[CustomerTarget]),SUM(TotalTarget[Target]))
Compare = CustomerActual[ActualSum] - TotalTarget[TargetCalculation]
 
The ISFILTERED funciton can be used to differentiate between the unfiltered table and when a specific customer is selected. When paired with a slicer, the TargetCalculation measure would result in the sum of the selected customer, or the sum of the TotalTarget table, based on the slicer selection.
 
Customer selected:
Capture1.PNG
 
No customer selected:
Capture.PNG
 
Hope this helps!
 
Best regards,
 
Tim

View solution in original post

Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

April Update

Check it Out!

Click here to read more about the April 2021 Updates!

MBAS Carousel

Sign up for our May 4th event!

May the fourth be with you, join us online!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.