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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
drogzy
Helper I
Helper I

Creating a custom column to return max value from another column in the same table

Hi all, 

 

Here is what I have and I am trying to add the bolded column as a custom column:

 

IDStartEndRigA Job
123452022-02-10 8:00 AM2022-02-13 10:00 AMDelta 10null
123452022-02-12 8:00 AM2022-2-16 10:00 AMDelta 62022-02-12 8:00 AM

 

As you can see, I want the A Job column to return the max value of the start column. Now I do not want to group them because it will break my direct query to sql. Looking for help in how to use power query to write the correct formula for the column. 

 

Thank you 

2 ACCEPTED SOLUTIONS
BA_Pete
Super User
Super User

Hi @drogzy ,

 

To do this over the whole table you would add something like this to a custom column:

 

List.Max(previousStepName[Start])

 

 

To do it over groups, over each [ID] for example, you will have to group the table, otherwise Power Query has no concept of where you want to limit the operation.

 

You can do this while maintaining folding as follows:

- Duplicate your query and disable load for this new query.

- Implement the simple group on this new table i.e. Group By [ID], MAX [Start] as aggregate column.

- Merge your grouped query to your original query using LEFT OUTER on original[ID] = grouped[ID].

 

If you look at the Native Query for your original query now, you will see that a subquery is being sent to the server for the grouped table and everything takes place server-side i.e. the query is fully folded.

 

Pete

 

 



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




View solution in original post

Anonymous
Not applicable

You could do this:
1) sort the table by groups and by date;
2) add an index column {0,1,2, ... rowcount}, call it "idx";
3) add a column calculated with the following logic if [Added Index] {[idx]} [ID] = [Added Index] {[idx] +1} [ID] then null else [start]

View solution in original post

2 REPLIES 2
Anonymous
Not applicable

You could do this:
1) sort the table by groups and by date;
2) add an index column {0,1,2, ... rowcount}, call it "idx";
3) add a column calculated with the following logic if [Added Index] {[idx]} [ID] = [Added Index] {[idx] +1} [ID] then null else [start]

BA_Pete
Super User
Super User

Hi @drogzy ,

 

To do this over the whole table you would add something like this to a custom column:

 

List.Max(previousStepName[Start])

 

 

To do it over groups, over each [ID] for example, you will have to group the table, otherwise Power Query has no concept of where you want to limit the operation.

 

You can do this while maintaining folding as follows:

- Duplicate your query and disable load for this new query.

- Implement the simple group on this new table i.e. Group By [ID], MAX [Start] as aggregate column.

- Merge your grouped query to your original query using LEFT OUTER on original[ID] = grouped[ID].

 

If you look at the Native Query for your original query now, you will see that a subquery is being sent to the server for the grouped table and everything takes place server-side i.e. the query is fully folded.

 

Pete

 

 



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.