#excel #excel-formula
#Excel #excel-формула
Вопрос:
У меня есть следующая текстовая временная метка в ячейке A1. 22-OCT-13 03.40.00.000000000 AM
. В B1 у меня есть следующая формула: =TIME(HOUR(MID(A1,11,2)),MIN(MID(A1,14,2)),SECOND(MID(A1,17,2)))
.
Это дает 12:40 утра. Функция hour возвращает ноль, но функция minute работает нормально. Я не могу понять, что с этим.
Комментарии:
1. Эй, я только что понял, что вам может не хватать AM / PM в конце. Отредактировал мой ответ, чтобы учесть и это.
Ответ №1:
MIN
это «минимальная» формула, которая возвращает наименьшее значение из списка значений, а не MINUTE
формулу.
Я думаю, вы не знакомы с TIME()
, HOUR()
или MINUTE()
.
TIME()
принимает «обычные» значения и преобразует их в значение времени. Если у вас есть TIME(H, M, S)
, H
это количество часов (не временная метка), M
это количество минут (также не временная метка) и S
это количество секунд (опять же, не временная метка).
HOUR()
принимает значение времени и извлекает из него час.
MINUTE()
и SECOND()
похожи на HOUR()
. То, что вы, вероятно, имели в виду, это:
=TIME(MID(A1,11,2),MID(A1,14,2),MID(A1,17,2))
При использовании MID()
вы получаете число, а не временную метку. Итак, HOUR
берет это число, интерпретирует его как временную метку и возвращает час. В вашем примере MID
возвращается первый 03
. В Excel, если вы преобразуете это во временную метку, вы получите 01.03.1900 00:00 (в формате дд / мм / гггг чч: мм) и, таким образом, час 0
.
Редактировать:
Кстати, вы можете использовать эту формулу, если хотите сохранить дату и время (не забывая AM / PM в конце:
=SUBSTITUTE(SUBSTITUTE(A1,".",":"),":",".",3)*1
Исходная дата / время — это почти то, что может быть понято Excel. Замените все .
на :
, а затем замените 3-й (последний) :
на .
и умножьте на 1, чтобы сообщить Excel преобразовать это в число. Просто отформатируйте результат как время, и этого должно хватить.