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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
MatheusGuzman
Regular Visitor

Need help extracting single values from specific Records

Hello!

Need some help trying to extract some data, begginer learning Powerquery at the moment.
I have this table, wich one of the columns has Lists.

MatheusGuzman_0-1732541692411.png

Inside each list i has 4 records.

MatheusGuzman_1-1732541769491.png

I need specifically one of the values inside the record, to be added to the table as a new column

MatheusGuzman_2-1732541802676.png

Any ideas on how exactly should i do this?

 

Thank in advance!

4 ACCEPTED SOLUTIONS
m_dekorte
Super User
Super User

Hi @MatheusGuzman 
There are a couple of ways to achieve this, depening on your specific needs:
List.First or List.Last will get you the first or last record from the list in the status field
alternatively you can use optional item access to extract an item on its zero-based index position and optional field access, here's what that could look like. 

Pick one of these lines of code and paste them into the formula area of the Custom Column dialog:

List.First([status])[creationDate]?

List.Last([status])[creationDate]?

[status]{1}?[creationDate]?

View solution in original post

jgeddes
Super User
Super User

You can use the Table.TransformColumns function to work within the lists in the status column. 
a sample would look like...

= Table.TransformColumns(duplicateStatusList, {{"creationDate", each List.First(List.Select(_, each Record.HasFields(_, "creationDate")))}})

In this function, for each row in the table (table is named 'duplicateStatusList' here) in the 'creationDate' column select the first value in the list of records that have 'creationDate' as the header.

You can then expand the resulting record in the 'creationDate' column.

Here is a complete example code you can paste into the advanced editor of a blank query.

let
    Source = 
    #table(
        {"ticketID", "status"}, 
        {
            {10, {[id="31"], [creationDate=#date(2024,11,21)], [action=7]}},
            {9,{[id="32"], [creationDate=#date(2024,11,22)], [action=6]}}
        }
    ),
    duplicateStatusList = Table.AddColumn(Source, "creationDate", each [status]),
    selectFirstCreationDate = Table.TransformColumns(duplicateStatusList, {{"creationDate", each List.First(List.Select(_, each Record.HasFields(_, "creationDate")))}}),
    expandRecord = Table.ExpandRecordColumn(selectFirstCreationDate, "creationDate", {"creationDate"}, {"creationDate"})
in
    expandRecord

Hope this helps.





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

Proud to be a Super User!





View solution in original post

Omid_Motamedise
Super User
Super User

 

Use the below pattern and replace each part with the desired name or number

 

Tablename[columnname]{row number}[record field name]

If my answer helped solve your issue, please consider marking it as the accepted solution. It helps others in the community find answers faster—and keeps the community growing stronger!
You can also check out my YouTube channel for tutorials, tips, and real-world solutions in Power Query with the following link
https://youtube.com/@omidbi?si=96Bo-ZsSwOx0Z36h

View solution in original post

Anonymous
Not applicable

Hi @MatheusGuzman ,

 

You could add a costom column by this formula

=[status]{0}[creationDate]

I've made a test for your reference:

vbofengmsft_0-1732602936167.png

 

 

 

Best Regards,

Bof

View solution in original post

5 REPLIES 5
Anonymous
Not applicable

Hi @MatheusGuzman ,

 

You could add a costom column by this formula

=[status]{0}[creationDate]

I've made a test for your reference:

vbofengmsft_0-1732602936167.png

 

 

 

Best Regards,

Bof

Omid_Motamedise
Super User
Super User

 

Use the below pattern and replace each part with the desired name or number

 

Tablename[columnname]{row number}[record field name]

If my answer helped solve your issue, please consider marking it as the accepted solution. It helps others in the community find answers faster—and keeps the community growing stronger!
You can also check out my YouTube channel for tutorials, tips, and real-world solutions in Power Query with the following link
https://youtube.com/@omidbi?si=96Bo-ZsSwOx0Z36h
PwerQueryKees
Super User
Super User

From the UI, Hit the Add Custom Column, choose the new column name and use [Status]{1} as the formula

 

This is what it will look like in tghe formula bar:

= Table.AddColumn(#"Tipo Alterado", "StatusCreation", each [Status]{1})

jgeddes
Super User
Super User

You can use the Table.TransformColumns function to work within the lists in the status column. 
a sample would look like...

= Table.TransformColumns(duplicateStatusList, {{"creationDate", each List.First(List.Select(_, each Record.HasFields(_, "creationDate")))}})

In this function, for each row in the table (table is named 'duplicateStatusList' here) in the 'creationDate' column select the first value in the list of records that have 'creationDate' as the header.

You can then expand the resulting record in the 'creationDate' column.

Here is a complete example code you can paste into the advanced editor of a blank query.

let
    Source = 
    #table(
        {"ticketID", "status"}, 
        {
            {10, {[id="31"], [creationDate=#date(2024,11,21)], [action=7]}},
            {9,{[id="32"], [creationDate=#date(2024,11,22)], [action=6]}}
        }
    ),
    duplicateStatusList = Table.AddColumn(Source, "creationDate", each [status]),
    selectFirstCreationDate = Table.TransformColumns(duplicateStatusList, {{"creationDate", each List.First(List.Select(_, each Record.HasFields(_, "creationDate")))}}),
    expandRecord = Table.ExpandRecordColumn(selectFirstCreationDate, "creationDate", {"creationDate"}, {"creationDate"})
in
    expandRecord

Hope this helps.





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

Proud to be a Super User!





m_dekorte
Super User
Super User

Hi @MatheusGuzman 
There are a couple of ways to achieve this, depening on your specific needs:
List.First or List.Last will get you the first or last record from the list in the status field
alternatively you can use optional item access to extract an item on its zero-based index position and optional field access, here's what that could look like. 

Pick one of these lines of code and paste them into the formula area of the Custom Column dialog:

List.First([status])[creationDate]?

List.Last([status])[creationDate]?

[status]{1}?[creationDate]?

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

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

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 community update carousel

Fabric Community Update - June 2025

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