一个单元格包含以下文本:
即时_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+")))))
如何提取日期,有两个选项:
-
使用REGEXEXTRACT。根据player0提供的公式,取前两个
/
:之间的数字=REGEXEXTRACT(A1, "d+/d+/d+")
-
使用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)))
- 使用
如何处理更多具有不同值类型的单元格
- 使用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))))