时间格式的正则表达式
Regular expression for a time format
我正在尝试使用 MATCH
函数在包含 00:00 格式的时间的列中搜索单元格。我尝试过类似于 MATCH("??:??",A:A)
和 MATCH("?*:?*",A:A)
的东西,但没有成功。我怎样才能形成一个2位数字,然后是冒号,然后是2位数字的正则表达式?
通常 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)。
我正在尝试使用 MATCH
函数在包含 00:00 格式的时间的列中搜索单元格。我尝试过类似于 MATCH("??:??",A:A)
和 MATCH("?*:?*",A:A)
的东西,但没有成功。我怎样才能形成一个2位数字,然后是冒号,然后是2位数字的正则表达式?
通常 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)。