function extractEmails() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var range = sheet.getRange('F:F'); var values = range.getValues(); var extractedEmails = []; var maxEmailCount = 0; for (var i = 0; i < values.length; i++) { var emails = []; if (values[i][0] !== "" && typeof values[i][0] === "string") { var emailRegex = /[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/g; var emailMatches = values[i][0].match(emailRegex); if (emailMatches) { emails = emailMatches.map(function (email) { return [email]; }); if (emails.length > maxEmailCount) { maxEmailCount = emails.length; } } } extractedEmails.push(emails); } // Adjust the range dimensions based on the maximum email count var outputRange = sheet.getRange(1, 7, extractedEmails.length, maxEmailCount); // Fill any remaining empty cells with empty strings var emptyEmails = new Array(maxEmailCount).fill([""]); for (var i = 0; i < extractedEmails.length; i++) { extractedEmails[i] = extractedEmails[i].concat(emptyEmails.slice(extractedEmails[i].length)); } outputRange.setValues(extractedEmails); }