2016-08-30 1 views
-2

Я пытаюсь найти ячейки в столбце, содержащем время в формате 00:00, используя функцию MATCH. Я пробовал вещи, похожие на MATCH("??:??",A:A) и MATCH("?*:?*",A:A), не повезло. Как я могу сформировать регулярное выражение из двух цифр, затем двоеточие, а затем 2 цифры?Регулярное выражение для формата времени

+1

Вы когда-нибудь использовали регулярное выражение? Какие выражения регулярных выражений вы пробовали? – Kyle

+1

Является ли время, которое хранится в ваших ячейках, отформатированное как время или текст? Если он отформатирован как время, то фактическое значение будет десятичным, которое вы ищете. Кроме того, функция 'match()' в excel не принимает регулярное выражение в качестве аргумента, поэтому регулярное выражение на самом деле не способ пойти сюда. – JNevill

+0

Сохраняется как пользовательский формат hh: mm. Невозможно использовать 'match()' и использовать формат hh: mm в качестве первого аргумента, подобно тому, как «ZZZ», поскольку первый аргумент возвращает true, если найдено какое-либо слово? – KOB

ответ

0

Часто то, что отображается нам в excel, не является фактическим значением. Время и даты - одно время. Обычно, если вы введете время в excel 3:55, он автоматически преобразует его в формат времени Excel, который является десятичным числом: 0.163194444444444, но он автоматически форматирует его до «мм: ss» так же, как вы его вводили.

Итак ... когда вы пытаетесь использовать =MATCH() с помощью подстановочного знака, вы не найдете его, поскольку значение в ячейке на самом деле является десятичным числом.

Вместо этого вам нужно преобразовать значение ячеек, которые вы ищете, в текстовый формат. Вы можете сделать это с помощью формулы =TEXT(). Предполагая, что ваши данные начинается в A1 вы можете поместить в B1:

=Text(A1, "mm:ss") 

Теперь возвращаемое значение из этой формулы по-прежнему выглядит как формат mm:ss, но теперь текст. Базовое значение фактически равно 3:55. Нет смешного дела. Теперь вы можете основывать свой поиск дикой карты из "*:*" от этой колонки:

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

Если вы хотите, чтобы сделать все это в одной формуле можно использовать формулу Array (или CSE):

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

С помощью Ctrl + Shift + Enter (вместо Enter) при вводе формулы.

Смежные вопросы