Help

Save the date! Join us on October 16 for our Product Ops launch event. Register here.

Re: Create a master list of tab contents

1047 0
cancel
Showing results for 
Search instead for 
Did you mean: 
ConSquirrel
4 - Data Explorer
4 - Data Explorer

Hi!

   So I am an agent who books talent for conventions.  I have a base that has like 75 sheets in it.  Each sheet is a convention and on those sheets it is marked which talent is going to that convention.  My question is, can I make another sheet for the front of the base that is basically a "Master Convention list" which would list each of the talent in column A and then in columns B-whatever, list what conventions they are invited to (which sheets they appear on) 

I can't seem to figure this one out. Any help would be appreciated

2 Replies 2
Shannon_Bradley
7 - App Architect
7 - App Architect

I have similar setups, and you kinda want to think backwards. You create another table that is Talent and list everyone there. Then you use that to link to each convention. May be a bit of work to re-configure everything currently, but in the end you will actually have something really useful, where you can filter down details for each talent and con and other things from there.

Just like this https://airtable.com/appVMj2U48nHDstSo/shrHrxVvmLH58DFeZ 

I have reconfigured my setup several times before I got something really good 🙂

 

Hi, 
I have script for task, close to yours. to get all data from all tables to master. 
Requirements - all tables should include fields with same names as in "Master" table (others are ignored)
Set up variable in 2nd line to exclude any tables, if needed (at least 'Master' should stay in list)
Hope that helps

const table=base.getTable('Master'); let data=[]
const excluded=['Master','Any other table to exclude','or several tables']
const xtables=base.tables.filter(t=>!excluded.includes(t.name))
const fld=table.fields.map(f=>f.name.toString()) //Master defines field list
const row=r=>({fields:Object.fromEntries(fld.map(f=>[f,r.getCellValueAsString(f)]))})
const gettab=async tab=>await tab.selectRecordsAsync({fields:tab.fields}).then(q=>q.records.map(row))
for(var t of xtables) data.push(...await gettab(t))
while (data.length) await table.createRecordsAsync(data.splice(0,50))