Forum Discussion

JoeCrozier's avatar
JoeCrozier
Icon for Helper II rankHelper II
2 years ago
Solved

Display first chronological result from Power Query in Power bi without filtering

I have data like this:

That I'd like to incorporate into this table on a dashboard:

 

Specifically I'd like to create "IRB of Record" which is the first chronological entry per study for IRB_Committee, for each "CIRB" entry.  So for instance, this:

 

In the table on the dashboard, there are several query sources being used, they are all linked by "Protocol_no".

I'm sure I could sort my table by earliest row for each study etc... but I dont want to FILTER because I may need later action dates for other columns.. etc...

Long story short how can I add a column like this without deleting any source data by filtering?

 

 

  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi JoeCrozier 

    You can refer to the following solution.

    Sample data 

    1.Create a rank column in table

    Rank = RANKX(FILTER('Table',[PROTOCOL_NO]=EARLIER('Table'[PROTOCOL_NO])&&[Type_]=EARLIER('Table'[Type_])),[ACTION_DATE],,ASC) 

    2.Then create a measure

    Measure = CALCULATE(MAX('Table'[IRB_COMMITTEE]),'Table'[Type_]="CIRB",'Table'[Rank]=1,'Table'[PROTOCOL_NO] IN VALUES('Table'[PROTOCOL_NO]),REMOVEFILTERS())

    Output

     

    Best Regards!

    Yolo Zhu

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

     

3 Replies

  • Please provide sample data (with sensitive information removed) that covers your issue or question completely, in a usable format (not as a screenshot). Leave out anything not related to the issue.
    If you are unsure how to do that please refer to https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-p/963216
    Please show the expected outcome based on the sample data you provided.

    If you want to get answers faster please refer to https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447523

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi JoeCrozier 

    You can refer to the following solution.

    Sample data 

    1.Create a rank column in table

    Rank = RANKX(FILTER('Table',[PROTOCOL_NO]=EARLIER('Table'[PROTOCOL_NO])&&[Type_]=EARLIER('Table'[Type_])),[ACTION_DATE],,ASC) 

    2.Then create a measure

    Measure = CALCULATE(MAX('Table'[IRB_COMMITTEE]),'Table'[Type_]="CIRB",'Table'[Rank]=1,'Table'[PROTOCOL_NO] IN VALUES('Table'[PROTOCOL_NO]),REMOVEFILTERS())

    Output

     

    Best Regards!

    Yolo Zhu

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

     

    • JoeCrozier's avatar
      JoeCrozier
      Icon for Helper II rankHelper II

      This worked great! Thank you! I accepted it as a solution but actually I have one question (that I hadnt included originally) thats related and maybe you could help with.   So this measure totally returns the correct values, problem is:  not every row HAS a value.  I.e. not every protocol has a CIRB row.  This is expected behavior and I'd love to just show those rows as blank on the dashboard.  Problem is, if theres no result in the measure for those rows, they just aren't included on the dashboard.   How can i still show the blank row?

       

      That make sense?