Forum Discussion

samihuq's avatar
samihuq
Helper III
7 years ago
Solved

Approximate Match for Date

Hi,

I have got two tables.

 

Table A:

 

Date Qty Rate
1-Jan-18 89 10
2-Jan-18 81 10
3-Jan-18 30 10
4-Jan-18 45 10
5-Jan-18 50 10
6-Jan-18 20 10
7-Jan-18 84 10
8-Jan-18 26 20
9-Jan-18 54 20
10-Jan-18 13 20
11-Jan-18 83 20
12-Jan-18 40 20
13-Jan-18 51 20
14-Jan-18 26 15
15-Jan-18 33 15
16-Jan-18 60 15
17-Jan-18 93 15
 

 

Table B:

 

Date Rate
1-Jan-18 10
8-Jan-18 20
14-Jan-18 15

 

Now I need to do an approximate match on Table B to get for column Rate in Table A. Can you please help me with the Dax formula?

 

Thanks,

Sami

  • samihuq's avatar
    samihuq
    7 years ago

    Hi,

    Actually Found the solution by ourselves>

     

    Had to do two columns to achieve this, first find the approximate date [kind of vlookup true] and then find the corrosponding rate [kindof vlookup false]

     

    Date 2 = CALCULATE(LASTNONBLANK(Rate[Date].[Date],1),FILTER(Rate,Rate[Date].[Date]<=Data[Date].[Date]))

     

    and 

    Rate = CALCULATE(SUM(Rate[Rate]),FILTER(Rate,Rate[Date].[Date]=Data[Date 2].[Date]))

     

    Thanks,

    Sami

2 Replies

  • v-yulgu-msft's avatar
    v-yulgu-msft
    Microsoft Employee

    Hi samihuq,

     

    Do you want to compare the rate on the same day in TableA and TableB to check if they are matched? If so, you could use LOOKUPVALUE function to refer to 'TableA'[Rate] column in TableB.

     

    New Column =
    IF (
        TableB[Rate] = LOOKUPVALUE ( TableA[Rate], TableA[Date], TableB[Date] ),
        "Matched",
        "Not Matched"
    )
    


    Best regards,

    Yuliana Gu

    • samihuq's avatar
      samihuq
      Helper III

      Hi,

      Actually Found the solution by ourselves>

       

      Had to do two columns to achieve this, first find the approximate date [kind of vlookup true] and then find the corrosponding rate [kindof vlookup false]

       

      Date 2 = CALCULATE(LASTNONBLANK(Rate[Date].[Date],1),FILTER(Rate,Rate[Date].[Date]<=Data[Date].[Date]))

       

      and 

      Rate = CALCULATE(SUM(Rate[Rate]),FILTER(Rate,Rate[Date].[Date]=Data[Date 2].[Date]))

       

      Thanks,

      Sami