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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Joernolav
Frequent Visitor

Finding max of multiple rows for every customer

Hi.

 

I have two tables. One named External_Contact which contains customers and one table named G_MainL which contains invoices  and a column named paydate.

 

They are connectd with columns Kundenr and Contid one-to-many.

 

I need a column in External_Contact that show the last payment date for each customer.

 

I have tried the following for a new column but get an error.

 

last_payment = LOOKUPVALUE(Max(G_MAINL[Paydate]); External_Contact[Kundenr]; G_MainL[Contid])

 

I get the error: " Lookupvalue expects a column reference as argument number 1."

 

what am I doing wrong?

 

Thank you for your help.

1 ACCEPTED SOLUTION
OwenAuger
Super User
Super User

Hi @Joernolav

 

Since you have a relationship between the two tables, you can use this formula as a calculated column in External_Contact:

 

last_payment =
CALCULATE ( MAX ( G_MainL[Paydate] ) )

Since this is calculated within the row context of External_Contact, the CALCULATE results in context transition, effectively adding the current row's customer to the filter context, which in turn filters G_MainL.

MAX ( G_MainL[Paydate] ) is then evaluated over the rows of G_MainL corresponding to that customer.

 

Cheers,

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

View solution in original post

2 REPLIES 2
OwenAuger
Super User
Super User

Hi @Joernolav

 

Since you have a relationship between the two tables, you can use this formula as a calculated column in External_Contact:

 

last_payment =
CALCULATE ( MAX ( G_MainL[Paydate] ) )

Since this is calculated within the row context of External_Contact, the CALCULATE results in context transition, effectively adding the current row's customer to the filter context, which in turn filters G_MainL.

MAX ( G_MainL[Paydate] ) is then evaluated over the rows of G_MainL corresponding to that customer.

 

Cheers,

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

Thank you. That solved the problem.

Helpful resources

Announcements
PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.