【问题标题】:Replace everything after specific character in google sheets替换谷歌表格中特定字符后的所有内容
【发布时间】:2021-03-09 11:53:41
【问题描述】:

所以我有一个包含 30k 多封电子邮件的文档。问题是,在电子邮件之后出现的导出随机字符,例如 name@email.com2019-10-10T0545152019-10-10T054515f 或 name@email.com00000000000700392019-11-28T070033f

我的问题是,如何删除所有单元格中“.com”或“.fr”之后的所有内容?

【问题讨论】:

  • 我使用谷歌表格。我尝试了搜索和替换,因为我不知道如何向所有单元格输入函数。我是新做谷歌表格
  • 您目前有一些不错的答案可供您使用。但是,我已投票结束您的问题,因为它目前是题外话。您可以通过minimal reproducible example 参考How to Ask 的问题。最好包括您自己的尝试。使用 GS 共享工作簿的副本可能也是明智之举。

标签: google-sheets cell


【解决方案1】:

您可以尝试使用 REGEXREPLACE。

=REGEXREPLACE(A1,"\.com.*|\.fr.*", "")

【讨论】:

  • 一个提示诺里。您当前正在删除包括“.com”或“.fr”的所有内容。您可能想使用:=REGEXREPLACE(A1,"\.(com|fr).*",".$1") =)
  • 有没有办法将此功能应用于所有单元格?
  • 我刚试过,它给了我一个错误
【解决方案2】:

试试

=REGEXEXTRACT(A1,".+\.com|.+\.fr")

【讨论】:

  • 嗨,汤姆,不错的选择。仅供参考,您可以避免使用非捕获组回溯。请参阅 this 示例使用 1357 步与 this 仅使用 47 步。想象一下最有可能成为 OP 的数组公式的差异 =)
【解决方案3】:

根据其他人添加的内容,您可以从 A 列获取所有电子邮件,并使用正则表达式来获取值。使用ARRAYFORMULA,您可以在一个公式中完成:

=ARRAYFORMULA(IF(A:A<>""; REGEXEXTRACT(A:A; ".+\.(?:com|fr)"); ""))

破败

  • ARRAYFORMULA 允许对整列执行公式
  • REGEXEXTRACT 使用正则表达式提取部分字符串
  • IF 有条件的。在这种情况下,它习惯于在单元格为空时不执行,以防止出错。

参考文献

【讨论】:

  • 当我尝试时它说错误。我真的不知道该怎么办,我什至不知道我是否将公式写在正确的位置以及是否选择了所有单元格
  • 嗨@ColinThanasi。您的语言环境(法语?)可能需要在公式中使用分号。所以尝试用分号 (;) 替换逗号,看看它是否有效?
  • 您是否将其添加到第 1 行的另一列中?
  • @JPV 是的。没想到
  • @ColinThanasi 如果你将鼠标悬停在它上面会说什么?
【解决方案4】:

假设您的原始数据电子邮件列表位于 A2:A 中,请尝试在其他空列的第 2 行(例如 B2):

=ArrayFormula(IF(A2:A="",,REGEXEXTRACT(A2:A,"^.+\.\D+")))

在简单的英语中,这意味着“提取所有内容,直到找到的最后一个点,然后是一些非数字。”

这应该拉到任何后缀(例如,.com.co.biz.org.ma.gov 等)。

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2012-02-08
    • 1970-01-01
    • 2023-02-10
    相关资源
    最近更新 更多