Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Loop-like feature in Power BI?

Dear all

 

I am trying to return different value in a new column if I find a specific value in several rows.

 

For example, I am trying to return the earliest view date when I found "Contact Customer Service" for each case and return, and if there is no any "Contact Customer Service" for a case, return the last view date.

 

Is it possible to have this loop funtion in Power BI? 

 

CaseTime_StampActionFirst or Last View
X0012/1/2021View2/1/2021
X0012/3/2021View2/1/2021
X0012/18/2021Place into Cart2/1/2021
X0012/19/2021Contact Customer Service2/1/2021
X0012/22/2021Cancel2/1/2021
X0021/3/2021View1/3/2021
X0021/19/2021Place into Cart1/3/2021
X0022/3/2021Purchase1/3/2021
X0022/7/2021Paid1/3/2021
X0033/2/2021View3/6/2021
X0033/4/2021View3/6/2021
X0033/5/2021Place into Cart3/6/2021
X0033/6/2021View3/6/2021
X0033/11/2021Paid3/6/2021

 

Thank you in advance!

  • CNENFRNL's avatar
    CNENFRNL
    4 years ago
    View Date CC = 
    VAR __v =
        FILTER(
            'CASE',
            'CASE'[Case] = EARLIER( 'CASE'[Case] ) && 'CASE'[Action] = "View"
        )
    RETURN
        IF(
            ISEMPTY(
                FILTER(
                    'CASE',
                    'CASE'[Case] = EARLIER( 'CASE'[Case] ) && 'CASE'[Action] = "Contact Customer Service"
                )
            ),
            MAXX( __v, 'CASE'[Time_Stamp] ),
            MINX( __v, 'CASE'[Time_Stamp] )
        )

4 Replies

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks for your answer! Yet, there is an error "A circulated dependency was detected..." now.  

       

      In your file, this error is not found, but the result seems different. 😞

       

       

      Could you kindly take another look? Much appreciated!

      • CNENFRNL's avatar
        CNENFRNL
        Community Champion
        View Date CC = 
        VAR __v =
            FILTER(
                'CASE',
                'CASE'[Case] = EARLIER( 'CASE'[Case] ) && 'CASE'[Action] = "View"
            )
        RETURN
            IF(
                ISEMPTY(
                    FILTER(
                        'CASE',
                        'CASE'[Case] = EARLIER( 'CASE'[Case] ) && 'CASE'[Action] = "Contact Customer Service"
                    )
                ),
                MAXX( __v, 'CASE'[Time_Stamp] ),
                MINX( __v, 'CASE'[Time_Stamp] )
            )