Проблема:
Здесь сценарий перезаписывает тот же диапазон:
newSheet.getRange(2 + i, 1).setValue(faculty[0]);
Решение:
Добавьте 1 для каждой добавленной строки:
newSheet.getRange(2 + i + s, 1).setValue(faculty[0]);
Или используйте sheet#appendRow()
newSheet.appendRow(faculty);
Если вы практикуете лучшие практики , ваш сценарий можно упростить следующим образом:
const consolidate = () => {
const ws = SpreadsheetApp.getActiveSpreadsheet(),
oldSheets = ws.getSheets(),
newSheet = ws.insertSheet().setName('Consolidated_Data');
newSheet.getRange(1, 1, 1 + oldSheets.length * 3, 3).setValues([
['Faculty Name', 'Faculty ID', 'Date of Joining'],
...oldSheets.map(sheet =>
sheet
.getRange('B1:B5')
.getValues()
.reduce((a, c, i) => (i % 2 === 0 ? [...a, c[0]] : a), [])
),
]);
};