【发布时间】:2021-05-21 12:52:01
【问题描述】:
一个单元格包含以下文本:
Immediate_TAA_BRC 02/01/2021 12:30 PM-02/01/2021 9:00 PM
如何只提取第一个日期:02/01/2021
我尝试过使用 SPLIT(RIGHT 函数,但它返回了 19 世纪的某个奇怪年份...
【问题讨论】:
标签: arrays regex google-sheets extract array-formulas
一个单元格包含以下文本:
Immediate_TAA_BRC 02/01/2021 12:30 PM-02/01/2021 9:00 PM
如何只提取第一个日期:02/01/2021
我尝试过使用 SPLIT(RIGHT 函数,但它返回了 19 世纪的某个奇怪年份...
【问题讨论】:
标签: arrays regex google-sheets extract array-formulas
您可以在这里使用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获取前两个空格的位置:
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)))
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))))
【讨论】: