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
Anonymous
Not applicable

RELATED function - how it works

i was trying to use RELATED function between two tables with Many to 1 relationship. It looks like it only works on the

'Many' side.  Like i can only add related columns to 'Many' table from '1' side  but not the other way around.  I want to add columns to '1' side from 'Many' table. it does not work.

Is it by design or am i missing anything...

1 ACCEPTED SOLUTION
OwenAuger
Super User
Super User

@Anonymous 

That's right, RELATED (which can only be used in a row context) follows a chain of one or more many-to-one relationships to retrieve a column value on the one-side.

 

Since RELATED returns a scalar value, isn't able to retrieve a value on the many-side, since there could be multiple values of a given column on the many-side.

 

One way you could lookup a single value on the many-side is using a function like FIRSTNONBLANK to return the "minimum" value.

Something like

Min Value on many side =
FIRSTNONBLANK ( ManyTable[ManyColumn], 0 )

Since FIRSTNONBLANK carries out a context transition (behind the scenes), it ends up creating a filter context equivalent to the current row, which filters the table on the many-side. Read more here: https://dax.guide/firstnonblank/

 

The RELATEDTABLE function is also available to return the entire table on the many-side corresponding to the current row. You could use RELATETABLE then manipulate that in some way to produce a scalar result.

 

Regards,

Owen

 


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

View solution in original post

1 REPLY 1
OwenAuger
Super User
Super User

@Anonymous 

That's right, RELATED (which can only be used in a row context) follows a chain of one or more many-to-one relationships to retrieve a column value on the one-side.

 

Since RELATED returns a scalar value, isn't able to retrieve a value on the many-side, since there could be multiple values of a given column on the many-side.

 

One way you could lookup a single value on the many-side is using a function like FIRSTNONBLANK to return the "minimum" value.

Something like

Min Value on many side =
FIRSTNONBLANK ( ManyTable[ManyColumn], 0 )

Since FIRSTNONBLANK carries out a context transition (behind the scenes), it ends up creating a filter context equivalent to the current row, which filters the table on the many-side. Read more here: https://dax.guide/firstnonblank/

 

The RELATEDTABLE function is also available to return the entire table on the many-side corresponding to the current row. You could use RELATETABLE then manipulate that in some way to produce a scalar result.

 

Regards,

Owen

 


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

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