So far, the best answer I have found for this question can be found here: http://www.jessespevack.com/systems-leadership/2015/4/22/pulling-spreadsheet-data-no-scripts-required . Essentially, use ImportRange to output data from several other sheets. Then wrap them in ArrayFormula so that they appear one after another on the sheet. Then wrap ArrayFormula in Sort so that the empty lines remain at the end.
Say you have Sheet1, Sheet2, and Sheet3, and you want to merge the AE columns into MergeSheet. Place column headings in MergeSheet cells! A1: E1
Then in cell A2, enter the following formula:
=SORT( ARRAYFORMULA({ IMPORTRANGE("https://docs.google.com/spreadsheets/d/UniqueKey","Sheet1!A2:E"); IMPORTRANGE("https://docs.google.com/spreadsheets/d/UniqueKey","Sheet2!A2:E"); IMPORTRANGE("https://docs.google.com/spreadsheets/d/UniqueKey","Sheet3!A2:E") ,1,TRUE}))
The URL is the URL of the spreadsheet spreadsheet and can be copied from the address bar of the browser.
It is best to verify that the IMPORTRANGE function works for each range separately before combining them into one long function.
source share