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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more

Reply
richardnlove918
Frequent Visitor

Power Query: Make a Record containing Tables using M

Hi all,

 

I am looking to create a record containing tables.  I can do this by hardcoding table names in the query ...

 

2019-03-31_13-48-02.png

 

.... but I'm looking to do this using M providing as input a table/column of table names:

 

2019-03-31_13-48-14.png

 

I've tried Record.FromList and other combinations but am stuck.

 

Thank you,

Richard

3 REPLIES 3
v-piga-msft
Resident Rockstar
Resident Rockstar

Hi @richardnlove918 ,

You could create a custom column with the formula below.

= Table.AddColumn(#"Changed Type", "Value", each Expression.Evaluate("Table1",#shared) )

Here is the output.

Capture.PNG

Best  Regards,

Cherry

 

Community Support Team _ Cherry Gao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

@v-piga-msft  there is a mole in this solution, you cannot use this if the table name has spaces in it eg: Student Details. it shows error in that case.

how can we correct that.

OwenAuger
Super User
Super User

Hi @richardnlove918 

If you construct a table that has a "Name" column (containing desired field names) and a "Value" column (containing desired field values) you can then use Record.FromTable to convert the table to a record.

 

The below code should work assuming you have existing queries called table1, table2 & table3.

It first creates a table with a Name column containing the required table names, then uses Expression.Evaluate to add a column containing the table corresponding to the text value in the Name column.

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WKklMykk1VIrVgTKNEExjpdhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Name = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}}),
    AddValueColumn = Table.AddColumn(#"Changed Type", "Value", each Expression.Evaluate([Name], #shared), type table),
    ConvertToRecord = Record.FromTable(AddValueColumn)
in
    ConvertToRecord

Regards,

Owen


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

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 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