Forum Discussion

antoniopgouveia's avatar
antoniopgouveia
Frequent Visitor
7 years ago
Solved

Find next value by date

Hi all,

 

I have created an index for a table of opportunities which have an associated date for each entry. I have, then, concatenated the index with the dates (format: YYmmdd) to create my IndexDate column. I would like to find the next IndexDate within the same opportunity (index) and if there is no later entries for a certain opportunity I would like to fill in with the same IndexDate. My desired output is shown in column named NextIndexDate. Is there anyway to do this?

 

IndexDateIndexDateNextIndexDate
120/07/201811807201180730
130/07/201811807301180806
106/08/201811808061180807
107/08/201811808071180807
207/05/201821805072180620
220/06/201821806202180715
215/07/201821807152180715

 

Best regards,

Antonio

  • antoniopgouveia

     

    Try with following

     

    Column =
    VAR temp =
        TOPN (
            1,
            FILTER ( Table1, [Index] = EARLIER ( [Index] ) && [Date] > EARLIER ( [Date] ) ),
            [Date], ASC
        )
    VAR result =
        MINX ( temp, [IndexDate] )
    RETURN
        IF ( ISBLANK ( result ), [IndexDate], result )
    

2 Replies

  • Zubair_Muhammad's avatar
    Zubair_Muhammad
    Community Champion

    antoniopgouveia

     

    Try with following

     

    Column =
    VAR temp =
        TOPN (
            1,
            FILTER ( Table1, [Index] = EARLIER ( [Index] ) && [Date] > EARLIER ( [Date] ) ),
            [Date], ASC
        )
    VAR result =
        MINX ( temp, [IndexDate] )
    RETURN
        IF ( ISBLANK ( result ), [IndexDate], result )
    
    • antoniopgouveia's avatar
      antoniopgouveia
      Frequent Visitor

      Hi Zubair_Muhammad,

       

      Thanks for that, it worked perfectly! I just had the filter because it was messing with my index column in relation to original Opportunity ID. They weren't matching to same opportunity ID. As below:

       

      NextIndexDate =
      VAR temp =
          TOPN (
              1,
              FILTER ( Table1, [Index] = EARLIER ( [Index] ) && [Date] > EARLIER ( [Date] ) && [OpportunityID] = [OpportunityID]),
              [Date], ASC
          )
      VAR result =
          MINX ( temp, [IndexDate] )
      RETURN
          IF ( ISBLANK ( result ), [IndexDate], result )

       Best regards,

      Antonio