【问题标题】:How can I automatically remove extra characters from phone numbers in a specific column on Google Sheets?如何自动删除 Google 表格特定列中电话号码中的多余字符?
【发布时间】:2021-04-25 12:16:35
【问题描述】:
我有一个 Google 电子表格,其中多个用户在 D 列输入了 10 位数的电话号码。我希望所有电话号码的格式都只有 10 位数,没有其他内容。没有空格、括号或连字符。用户输入数字后,如何自动完成?目前,我通过选择整个列并使用“查找和替换”功能手动执行此操作。我曾尝试使用它来录制宏,但没有任何运气。
示例输入:
123-456-7890
(123)456-7890
123 456 7890
示例输出结果:
1234567890
【问题讨论】:
标签:
google-apps-script
google-sheets
【解决方案1】:
你也可以通过一个公式来做到这一点
=REGEXREPLACE(A2,"[^0-9]","")
【解决方案2】:
我相信你的目标如下。
在这种情况下,我想使用 OnEdit 触发器作为简单触发器来运行该函数。而且,为了替换值,我想建议使用 TextFinder。示例脚本如下。
示例脚本:
请将以下脚本复制并粘贴到 Google 电子表格的脚本编辑器中。并且,请设置您要使用的工作表的工作表名称。为了运行脚本,请将值放入“D”列。
function onEdit(e) {
const sheetName = "Sheet1"; // Please set the sheet name.
const range = e.range;
if (range.getSheet().getSheetName() != sheetName || range.columnStart != 4) return;
range.createTextFinder("[-() ]").useRegularExpression(true).replaceAllWith("");
}
- 在此脚本中,当
123-456-7890、(123)456-7890、123 456 7890 的上述值放入“D”列时,这些值将转换为1234567890。
注意:
- 此脚本由 OnEdit 的简单触发器运行。所以当你直接用脚本编辑器运行脚本时,就会出现
TypeError: Cannot read property 'range' of undefined之类的错误。请注意这一点。
参考资料: