【问题标题】:Extracting Specific numbers from text on Google Sheets?从 Google 表格上的文本中提取特定数字?
【发布时间】:2020-09-19 05:05:22
【问题描述】:

数据如下表所示。我试图从文本中提取小时(h)和分钟(m)来计算谷歌表格中的总持续时间。 ex 3h 24m 等于 3.4 我无法正确提取分钟部分。

我已经尝试了以下功能,这些功能在小时部分运行良好,但在分钟部分失败。

=LEFT(c1, SEARCH("h",c1)-1)

=IFERROR((REGEXEXTRACT(D1,"([[:print:]]+)h")),0)

C        D
4h       2h 49m
32m 19s  2h 2m
6h 7m    3h 24m

【问题讨论】:

  • 分享您的工作表副本
  • Harshcoder,你有机会尝试我的方法吗?请在我的答案底部提供反馈。

标签: regex google-sheets filter


【解决方案1】:

要将小时、分钟和秒提取到单独的列中,您可以使用三个单独的REGEXEXTRACT 公式:

=IFERROR(REGEXEXTRACT(C1,"(\d+)h"), "")
=IFERROR(REGEXEXTRACT(C1,"(\d+)m"), "")
=IFERROR(REGEXEXTRACT(C1,"(\d+)s"), "")

这里,(\d+) 是一个捕获组,它抓取 1 个或多个数字,后面的字母刚好匹配,因此函数不返回。

您也可以尝试使用可选模式提取每个部分:

=REGEXEXTRACT(C1, "(?:(\d+)h)?\s*(?:(\d+)m)?\s*(?:(\d+)s)?")

在这里,所有小时、分钟和秒模式都是可选的,即使缺少小时,分钟仍然会匹配。

详情

  • (?:(\d+)h)? - 用非捕获组包裹的可选小时部分:
    • (\d+) - 第 1 组:一位或多位数字
    • h - h
  • \s* - 0+ 个空格
  • (?:(\d+)m)? - 可选的分钟部分:
    • (\d+) - 第 2 组:一位或多位数字
    • m - m
  • (?:(\d+)s)? - 可选秒部分:
    • (\d+) - 第 3 组:一位或多位数字
    • s - s

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    相关资源
    最近更新 更多