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

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

Reply
EmielvdR
Frequent Visitor

How to reference column in table variable (after TOPN and CALCULATETABLE)?

I'm trying to select a single value (TOP 1) of a table variable which has multiple columns which where used for filtering and sorting.

 

I made an example in DAX.do (https://dax.do/ha0qItKqNlnWHP/) to illustrate the problem (simplified without sorting mechanism):

DEFINE

var aaa =
TOPN (
1,
ADDCOLUMNS (
VALUES ( 'Product'[Product Name] ),
"myTotal", [Sales Amount]
),
[myTotal],
DESC
)

EVALUATE
aaa

 

"aaa" return two colums in 1 row. I want to access only the "Product Name" column.  I need the intermediate variable "aaa".

 

It's not possible to select it by "aaa[Product Name]".  I found: https://community.powerbi.com/t5/Desktop/DAX-Is-it-possible-to-refer-to-columns-of-a-table-variable/... but I'm unable to translate this to my situation.

 

 

1 ACCEPTED SOLUTION
DataInsights
Super User
Super User

@EmielvdR,

 

You can reference the column in the original table since the lineage of the virtual table is maintained. In the measure I defined below, notice the second argument of MAXX: it's the underlying table/column. I had to wrap the result in curly braces since this tool returns only tables (in your model, you won't have to do this).

 

DEFINE
    VAR aaa =
        TOPN (
            1,
            ADDCOLUMNS ( VALUES ( 'Product'[Product Name] ), "myTotal", [Sales Amount] ),
            [myTotal], DESC
        )
    MEASURE 'Product'[Top Product Name] =
        MAXX ( aaa, 'Product'[Product Name] )

EVALUATE
{ [Top Product Name] }

 

DataInsights_0-1665240602006.png

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




View solution in original post

2 REPLIES 2
DataInsights
Super User
Super User

@EmielvdR,

 

You can reference the column in the original table since the lineage of the virtual table is maintained. In the measure I defined below, notice the second argument of MAXX: it's the underlying table/column. I had to wrap the result in curly braces since this tool returns only tables (in your model, you won't have to do this).

 

DEFINE
    VAR aaa =
        TOPN (
            1,
            ADDCOLUMNS ( VALUES ( 'Product'[Product Name] ), "myTotal", [Sales Amount] ),
            [myTotal], DESC
        )
    MEASURE 'Product'[Top Product Name] =
        MAXX ( aaa, 'Product'[Product Name] )

EVALUATE
{ [Top Product Name] }

 

DataInsights_0-1665240602006.png

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Thank you! Worked perfectly!

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

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

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.