I made a script to combine data from Sheet1 and Sheet2 into Sheet "Master".
If there is a data change in the "Master" sheet, I write the script to update the data changes to each sheet.
//combine data from multiple sheetsfunction MergeSheets() { var app = SpreadsheetApp; var ss = app.getActiveSpreadsheet(); var data = null; var RetrieveSheet = null; var PasteSheet = ss.getSheetByName("Master"); var sheets = ['Sheet1','Sheet2']; PasteSheet.getRange(2,1,PasteSheet.getLastRow(),PasteSheet.getLastColumn()).clear(); for (var i =0; i<sheets.length; i++){ RetrieveSheet = ss.getSheetByName(sheets[i]); if (RetrieveSheet.getName() != 'Master'){ data = RetrieveSheet.getRange(2,1,RetrieveSheet.getLastRow(),RetrieveSheet.getLastColumn()); data.copyTo(PasteSheet.getRange(parseInt(PasteSheet.getLastRow())+1,1)); } }}//update data changes to each sheetsfunction updateBasedSheet(){ var master = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master'); var valueMaster = master.getRange(2, 1, master.getLastRow(), master.getLastColumn()).getValues(); var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2'); var dataSheet1 = valueMaster.filter( function(item){ return item[2] === 'Sheet1'; }); var dataSheet2 = valueMaster.filter( function(item){ return item[2] === 'Sheet2'; }); sheet1.getRange(2, 1, dataSheet1.length, dataSheet1[0].length).setValues(dataSheet1); sheet2.getRange(2, 1, dataSheet2.length, dataSheet2[0].length).setValues(dataSheet2);}But, my code is still no simple. The problem is when I have 100 sheets, I have to write over and over:

