是否可以让表格将我的 REGEXEXTRACT 结果识别为日期?

Posted

技术标签:

【中文标题】是否可以让表格将我的 REGEXEXTRACT 结果识别为日期?【英文标题】:Is it possible to get Sheets to recognize my REGEXEXTRACT results as a date? 【发布时间】:2020-11-10 15:53:42 【问题描述】:

我有一列以以下格式填充日期数据:[Date: 09-Nov-2020 10:29 AM]

我使用以下公式仅取出日期信息: =ArrayFormula(REGEXEXTRACT(C2:C,".*: (.*)\S\D"))(其中C2:C 是未格式化日期的列)。

这会将日期显示为09-Nov-2020,但 Google 表格似乎无法将其识别为日期。当我尝试编辑数字格式时,没有任何变化。

奇怪的是,我有一个基于这些缩短日期的数据验证列表,当我在那里更改数字格式时,它会正确更新。

我正在尝试对其进行设置,以便可以使用 MATCH 公式根据此 DD-Mmm-YYYY 格式定位日期,但由于 Sheets 没有将 REGEXEXTRACT 的结果视为日期,因此我可以'找不到可以做到这一点的公式(包括MATCHFILTER 等)

很遗憾,由于其中存储了敏感信息,我无法直接共享工作表,但根据上面的公式,我还能做些什么来完成这项工作吗?

【问题讨论】:

【参考方案1】:

试试下面的公式:

=value(Text(ArrayFormula(REGEXEXTRACT(C2:C,".*: (.*)\S")),"dd-mmm-yyyy"))

【讨论】:

谢谢!这几乎是完美的,但给了我解决方案。我只需要将ArrayFormula 移到开头,它就可以工作了。最终的工作公式是=ArrayFormula(value(Text((REGEXEXTRACT(C2:C,".*: (.*)\S)),"dd-mmm-yyyy"))【参考方案2】:

虽然公式provided by Rocky 可用于检索日期的日部分,但它不会保留time09-Nov-2020 10:29 AM 变为09-Nov-2020 00:00 AM

这是因为TEXT 用于格式化为dd-mmm-yyyy,其中不包含time 部分。

虽然没有必要使用TEXT,可以直接使用VALUE将REGEXEXTRACT返回的字符串转换为日期:

=ArrayFormula(IFNA(VALUE(REGEXEXTRACT(C2:C,".*: (.*)\S"))))

注意:

此处使用IFNA 忽略C 中的空单元格。

参考:

VALUE

【讨论】:

以上是关于是否可以让表格将我的 REGEXEXTRACT 结果识别为日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Google表格中获取某些值后如何进行正则表达式提取

是否可以将我的数据库与论坛(SMF、phpBB)数据库集成?

将我的 Google 图表(表格)数据导出到 excel 或 csv

如何将我的表格视图倒置,以便新添加的单元格出现在顶部而不是按钮?

检索 Google 表格公式的行号

如果我将我的应用程序部署到 GCP,我能否以某种方式让 google bq 工作得更快