Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

Reply
ntaylo06
Resolver II
Resolver II

Getting Data From Previous Row Based On Two Criteria

I have have the table 'Data' with the fields 'employee ID', 'rotation number', and 'location' with each employee ID appearing three times with rotation number increasing each time and a location code per row. I am trying to add a 'last location' calculated column that will display the last location by looking at the rotation number and subtracting 1 from it, unless the rotation number is 1 which gets the string "xxxxx" like this:

 

+---------------+-------------------+------------+-----------------+
|  employee ID  |  rotation number  |  location  |  last location  |
+---------------+-------------------+------------+-----------------+ 
1001 1 abcde xxxxx 1001 2 fghij abcde 1001 3 klmno fghij 1002 1 pqrst xxxxx 1002 2 uvwx pqrst 1002 3 yzab uvwx

Can anyone help with this?

1 ACCEPTED SOLUTION

@HotChilli Thats alright, I found a workaround solution by adding an index column and then calculating index-1 from it. Thanks for trying, though.

View solution in original post

5 REPLIES 5
HotChilli
Community Champion
Community Champion

Is the last value in 'last location' a mistake? Should it be uvwx?

 

If so, try adding a column

Column = var _emp = Table1[employee ID]
var _rot = Table1[rotation number]
RETURN
if (Table1[rotation number] <> 1, 
CALCULATE(MAX(Table1[location]),FILTER(Table1, Table1[employee ID] = _emp && Table1[rotation number] < _rot)),
"xxxxx")


@HotChilli wrote:

Is the last value in 'last location' a mistake? Should it be uvwx?

Yes, that was a mistake. I've fixed it now.


@HotChilli wrote:

If so, try adding a column


The column kinda works, but it is only pulling the entry for rotation #2 and then displaying it for all rows after the first:

+---------------+-------------------+------------+-----------------+
|  employee ID  |  rotation number  |  location  |  last location  |
+---------------+-------------------+------------+-----------------+ 
1001 1 abcde xxxxx 1001 2 fghij abcde 1001 3 klmno abcde 1002 1 pqrst xxxxx 1002 2 uvwx pqrst 1002 3 yzab pqrst

 

Do you want to link your pbix here and i'll have a look at it?

@HotChilli Thats alright, I found a workaround solution by adding an index column and then calculating index-1 from it. Thanks for trying, though.

@ntaylo06 

 

Glad to hear that. You may help accept the solution above. Your contribution is highly appreciated.

Community Support Team _ Sam Zha
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

60 days of Data Days Carousel

Data Days 2026

Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Solution Authors