extract emails google sheets

PHOTO EMBED

Mon Jun 05 2023 12:34:52 GMT+0000 (Coordinated Universal Time)

Saved by @menaheero

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);
}
content_copyCOPY