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

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes! 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
September Power BI Update Carousel

Power BI Monthly Update - September 2025

Check out the September 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.

Top Solution Authors
Top Kudoed Authors