Forum Discussion
Airtable - Certain Columns Pulled in as Lists, Cannot Get the Data
- 7 years ago
Now I got it: As they are dropdown fields and just allow you to select existing/defined items, the returned values will be their keys. So you have to merge them with the respective tables to lookup their values from those tables.
Thank you ImkeF. The query actually works and pulls most of the data I need. The only data challenge are with the columns within Airtable populated based on drop down lists.
I'm no query expert so knowledge is limited. I reviewed the query and since it works for most of the data, I see no reason why it won't grab the drop down option columns. From my limited knowledge, columns I need are listed as last part of query, bearer key is correct (though I changed for posting). Perhaps it needs another "expanded to stepA.4", middle part of query? Though I really have no idea.
Please see query below if it helps. I greatly appreciate your continued support:
let
Pagination = List.Skip( List.Generate( () => [Page_Key = "init", Counter=0], // Start Value
each [Page_Key] <> null, // Condition under which the next execution will happen
each [Page_Key = try if [Counter]<1
then ""
else [WebCall][Value][offset]
otherwise null, // determine the LastKey for the next execution
WebCall = try if [Counter]<1
then Json.Document(Web.Contents("https://api.airtable.com/v0/appeLOlVFTEAhg1NR/Opportunities", [Headers=[Authorization="Bearer keydXXXXXXXXXXXXX"]]))
else Json.Document(Web.Contents("https://api.airtable.com/v0/appeLOlVFTEAhg1NR/Opportunities?offset="&[WebCall][Value][offset] , [Headers=[Authorization="Bearer keyXXXXXXXXXXXXX"]])),// retrieve results per call
Counter = [Counter]+1// internal counter
],
each [WebCall]
),
1
),
#"Json2Table" = Table.RenameColumns(Table.FromList(Pagination, Splitter.SplitByNothing(), null, null, ExtraValues.Ignore),{{"Column1", "stepA.1"}}),
#"Expanded to stepA.2" = Table.ExpandRecordColumn(#"Json2Table", "stepA.1", {"Value"}, {"stepA.2"}),
#"Expanded to stepA.3" = Table.ExpandRecordColumn(#"Expanded to stepA.2", "stepA.2", {"records"}, {"stepA.3"}),
#"Rows from stepA.3" = Table.RenameColumns(Table.ExpandListColumn(#"Expanded to stepA.3", "stepA.3"),{{"stepA.3", "stepB.1"}}),
#"Source" = Table.ExpandRecordColumn(#"Rows from stepA.3", "stepB.1", {"fields"}, {"Src"}),
#"Expanded Src" = Table.ExpandRecordColumn(Source, "Src", {"Autonumber", "Opportunity Title", "Project Duration ", "Total Opportunity Value (USD)", "Currency", "Country", "Proposal Lead", "Donor", "Prime", "Comments", "Win Probability", "Go/No-Go", "Year", "Status", "Submission Deadline (New)", "Start Date", "End Date", "PD/TAD LOE", "Surge Support", "Proposal Type", "Region", "Reference Number", "US/UK", "Country Code", "ICR", "# Mths", "Country Risk Rating", "Cost Lead", "Proposal Team"}, {"Src.Autonumber", "Src.Opportunity Title", "Src.Project Duration ", "Src.Total Opportunity Value (USD)", "Src.Currency", "Src.Country", "Src.Proposal Lead", "Src.Donor", "Src.Prime", "Src.Comments", "Src.Win Probability", "Src.Go/No-Go", "Src.Year", "Src.Status", "Src.Submission Deadline (New)", "Src.Start Date", "Src.End Date", "Src.PD/TAD LOE", "Src.Surge Support", "Src.Proposal Type", "Src.Region", "Src.Reference Number", "Src.US/UK", "Src.Country Code", "Src.ICR", "Src.# Mths", "Src.Country Risk Rating", "Src.Cost Lead", "Src.Proposal Team"})
in
#"Expanded SrcThanks,
ROKRI
Code looks OK, as far as I can tell without actually seeing the data that is returned.
I believe that the returned data for your dropdown-fields is encoded and one has to find the correct encoding keys.
Otherwise error-would be shown.
- ImkeF7 years ago
Community Champion
Now I got it: As they are dropdown fields and just allow you to select existing/defined items, the returned values will be their keys. So you have to merge them with the respective tables to lookup their values from those tables.
- ROKRI7 years ago
Helper I
This is fantastic ImkeF , thank you!
Took me a bit to figure out how to merge the tables. Here's how I got it to work based on what I understood, curious if this is what you meant - I pulled into Power BI from Airtable the additional tables from which the initial one pulls drop down options. Then, using the "Manage Relationships" in Power BI, I was able to setup a one to many relationship between the Airtable data and it worked!
I appreciate your support and patience. Thank you for helping me solve this issue.
ROKRI
- Anonymous6 years agoNot applicable
Hi I have a similiar question. I am using Airtable for a survey I am doing where one table has the stops I make with several columns that are linked to another table for tools I select based on where they purchased them(each column has a different purchasing source). The issue I have is whenever I expand the column into new rows(because PowerBi sees a list), it duplicates each record's info for each column I expand.
I'm wondering if there is a better way to set up my Airtable info to better popular the data into PowerBi without having so much extra data and duplicates?
I can setup the relationship up to match the record id to the correct tool name but with 500 surveys and over 3k tools there is a ton of duplicate info and tens of thousands of records.
Table 1- Stops
Record 1 has Person with city, state, age etc... and also has 10 linked column where I choose the tools he has based on where he purchased them.
Table 2- Tool Database
Record 1 has model # and other info as well as the linked records showing which techs chose which tool.
Whenever I expand a record it duplicate all the survey info name, city, state etc but will only have the 1 record inside of the column. This seems very inefficient and even though I can tell PowerBi to Count (Distinct) when doing charts, it can be confusing. Stops with multiple choices in columnToolbox Database showing record id and person choices.
- Anonymous3 years agoNot applicable
I believe I am having the same problem. How do I merge them with the respective tables?