对于所有没有名字的电子邮件条目,替换为 'Gamer'

For all e-mail entries that do not have a firstname, replace with 'Gamer'

我为我的游戏协会管理着一个庞大的电子邮件列表。在 A 列中,我有电子邮件,在 B 列中,我有用户名。我用一个公式填充 B 列,该公式从用户的电子邮件地址中提取用户名,该地址通常采用 firstname.lastname@email.com 形式。因此,如果用户的电子邮件采用 firstname.lastname@email.com 格式,则 B 列 returns "Firstname" 在 I 运行 公式之后。

然而,有时电子邮件只有名字的首字母 (f.lastname@email.com),在这种情况下,我希望 B 列 return单词 'Gamer' 而不是,例如,用户电子邮件的第一个字母。

这是我目前使用的脚本,当前删除所有包含四个或更多数字的行:

    function removeNumbers() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  var rowsDeleted = 0;
  for (var i = 0; i <= numRows - 1; i++) {

var row = values[i];

if (row[0].toLowerCase().indexOf("robot") > -1) {
  sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
  rowsDeleted++;
}

在您的共享传播sheet 上,使用这个

function firstName() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  var lr=sheet.getLastRow()
  var val = sheet.getRange(2,1,lr-1,2).getValues();//get the col A email addrs
  var newVal=[]//new array for before fitst period
  for (var i = 0; i <= val.length-1; i++) {
    var str=val[i][0].split(".")//split email at period
    var len=str[0].length // determine lenght of number string of first split
  if(val[i][1]=="inactive"){
    newVal.push(["inactive"])
    continue
  }
  if(len<=1){//if 1 or less
    def="Gamer"
    newVal.push([def]) //put Gamer in new array
  }
  else{
   newVal.push([toTitleCase(str[0])]) //keep first name
}}
  sheet.getRange(2, 2, newVal.length, 1).setValues(newVal)//set new values in col B
 }
function toTitleCase(str) {
    return str.replace(/\w\S*/g, function (txt) {
        return txt.charAt(0)
            .toUpperCase() + txt.substr(1)
            .toLowerCase();
    });
}

这口井也运行上活跃sheet.