从谷歌表格中提取数据:从字符串中提取某些文本,从链接中提取URL,以及更多。

  • Share This
Michael Brown

我们在电子表格中对文本的下一步操作是专门用于提取。 找出从多个谷歌表格单元格的不同位置一次性提取各种数据的方法--文本、字符、数字、URL、电子邮件地址、日期& 时间等。

    从字符串中提取文本和数字的谷歌表格公式

    谷歌表格中的公式无所不包。 虽然有些组合添加了文本& 数字和删除各种字符,但有些组合也提取了文本、数字、单独的字符等。

    按位置提取数据:第一/最后/中间的N个字符

    当你要从谷歌表格单元格中取出数据时,最容易处理的函数是LEFT、RIGHT和MID。 它们按位置获得任何数据。

    从谷歌表格中的单元格开头提取数据

    你可以使用LEFT功能轻松地拉出前N个字符。

    LEFT(string,[number_of_characters])
    • 绳子 是你想提取数据的文本。
    • 字符数 是指从左边开始要取出的字符数。

    这里有一个最简单的例子:让我们把电话号码中的国家代码拿出来。

    正如你所看到的,国家代码在单元格的开头需要6个符号,所以你需要的公式是。

    =LEFT(A2,6)

    提示:ArrayFormula将使其有可能一次从整个范围内获得6个字符。

    =ArrayFormula(LEFT(A2:A7,6))

    从谷歌表格中的单元格末尾提取数据

    要从单元格中取出最后N个字符,请使用RIGHT函数来代替。

    RIGHT(string,[number_of_characters])
    • 绳子 仍然是要提取数据的文本(或单元格引用)。
    • 字符数 也是要从右边抽取的字符数。

    让我们从相同的电话号码中得到那个国家的名字。

    他们只需要2个角色,这正是我在公式中提到的。

    =RIGHT(A2,2)

    提示:ArrayFormula还可以帮助你一次从所有Google表单元格的末端提取数据。

    =ArrayFormula(RIGHT(A2:A7,2))

    从谷歌表格中的单元格中间提取数据

    如果有从单元格的开头和结尾提取数据的函数,那么肯定也有一个从中间提取数据的函数。 是的--有一个。

    这就是所谓的MID。

    MID(string, starting_at, extract_length)
    • 绳子 - 你想把中间部分拿出来的文本。
    • 开始时间 - 你想从哪个字符开始获取数据的位置。
    • 抽取长度(Extract_length - 你需要拉出的字符数。

    通过相同的电话号码的例子,让我们找到没有国家代码和国家缩写的电话号码本身。

    由于国家代码以第6个字符结束,第7个是破折号,我将从第8个数字开始提取数字。 而我总共会得到8个数字。

    =MID(A2,8,8)

    提示:将一个单元格改为整个范围,并将其包裹在ArrayFormula中,可以一次性提供每个单元格的结果。

    =ArrayFormula(MID(A2:A7,8,8))

    从字符串中提取文本/数字

    有时按位置提取文本(如上图所示)不是一种选择。 所需的字符串可能位于单元格的任何部分,并由不同数量的字符组成,迫使你为每个单元格创建不同的公式。

    但是,如果谷歌表没有其他有助于从字符串中提取文本的功能,它就不是谷歌表了。

    让我们回顾一下电子表格提供的几种可能方式。

    提取某个文本之前的数据 - LEFT+SEARCH

    每当你想提取某个文本之前的数据时,使用LEFT + SEARCH。

    • 左边 用于返回从单元格开始的一定数量的字符(从其左边开始)。
    • 搜索 寻找某些字符/字符串并获得其位置。

    结合这些--LEFT将返回SEARCH建议的字符数。

    这里有一个例子:如何提取每个 "ea "之前的文本代码?

    这是在类似情况下帮助你的公式。

    =LEFT(A2,SEARCH("ea",A2)-1)

    以下是公式中发生的情况。

    1. SEARCH("ea",A2) 在A2中寻找'ea',并返回每个单元格中'ea'开始的位置-10。
    2. 所以第10个位置是'e'所在的位置。 但由于我想得到'ea'之前的所有东西,我需要从该位置减去1。 否则,'e'也会被返回。 所以我最终得到9。
    3. 左边 看A2,得到前9个字符。

    提取文本后的数据

    也有一些方法可以获得某个文本字符串之后的所有内容。 但这次,RIGHT不会有帮助。 相反,REGEXREPLACE会轮到它。

    提示:REGEXREPLACE使用正则表达式。 如果你不准备处理它们,有一个更简单的解决方案,如下所述。 REGEXREPLACE(text, regular_expression, replacement)

    • 文本 是一个字符串或一个单元格,你想在其中进行修改。
    • 正则表达式 是指代表你要寻找的文本的一部分的字符组合。
    • 替换 是你想得到的任何东西,而不是那个 文本

    那么,你如何使用它来提取某个文本之后的数据--在我的例子中是'ea'?

    很简单--使用这个公式。

    =REGEXREPLACE(A2,"(.*)ea(.*)","$2")

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

    1. A2 是我要提取数据的一个单元格。
    2. "(.*)ea(.*)" 是我的正则表达式(或者你可以称之为掩码)。 我寻找'ea',并将所有其他字符放入括号中。 有两组字符--'ea'之前的所有字符是第一组(.*),'ea'之后的所有字符是第二组(.*)。 整个掩码本身被放入双引号中。
    3. "$2" 是我想得到的东西--前一个参数中的第二组(因此其数字为2)。

    提示:正则表达式中使用的所有字符都收集在这个特殊页面上。

    从谷歌表格单元格中提取数字

    如果你想只提取数字,当它们的位置和任何之前&之后的东西都不重要时怎么办?

    掩码(又称正则表达式)也会有帮助。 事实上,我将采用同样的REGEXREPLACE函数并改变正则表达式。

    =REGEXREPLACE(A2,"[^[:digit:]]", "")

    1. A2 是一个单元格,我想从那里得到这些数字。
    2. "[^[:digit:]]" 是一个正则表达式,除了数字之外,其他的都可以接受。 那个^caret符号就是为数字提供例外的原因。
    3. "" 用 "无 "替换除数字字符以外的所有内容。 或者,换句话说,完全删除,只在单元格中留下数字。 或者,提取数字 :)

    提取文本,忽略数字和其他字符

    以类似的方式,你可以从谷歌表格单元格中只取出字母数据。 代表文本的正则表达式的缩略语被称为相应的--α。

    =REGEXREPLACE(A2,"[^[:alpha:]]", "")

    这个公式把除了字母(A-Z,a-z)以外的所有东西都拿出来,并从字面上把它替换成 "无"。 或者,换一种说法,只拿出来字母。

    从谷歌表格单元格中提取数据的无公式方法

    如果你正在寻找一种简单的无公式的方法来提取各种类型的数据,那么你就来对地方了。 我们的Power Tools插件正好有适合这项工作的工具。

    使用Power Tools附加组件提取不同类型的数据

    我想让你知道的第一个工具叫Extract,它的作用正是你在本文中要找的--从谷歌表格单元格中提取不同类型的数据。

    方便用户的设置

    我上面讲到的所有情况都不只是可以用附加组件解决的。 该工具方便用户使用 所以你需要做的就是选择你要处理的范围,并勾选所需的复选框。 没有公式,没有正则表达式。

    还记得本文第二点中的REGEXREPLACE和正则表达式吗? 下面是它的附加功能,很简单。

    额外选项

    正如你所看到的,有一些 额外选项 (只是复选框),你可以 快速打开/关闭 以获得最精确的结果。

    1. 只获取所需文本大小写的字符串。
    2. 从每个单元格中拉出所有出现的情况,并将它们放在一个单元格或单独的一列中。
    3. 在源数据的右边插入一个新的列,其结果是。
    4. 清除源数据中提取的文本。

    提取不同的数据类型

    Power Tools不仅可以提取某些文本字符串和第一个/最后一个N个字符之前/之后/之间的数据;而且还可以提取以下内容。

    1. 数字和它们的小数,保持小数/千位数的分隔符不动。

  • 从一个单元格中的某个位置开始的N个字符。
  • 超链接(文本+链接),URL(链接),电子邮件地址。
  • 从任何地方提取任何字符串的数据

    还有一个选项是设置你自己的精确模式,并使用它来提取。 按面具提取 和它的通配符 - ? - 做到这一点。

    • 例如,你可以用下面的掩码把括号之间的东西都带出来。 (*)
    • 或者得到那些ID中只有5个数字的SKU。 SKU?????
    • 或者,正如我在下面的截图中所显示的那样,在每个单元格的每个 "ea "后面拉出所有的东西。 ea*

    从时间戳中提取日期和时间

    作为奖励,有一个较小的工具可以从时间戳中提取日期和时间--它叫做Split Date & Time。

    虽然它首先是为了拆分时间戳而创建的,但它完全可以单独获得所需的一个单位。

    只需根据你要提取的内容--日期或时间--选择其中一个复选框,从谷歌表的时间戳中提取,然后点击 分割 所需的单位将被复制到一个新的列中(如果你也选择了最后一个复选框,它将取代原来的数据)。

    这个工具也是Power Tools插件的一部分,所以一旦你安装了它,从Google Sheets单元格中获取任何数据,它就能完全覆盖你。 如果没有,请留言,我们会帮你解决:)

    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.