一次性从多个单元格中删除空白和其他字符或谷歌表格中的文本字符串

  • Share This
Michael Brown

学习公式和无公式的方法来修剪空白处,删除特殊符号(甚至是第一个/最后一个N个字符),以及一次性从多个单元格中删除某些字符之前/之后的相同文本字符串。

从几个单元格中同时删除相同的文字部分和添加它一样重要和棘手。 即使你知道一些方法,你肯定会在今天的博文中找到新的方法。 我分享了大量的函数和它们现成的公式,而且,像往常一样,我把最简单的--无公式--留到最后;)

    谷歌表格的公式,从单元格中删除文本

    我将从谷歌表的标准函数开始,这些函数将从单元格中删除你的文本字符串和字符。 这没有通用的函数,所以我将为各种情况提供不同的公式及其组合。

    谷歌表格:删除空白处

    在导入后或多个用户同时编辑工作表时,空格很容易溜进单元格。 事实上,多余的空格是如此普遍,以至于谷歌表有一个专门的修剪工具来删除所有空格。

    只要选择所有你想删除空白的谷歌表单元格,并选择 数据> 修剪空白处 在电子表格菜单中。

    当你点击该选项时,选择中的所有前导和尾部空间将被完全拿走,而数据之间的所有额外空间将被减少到一个。

    从谷歌表格的文本字符串中删除其他特殊字符

    唉,谷歌表没有提供一个工具来 "修剪 "除空格以外的其他字符。 你必须在这里处理公式。

    提示:或者用我们的工具来代替--"强力工具 "将把你的范围从你点击指定的任何字符中解放出来,包括空白处。

    在这里,我在公寓号码和电话号码之前用标签处理,中间有破折号和括号。

    我将使用公式来删除这些特殊字符。

    SUBSTITUTE函数将帮助我解决这个问题。 它通常用于用一个字符替换另一个字符,但你可以把它变成你的优势,把不需要的字符替换成......嗯,什么都不需要 :) 换句话说,把它删除。

    让我们看看这个函数需要什么参数。

    SUBSTITUTE(text_to_search, search_for, replace_with, [ occurrence_number])
    • 文本_to_search 是要处理的文本或包含该文本的单元格。 要求。
    • 搜索_for 是你想找到并删除的那个字符。 需要。
    • 替换_与 - 你将插入一个字符来代替不需要的符号。 需要。
    • 发生次数 - 如果你要找的字符有几个实例,你可以在这里指定替换哪一个。 这是完全可选的,如果你省略这个参数,所有的实例都会被替换成新的东西( 替换_为 ).

    所以我们来玩吧,我需要找到一个标签( ) 在 A1 并将其替换为 "无",在电子表格中用双引号标记( "" )。 考虑到所有这些,我可以建立以下公式。

    =substitute(a1, "#","" )

    提示:标签也在双引号中,因为在谷歌表格公式中应该以这种方式提及文本字符串。

    如果谷歌表格不提供自动操作,就把这个公式复制到下一列,你就会得到没有标签的地址。

    但是,那些破折号和括号怎么办? 你应该创建额外的公式吗? 完全不需要!如果你在一个Google Sheets公式中嵌套多个SUBSTITUTE函数,你将从每个单元格中删除所有这些字符。

    =substitute(substitute(substitute(a1, "#",""),"(",""),""),"-","

    这个公式逐个删除字符,每个SUBSTITUTE,从中间开始,成为下一个SUBSTITUTE要看的范围。

    提示:更重要的是,你可以用ArrayFormula包裹它,并一次性覆盖整个列。 在这种情况下,改变单元格引用( A1 )到你的数据栏中( A1:A7 )也是如此。

    =ArrayFormula(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A7, "#","),"(","),"),"-","))

    从谷歌表格的单元格中删除特定文本

    虽然你可以使用前面提到的谷歌表的SUBSTITUTE函数来删除单元格中的文本,但我也想展示另一个函数--REGEXREPLACE。

    它的名字是 "正则表达式替换 "的首字母缩写。 而我要用正则表达式来搜索要删除的字符串,并将其替换为 ' 无'( "" ).

    提示:如果你对使用正则表达式不感兴趣,我在这篇博文的最后描述了一个更简单的方法。

    提示:如果你正在寻找查找和删除谷歌表格中的重复内容的方法,请访问此博文。 REGEXREPLACE(text, regular_expression, replacement)

    如你所见,该函数有三个参数。

    • 文本 - 是你寻找要删除的文本字符串的地方。 它可以是双引号中的文本本身,也可以是对有文本的单元格/区域的引用。
    • 正则表达式 - 你的搜索模式,由各种字符组合组成。 你将寻找所有与此模式相匹配的字符串。 如果我可以这么说的话,这个参数是所有乐趣发生的地方。
    • 替换 - 一个新的期望的文本字符串。

    假设我的单元格中的数据也包含国家名称( 美国 ),如果在细胞的不同位置。

    REGEXREPLACE将如何帮助我删除它?

    =regexreplace(a1,"(.*)us(.*)", "1 $2")

    以下是该公式的具体运作方式。

    • 它扫描单元格的内容 A1
    • 以寻找与该掩码相匹配的信息。 "(.*)US(.*)"

      这个掩码告诉函数要寻找 美国 无论前面有多少个其他字符,都是如此 (.*) 或跟随 (.*) 国家的名称。

      而整个掩码按照函数的要求被放到了双引号中:)

    • 最后一个参数-- "$1 $2" - 是我想得到的东西。 $1 $2 每个人都代表这两组人物中的一个 -- (.*) - 你应该在第三个参数中提到这些组,这样公式就可以返回所有可能存在于该参数前后的东西。 美国

      至于说到 美国 本身,我只是在第3个参数中没有提到它--意思是,我想把所有从 A1 没有 美国 .

    提示:有一个专门的页面,你可以参考它来建立各种正则表达式,并在单元格的不同位置寻找文本。

    提示:至于那些剩余的逗号,上述的SUBSTITUTE函数将有助于摆脱它们;)你甚至可以用SUBSTITUTE包围REGEXREPLACE,用一个公式解决所有问题。

    =substitute(regexreplace(a1,"(.*)us(.*)", "1 $2"),",")

    删除所有选定单元格中某些字符之前/之后的文本

    例1.谷歌表的REGEXREPLACE函数

    当涉及到摆脱某些字符前后的一切时,REGEXREPLACE也有帮助。 记住,该函数需要3个参数。

    REGEXREPLACE(text, regular_expression, replacement)

    而且,正如我在上面介绍该函数时提到的那样,你应该正确使用第二个函数,这样该函数才知道要找到并删除什么。

    那么,我如何删除地址并在单元格中只保留电话号码?

    以下是我将使用的公式。

    =REGEXREPLACE(A1,".*\n.*(\+.*)","$1")

    • 下面是我在这种情况下使用的正则表达式。 ".*\n.*(\+.*)"

      在第一部分-- .*\n.* - 我使用 反斜杠+n 所以我想让这个函数删除换行前后的所有内容(包括它)。

      括号中的第二部分是 (\+.*) 我把这部分放在括号里,以便将其分组,并在以后记住它。

      提示:反斜杠用在加号之前,把它变成你要找的字符。 没有它,加号就只是表达式的一部分,代表其他一些字符(例如星号)。

    • 至于最后一个参数--1美元--它使函数只返回第二个参数的那一组:加号和后面的所有内容。 (\+.*) .

    以类似的方式,你可以删除所有电话号码但保留地址。

    =REGEXREPLACE(A1,"(.*\n).*","$1")

    只是这一次,你告诉函数将断行前的所有内容分组(并返回),并将其余部分清除。

    例2.右键+LEN+FIND

    还有一些谷歌表函数可以让你删除某个字符之前的文本。 它们是RIGHT、LEN和FIND。

    注意:这些函数只有在要保留的记录长度相同的情况下才有帮助,比如我的例子中的电话号码。 如果它们不是,就用REGEXREPLACE代替,或者更好的是,用最后描述的更简单的工具。

    以特定的顺序使用这个三重奏将帮助我获得相同的结果,并删除一个字符--加号--之前的整个文本。

    =right(a1,(len(a1)-(find("+",a1)-1))

    让我解释一下这个公式是如何运作的。

    • FIND("+",A1)-1 找到A1中加号的位置号( 24 )并减去1,所以总数不包括加号本身。 23 .
    • LEN(A1)-(FIND("+",A1)-1) 检查A1中的总字符数( 40 )并从中减去23(由FIND计算)。 17 .
    • 然后RIGHT从A1的末端(右边)返回17个字符。

    不幸的是,在我的案例中,这种方式对删除换行后的文本没有多大帮助(清除电话号码并保留地址),因为地址的长度不同。

    好吧,没关系,反正最后的工具能更好地完成这项工作;)

    从谷歌表格的字符串中删除第一个/最后一个字符

    每当你需要从一个单元格的开头或结尾删除一定数量的不同字符时,REGEXREPLACE和RIGHT/LEFT+LEN也会有所帮助。

    注意:由于我在上面已经介绍了这些函数,我将缩短这一点,并提供一些现成的公式。 或者随意跳到最后描述的最简单的解决方案。

    那么,我怎样才能抹去这些电话号码的代码呢? 或者,换句话说,从单元格中删除前9个字符。

    • 使用REGEXREPLACE,创建一个正则表达式,找到并删除第9个以内的所有字符(包括第9个字符)。

      =REGEXREPLACE(A1,"(.{9})(.*)","$2")

      .

      提示:要删除最后N个字符,只需交换正则表达式中的组别。

      =REGEXREPLACE(A1,"(.*)(.{9})","$1")

    • RIGHT/LEFT+LEN还可以计算删除的字符数,并分别从单元格的末尾或开头返回剩余部分。

      =right(a1,len(a1)-9)

      提示:要删除单元格中的最后9个字符,用LEFT代替RIGHT。

      =left(a1,len(a1)-9)

    • 最后但并非最不重要的是REPLACE函数,你告诉它从左边开始的9个字符,用什么都不替换( "" ):

      =replace(a1,1,9,")

      注意:由于REPLACE需要一个起始位置来处理文本,如果你需要从一个单元格的末尾删除N个字符,那么它就不能做到。

    在谷歌表格中删除特定文本的无公式方法 - Power Tools插件

    只要你有时间,函数和所有的东西都是好的。 但是你知道有一个特殊的工具,它包含了上述所有的方式,你所要做的就是选择所需的单选按钮? 没有公式,没有额外的列 - 你不能希望有一个更好的助手;D

    你不必相信我的话,只要安装Power Tools,自己就能看到它。

    1. 第一组让你 删除多个子字符串或单个字符 一次从所有选定的单元格中的任何位置开始。

  • 下一篇 不仅删除空格,还删除换行符、HTML实体& 标签和其他定界符和非打印字符。 只需在所有需要的复选框上打勾,然后按下 移除 :
  • 最后,还有一些设置可以在谷歌表格中删除文本 按某一位置、前/后N个字符、或前/后字符计算 :
  • Power Tools的另一个工具将从时间戳中移除时间和日期单位。 它叫做Split Date & Time。

    分割工具与删除时间和日期单位有什么关系? 好吧,要从时间戳中删除时间,选择 日期 因为这是你想保留的部分,也是你想勾销的部分。 替换源数据 ,就像上面的截图一样。

    该工具将提取日期单位,并用其替换整个时间戳。 或者,换句话说,这个用于谷歌表格的插件将从时间戳中删除时间单位。

    你可以通过从谷歌商店安装该插件来拥有所有这些和其他30多个节省时间的电子表格。 前30天完全免费,功能齐全,所以你有时间来决定是否值得任何投资。

    如果你有任何与这篇博文任何部分相关的问题,我们在下面的评论区见!

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.