从谷歌工作表中的文本中提取日期



一个单元格包含以下文本:

即时_TAA_BRC 2021年1月2日下午12:30 2021年1日下午9:00

如何仅提取第一个日期:02/01/2021

我尝试过SPLIT(RIGHT函数,但它返回了19世纪的某个奇怪年份…

您可以在此处使用REGEXEXTRACT函数:

REGEXEXTRACT(A1, "[0-9]{2}/[0-9]{2}/[0-9]{4}")

这里的A1是一个单元格引用,可能包含您举的示例文本:

Immediate_TAA_BRC 02/01/2021 12:30 PM-02/01/2021 9:00 PM

请注意,默认情况下,REGEXEXTRACT返回文本的第一个匹配部分,在这种情况下效果很好,因为您希望匹配第一个日期。

使用:

=REGEXEXTRACT(A1, "d+/d+/d+")

或阵列形式:

=ARRAYFORMULA(IFERROR(REGEXEXTRACT(A1:A, "d+/d+/d+")))

更新:

在第3行中使用

=ARRAYFORMULA(IF(H3:H="",,IF(H3:H="off", "off", 
IFERROR(REGEXEXTRACT(H3:H, "d+/d+/d+")))))

如何提取日期,有两个选项:

  1. 使用REGEXEXTRACT。根据player0提供的公式,取前两个/:之间的数字

    =REGEXEXTRACT(A1, "d+/d+/d+")
    
  2. 使用FIND、MID和TRIM

    • 使用FIND获取前两个空格的位置:
      • B1 = FIND(" ", A1)-第一个空格的位置
      • B2 = FIND(" ", A1, B1+1)-最后一个参数指示搜索开始的字符
      • RESULT = TRIM(MID(A1, B1, B2-B1))-中间计算的公式外观。使用MID,可以从B1位置开始的字符串中提取B2-B1个字符。TRIM只去掉前导空格和尾随空格
      • FINAL RESULT = TRIM(MID(A1,FIND(" ",A1),FIND(" ",A1,FIND(" ",A1)+1)-FIND(" ",A1)))
        

如何处理更多具有不同值类型的单元格

  1. 使用SWITCH
    • 第一个参数:带文本的单元格
    • 第二和第三:如果TRUE的条件和值
    • 第四条和第五条:如果需要,可以使用多个条件
    • 上一个:默认值
    =SWITCH(A1, "", "BLANK CELL", "OFF", "OFF CELL", 
    REGEXEXTRACT(A1, "d+/d+/d+"))
    
    =SWITCH(A1, "", "BLANK CELL", "OFF", "OFF CELL", 
    TRIM(MID(A1,FIND(" ",A1),FIND(" ",A1,FIND(" ",A1)+1)-FIND(" ",A1))))
    

最新更新