时间格式的正则表达式

时间:2016-08-30 18:04:13

标签: regex excel excel-formula excel-2016

我正在尝试使用MATCH函数搜索包含格式为00:00的时间的列中的单元格。我尝试过与MATCH("??:??",A:A)MATCH("?*:?*",A:A)类似的东西但没有运气。如何形成2位数的正则表达式,然后是冒号,然后是2位?

1 个答案:

答案 0 :(得分:0)

通常,excel中显示的内容不是实际值。时间和日期就是这样的时间。通常,如果您在excel 3:55中输入一个时间,它会自动将其转换为excel的时间格式,即十进制数:0.163194444444444,但它会自动将其格式化为“mm:ss”,就像您输入的一样它。

所以...当你尝试=MATCH()使用通配符时,你不会找到命中,因为单元格中的值实际上是十进制数。

相反,您必须将要搜索的单元格的值转换为文本格式。您可以使用=TEXT()公式执行此操作。假设您的数据以A1开头,您可以输入B1

=Text(A1, "mm:ss")

现在,该公式的返回值仍然看起来像mm:ss格式,但它现在是文本。基础值实际上是3:55。没有好笑的事。现在,您可以将您的通配符搜索"*:*"从此列开始:

=Match("*:*", B1:B10, 0)

如果你想在一个公式中做到这一点,你可以使用数组公式(或CSE):

=Match("*:*", Text(A1:A10,"mm:ss"),0)

输入公式时使用Ctrl + Shift + Enter(而不是Enter)。