Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.
Check it out now!Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more
Hello all!
I tried and fail several times. I need help on expanding these records from a list. Kindly see the image below:
as you can see, I have one List with three Records (indicator_value, country_name,indicator_name), but I am able to expand just just one record in this query. I would like to have a single table that merges the columns from the first 2 records. Example:
Record: indicator_value:
Record: country_name:
So, I would like to have a final table looking like that:
Country Code | Coutry Name | Value | Year |
DEU | Germany | 0.947 | 2019 |
DEU | Germany | 0.946 | 2018 |
BRA | Brazil | 0.765 | 2019 |
Instead of (when I expand only indicator_value):
Country Code | Value | Year |
DEU | 0.947 | 2019 |
DEU | 0.946 | 2018 |
BRA | 0.765 | 2019 |
Here is the API from I am getting the data:
Thank you!
Kind regards,
Lucianna
Solved! Go to Solution.
Hi @Anonymous,
Please see attached PBIX. I think it achieves what you're looking for.
Let me know if you have any questions.
Here's the M code if you prefer...
let
Source = Json.Document(
Web.Contents(
"http://ec2-54-174-131-205.compute-1.amazonaws.com/API/HDRO_API.php/indicator_id=137506/year=2018,2019"
)
),
#"Converted to Table" = Table.FromRecords({Source}),
country_name = #"Converted to Table"{0}[country_name],
CountryTable = Record.ToTable(country_name),
Custom1 = #"Converted to Table"{0}[indicator_value],
#"Converted to Table1" = Record.ToTable(Custom1),
#"Expanded Value" = Table.ExpandRecordColumn(
#"Converted to Table1",
"Value",
{"137506"},
{"137506"}
),
#"Expanded 137506" = Table.ExpandRecordColumn(
#"Expanded Value",
"137506",
{"2018", "2019"},
{"2018", "2019"}
),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(
#"Expanded 137506",
{"Name"},
"Year",
"Value"
),
IndicatorTable = Table.TransformColumnTypes(#"Unpivoted Other Columns", {{"Value", type number}}),
Custom2 = Table.NestedJoin(
CountryTable,
"Name",
IndicatorTable,
"Name",
"Custom",
JoinKind.LeftOuter
),
#"Expanded Custom" = Table.ExpandTableColumn(
Custom2,
"Custom",
{"Year", "Value"},
{"Indicator.Year", "Indicator.Value"}
)
in
#"Expanded Custom"
Have I solved your problem? Please click Accept as Solution so I don't keep coming back to this post, oh yeah, others may find it useful also ;). |
If you found this post helpful, please give Kudos. It gives me a sense of instant gratification and, if you give me Kudos enough times, magical unicorns will appear on your screen. If you find my signature vaguely amusing, please give Kudos. | Proud to be a Super User! |
Hi @Anonymous,
Please see attached PBIX. I think it achieves what you're looking for.
Let me know if you have any questions.
Here's the M code if you prefer...
let
Source = Json.Document(
Web.Contents(
"http://ec2-54-174-131-205.compute-1.amazonaws.com/API/HDRO_API.php/indicator_id=137506/year=2018,2019"
)
),
#"Converted to Table" = Table.FromRecords({Source}),
country_name = #"Converted to Table"{0}[country_name],
CountryTable = Record.ToTable(country_name),
Custom1 = #"Converted to Table"{0}[indicator_value],
#"Converted to Table1" = Record.ToTable(Custom1),
#"Expanded Value" = Table.ExpandRecordColumn(
#"Converted to Table1",
"Value",
{"137506"},
{"137506"}
),
#"Expanded 137506" = Table.ExpandRecordColumn(
#"Expanded Value",
"137506",
{"2018", "2019"},
{"2018", "2019"}
),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(
#"Expanded 137506",
{"Name"},
"Year",
"Value"
),
IndicatorTable = Table.TransformColumnTypes(#"Unpivoted Other Columns", {{"Value", type number}}),
Custom2 = Table.NestedJoin(
CountryTable,
"Name",
IndicatorTable,
"Name",
"Custom",
JoinKind.LeftOuter
),
#"Expanded Custom" = Table.ExpandTableColumn(
Custom2,
"Custom",
{"Year", "Value"},
{"Indicator.Year", "Indicator.Value"}
)
in
#"Expanded Custom"
Have I solved your problem? Please click Accept as Solution so I don't keep coming back to this post, oh yeah, others may find it useful also ;). |
If you found this post helpful, please give Kudos. It gives me a sense of instant gratification and, if you give me Kudos enough times, magical unicorns will appear on your screen. If you find my signature vaguely amusing, please give Kudos. | Proud to be a Super User! |
@KNP that's incredible! Thank you so much!!
I have a question about this part of the M code. Could you please explain what it is doing? The "empty" symbol.
Thank you!
So the #"Converted to Table" is obviously referencing the earlier step, and the [indicator_value] the column. The {0} is referring to the first row. Power Query is 0 indexed, so {1} would be the second row. In your case it doesn't matter as there is only one row. If there were more rows, the code would need to be adjusted accordingly.
I hope this clarifies.
Have I solved your problem? Please click Accept as Solution so I don't keep coming back to this post, oh yeah, others may find it useful also ;). |
If you found this post helpful, please give Kudos. It gives me a sense of instant gratification and, if you give me Kudos enough times, magical unicorns will appear on your screen. If you find my signature vaguely amusing, please give Kudos. | Proud to be a Super User! |