I have a Google Apps Script pulling the names of each tab in my Google Sheet into one list. The tabs are labeled by month and year (i.e., February 2020) but I don't have a tab for every single month since February. I create a new tab for months when I have new data which is not always every consecutive month.
With these tabs, I want to query all unique values across all tabs, in column D on each of the tabs. I'm wondering if it's possible to do this in anticipation for potential new tabs, so I don't have to go and update the query whenever I add a new tab?
Currently I have the list of existing tabs and concatenated to include the range (so each tab/range is listed as January 2020!A:D, for example) in cells C2:C6. The query I have that is correctly pulling unique values is:
=UNIQUE(QUERY({INDIRECT(C2);INDIRECT(C3);INDIRECT(C4);INDIRECT(C5);INDIRECT(C6)},"Select Col4 where Col4 is not null",1))
Is there a way to possibly add new month/dates to the list of existing tabs in anticipation of that tab name possibly being added in the future, and adding those not-yet-existing tab names into the query, but telling it to ignore it if it can't find that tab in the sheet?
Thank you in advance!
there are several ways how to solve this:
non-existing sheets can be ignored like this:
=UNIQUE(QUERY({
IF(C2="", {"","","",""}, INDIRECT(C2));
IF(C3="", {"","","",""}, INDIRECT(C3));
IF(C4="", {"","","",""}, INDIRECT(C4));
IF(C5="", {"","","",""}, INDIRECT(C5));
IF(C6="", {"","","",""}, INDIRECT(C6))},
"select Col4 where Col4 is not null", 1))
note 4 columns in A:D = 4 empty slots {"","","",""}
see:
https://stackoverflow.com/a/69067831/5632629
https://stackoverflow.com/a/57452968/5632629
https://stackoverflow.com/a/58599649/5632629