This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreDid you hear? There's a new SQL AI Developer certification (DP-800). Start preparing now and be one of the first to get certified. Register now
What I have now:
I can edit parameter, choose "1" and I get Luke Skywalker; "2" and I get C-3PO; "3" and it's R2-D2.
It's possible because I have 3 queries:
What I'd like to have:
One table with all character details or new table for every character.
PBIX:
I can't upload the file. Sorry. Here's how I did it:
Solved! Go to Solution.
I did it in one table instead of creating new table for each character's id.
We need one table and one function.
Here's full solution:
1. Create function getCharacter(id):
let
Source = (id as text) => let
Source = Json.Document(Web.Contents("https://swapi.co/api/people/" & id)),
#"Converted to Table" = Record.ToTable(Source)
in
#"Converted to Table"
in
Source
2. Create table with ids for id parameter in URL: https://swapi.co/api/people/{id}
Table with ids for API: https://swapi.co/api/people/{id}
3. Invoke the function getCharacter(id) on this table: go to 'Add column' -> 'Invoke custom function' and expand.
Expanded table with character details for each id specified earlier
M code for the expanded table above:
let
idList = {"1", "2", "3"},
#"Converted to Table" = Table.FromList(idList, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Renamed Columns" = Table.RenameColumns(#"Converted to Table",{{"Column1", "id"}}),
#"Invoked Custom Function" = Table.AddColumn(#"Renamed Columns", "getCharacter", each getCharacter([id])),
#"Expanded getCharacter" = Table.ExpandTableColumn(#"Invoked Custom Function", "getCharacter", {"Name", "Value"}, {"getCharacter.Name", "getCharacter.Value"})
in
#"Expanded getCharacter"
I did it in one table instead of creating new table for each character's id.
We need one table and one function.
Here's full solution:
1. Create function getCharacter(id):
let
Source = (id as text) => let
Source = Json.Document(Web.Contents("https://swapi.co/api/people/" & id)),
#"Converted to Table" = Record.ToTable(Source)
in
#"Converted to Table"
in
Source
2. Create table with ids for id parameter in URL: https://swapi.co/api/people/{id}
Table with ids for API: https://swapi.co/api/people/{id}
3. Invoke the function getCharacter(id) on this table: go to 'Add column' -> 'Invoke custom function' and expand.
Expanded table with character details for each id specified earlier
M code for the expanded table above:
let
idList = {"1", "2", "3"},
#"Converted to Table" = Table.FromList(idList, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Renamed Columns" = Table.RenameColumns(#"Converted to Table",{{"Column1", "id"}}),
#"Invoked Custom Function" = Table.AddColumn(#"Renamed Columns", "getCharacter", each getCharacter([id])),
#"Expanded getCharacter" = Table.ExpandTableColumn(#"Invoked Custom Function", "getCharacter", {"Name", "Value"}, {"getCharacter.Name", "getCharacter.Value"})
in
#"Expanded getCharacter"
While this is an old post, for anyone who ends up here looking for a solution, the above process is explained quite well in this video:
https://www.youtube.com/watch?v=MCTXMUuH3gk&ab_channel=PowerBIGuy
@v-chuncz-msft, thank you. Also, if somebody has similiar problem, that's very helpful: Radacad: Custom Functions Made Easy in Power BI Desktop.
Right now, I have a table for each parameter. Below.
How can I export Table as a new query automatically?
I know I can do it manually: right click on the Table and choose 'Add as a new query'.
| list | character |
| 1 | Table |
| 2 | Table |
| 3 | Table |
You may write code in The Advanced Editor.
You may right click the query and select Create Function, then invoke it for each row in Query Editor.
https://msdn.microsoft.com/en-us/library/mt185361.aspx
Check out the April 2026 Power BI update to learn about new features.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 37 | |
| 37 | |
| 31 | |
| 21 | |
| 16 |
| User | Count |
|---|---|
| 66 | |
| 56 | |
| 31 | |
| 26 | |
| 23 |