At a summary level, this displays similarly to a pivot table. Notably, it doesn't store the giant cube of data in the background, it is not drag and drop (yet), it is not drillable (yet) ... and it allows for uploading data.
Script must be self-contained and not reference external libraries, aside from Google's openly available ones.
Script will take inputs from a drop down menu item
"Get Data" functionality will convert these inputs into a Redshift compliant SELECT request with some error-out functionality. If successful, results will be placed into the proper location of the table.
"Upload Data" functionality will convert these inputs into a Redshift compliant UPSERT request with some error-out functionality. If successful, some sort of confirmation happens (e.g., message box).
For more granularity, please see attached spreadsheet. Ask questions if this doesn't make sense.