Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

Find the closest date before from a certain date

Hi everyone, 
I am having an issue needed to solve. I have a transaction data like this:

Transaction IDCust IDTransaction Date
1A1/10/2023
2A6/2/2023
3A7/19/2023
4A10/14/2023
5B6/20/2023
6C2/14/2023
7C3/16/2023
8C9/7/2023
9D7/8/2023
10D8/8/2023
11D8/21/2023
12D9/2/2023
13D10/9/2023

 

I would like to create a matrix where x axis is cust ID and a slicer to manually choose a date from date_ref table. It is required that the matrix would display the "closest before" transaction date of each Cust ID. For example, If I choose 7/9/2023 from slicer. The output should be:

Cust IDClosest Transaction IDClosest Transaction Date
A26/2/2023
B56/20/2023
C73/16/2023
D97/8/2023

 

How to do that? Thank you in advance!

  • hi Anonymous ,

     

    try to

    1) plot a slicer with a calculated table like:

    date_ref = CALENDAR(MIN(data[Transaction Date]), MAX(data[Transaction Date]))

     

    2) plot a table visual with customer id column and two measures like:

    Closest Transaction Date = 
    MAXX(
        FILTER(
            data,
            data[Transaction Date]<SELECTEDVALUE(date_ref[date])
        ),
        data[Transaction Date]
    )
    Closest Transaction ID = 
    VAR _date = [Closest Transaction Date]
    VAR _result = 
    MAXX(
        FILTER(
            data,
            data[Transaction Date] = _date
        ),
        data[Transaction ID]
    )
    RETURN _result

     

    it worked like:

2 Replies

  • hi Anonymous ,

     

    try to

    1) plot a slicer with a calculated table like:

    date_ref = CALENDAR(MIN(data[Transaction Date]), MAX(data[Transaction Date]))

     

    2) plot a table visual with customer id column and two measures like:

    Closest Transaction Date = 
    MAXX(
        FILTER(
            data,
            data[Transaction Date]<SELECTEDVALUE(date_ref[date])
        ),
        data[Transaction Date]
    )
    Closest Transaction ID = 
    VAR _date = [Closest Transaction Date]
    VAR _result = 
    MAXX(
        FILTER(
            data,
            data[Transaction Date] = _date
        ),
        data[Transaction ID]
    )
    RETURN _result

     

    it worked like:

    • Anonymous's avatar
      Anonymous
      Not applicable

      That's great. Thank you a lot. Many blessing to you!