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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
tomcch
Frequent Visitor

New Measure to Compare Date between Different Table

Hello all,

 

I have a main Sales volume table and a Sales incentive table.

I built a relationship by "Customer" between two table.

Hope to get the Sales name (STAFF) from the incentive table if the Sales Date is between the Valid from and Valid to date.

What should i do to achieve this? can i build a filter to compare the sales date and valid from/to date, make 'True' if within the valid date and apply it to the visual?

 

Thank you so much.

 

SALES VOLUME TABLE

CUSTOMERSALE DATE
A2023-01-02
A2023-01-21
A2023-01-02
A2023-09-02

 

SALES INCENTIVE TABLE

CUSTOMERSTAFFFROM DATETO DATE
APETER2023-01-012023-03-01
BTOM2023-01-012023-03-01
CDAVID2023-03-012023-06-01

 

Expected Result

CUSTOMERSALE DATESTAFF
A2023-01-02PETER
A2023-01-21PETER
A2023-01-02PETER
A2023-09-02 

 

 

1 ACCEPTED SOLUTION
speedramps
Super User
Super User

Click here to download the solution

Download PBIX 

Thanks for the clear description of the problem with example data. I wish everyone did that!

Remember we are unpaid volunteers. So please click the thumbs up and the [accept as solution] button to leave kudos. 

One question per ticket please. If you need to extend your request then please raise a new ticket.

You will get a quicker response and each volunteer solver will get the kudos they deserve. Thank you ! 

If you quote @speedramps in your next tickets then I will then receive an automatic notification, and will be delighted to help you again.

Please now click the thumbs up and the [accept as solution] button.  Thnak you.


How it works ....
This measure will return all valid staff (just in case there is  ore than one)

Valid staff = 
VAR customer = SELECTEDVALUE('SALES VOLUME'[CUSTOMER])
VAR saledate = SELECTEDVALUE('SALES VOLUME'[SALE DATE] )
VAR mysubset = 
FILTER('SALES INCENTIVE', 
'SALES INCENTIVE'[CUSTOMER] = customer  
 && 'SALES INCENTIVE'[FROM DATE] <= saledate 
&& 'SALES INCENTIVE'[TO DATE] >= saledate 
)
RETURN
CALCULATE(
CONCATENATEX('SALES INCENTIVE','SALES INCENTIVE'[STAFF],", "),
 mysubset )



speedramps_0-1698877497935.png

 

View solution in original post

6 REPLIES 6
speedramps
Super User
Super User

Thank you for the kudos.
If you need more help then raise a new ticket and quote @speedramps anywhere in the text,  I will then receive an automatic notification and will be delighted to help you again.
Please always try provide example input data as table text (not a screen print) so we can import the data to build a solution for you. You will gain respect and a much quicker and better responses with the more effort put in to describing problems  

v-junyant-msft
Community Support
Community Support

Hi @tomcch ,
The following DAX might help with you:

STAFF NAME = 
CALCULATE(
    MAX('SALES INCENTIVE TABLE'[STAFF]),
    FILTER(
        'SALES INCENTIVE TABLE',
        'SALES VOLUME TABLE'[CUSTOMER] = 'SALES INCENTIVE TABLE'[CUSTOMER] &&
        'SALES VOLUME TABLE'[SALE DATE] >= 'SALES INCENTIVE TABLE'[FROM DATE] &&
        'SALES VOLUME TABLE'[SALE DATE] <= 'SALES INCENTIVE TABLE'[TO DATE]
    )
)

You can use the DAX to create a new column.
And the final output is shown in the following figure:

vjunyantmsft_0-1698907253298.png

Best Regards,

Dino Tao

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

 

 

 

Thank you.

Thanks for helping but it is impolite to ask for kudos when I have already answered the question yesterday.
 
Incidentally, your answer contains a bug. 
 
If there are multiple valid staff for the date then it uses MAX to  alphabetically display just the last one.
 
See my solution which uses CONCATENATEX, which can display multiple valid staff for the date.
 
 
speedramps
Super User
Super User

Click here to download the solution

Download PBIX 

Thanks for the clear description of the problem with example data. I wish everyone did that!

Remember we are unpaid volunteers. So please click the thumbs up and the [accept as solution] button to leave kudos. 

One question per ticket please. If you need to extend your request then please raise a new ticket.

You will get a quicker response and each volunteer solver will get the kudos they deserve. Thank you ! 

If you quote @speedramps in your next tickets then I will then receive an automatic notification, and will be delighted to help you again.

Please now click the thumbs up and the [accept as solution] button.  Thnak you.


How it works ....
This measure will return all valid staff (just in case there is  ore than one)

Valid staff = 
VAR customer = SELECTEDVALUE('SALES VOLUME'[CUSTOMER])
VAR saledate = SELECTEDVALUE('SALES VOLUME'[SALE DATE] )
VAR mysubset = 
FILTER('SALES INCENTIVE', 
'SALES INCENTIVE'[CUSTOMER] = customer  
 && 'SALES INCENTIVE'[FROM DATE] <= saledate 
&& 'SALES INCENTIVE'[TO DATE] >= saledate 
)
RETURN
CALCULATE(
CONCATENATEX('SALES INCENTIVE','SALES INCENTIVE'[STAFF],", "),
 mysubset )



speedramps_0-1698877497935.png

 

Thank you, it works.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.

Top Kudoed Authors