【问题标题】: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】:

      我相信你的目标如下。

      • 您想使用 Google Apps 脚本转换以下情况。

        • 来自

            123-456-7890
            (123)456-7890
            123 456 7890
          
        •   1234567890
          
      • 您希望在将值放入“D”列时运行脚本。

      在这种情况下,我想使用 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-7890123 456 7890 的上述值放入“D”列时,这些值将转换为1234567890

      注意:

      • 此脚本由 OnEdit 的简单触发器运行。所以当你直接用脚本编辑器运行脚本时,就会出现TypeError: Cannot read property 'range' of undefined之类的错误。请注意这一点。

      参考资料:

      【讨论】:

        猜你喜欢
        • 2013-06-25
        • 1970-01-01
        • 2018-05-08
        • 2014-03-26
        • 1970-01-01
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        • 2020-11-17
        相关资源
        最近更新 更多