对于所有没有名字的电子邮件条目,替换为 '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.
我为我的游戏协会管理着一个庞大的电子邮件列表。在 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.