Преобразование даты в строку в Excel - PullRequest
119 голосов
/ 14 апреля 2010

В ячейке в листе Excel у меня есть значение Date, например:

01/01/2010 14:30:00

Я хочу преобразовать эту дату в текст, а также хочу, чтобы текст выглядел в точности как дата. Таким образом, значение Date 01/01/2010 14:30:00 должно выглядеть как 01/01/2010 14:30:00, но внутренне оно должно быть Text.

Как мне это сделать в Excel?

Ответы [ 9 ]

236 голосов
/ 14 апреля 2010
=TEXT(A1,"DD/MM/YYYY hh:mm:ss")

(24 часа)

=TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM")

(стандартное время)

8 голосов
/ 14 апреля 2010

Вот подход VBA:

Sub change()
    toText Sheets(1).Range("A1:F20")
End Sub

Sub toText(target As Range)
Dim cell As Range
    For Each cell In target
        cell.Value = cell.Text
        cell.NumberFormat = "@"
    Next cell
End Sub

Если вы ищете решение без программирования, вопрос следует перенести в SuperUser.

6 голосов
/ 14 января 2015

Вот еще один вариант. Используйте встроенный в Excel мастер «Текст в столбцы». Он находится на вкладке «Данные» в Excel 2007.

Если у вас выбран один столбец, должны работать значения по умолчанию для типа файла и разделителей, тогда вам будет предложено изменить формат данных столбца. Выбор текста приводит к его текстовому формату, чтобы убедиться, что он не сохраняется как дата.

4 голосов
/ 14 апреля 2010

В некоторых случаях использование символа 'заранее будет работать, но если вы сохраните его в CSV и загрузите снова, это невозможно.

'01/01/2010 14:30:00
3 голосов
/ 02 февраля 2018

Не удалось заставить формулу TEXT () работать

Самым простым решением было скопировать вставку в Блокнот и обратно в Excel, установив для столбца значение Текст перед вставкой назад

Или вы можете сделать то же самое с формулой, подобной этой

=DAY(A2)&"/"&MONTH(A2)&"/"&YEAR(A2)& " "&HOUR(B2)&":"&MINUTE(B2)&":"&SECOND(B2)

1 голос
/ 17 июля 2015

Если вы не используете программирование, сделайте следующее (1) выберите столбец (2) щелкните правой кнопкой мыши и выберите Формат ячеек (3) Выберите «Пользовательский» (4) Просто под «Тип:» тип дд / мм / гггг чч: мм: сс

0 голосов
/ 27 марта 2017

Понятия не имею о годе публикации вопроса; это может быть старым сейчас. Итак, я ожидаю, что мой ответ будет более справочным для будущих подобных вопросов после моего сообщения.

Я не знаю, давал ли кто-нибудь там ответ, подобный тому, который я собираюсь дать, что может привести к тому, что я думаю, что это будет самый простой, самый прямой и самый эффективный: если кто-то уже дал его Прошу прощения, но я этого не видел. Здесь мой ответ с использованием CStr вместо TEXT:

Предполагаемая ячейка A1 содержит дату и использует код VBA:

Dim strDate As String

'Convert to string the value contained in A1 (a date)
strDate = CStr([A1].Value)

После этого вы можете манипулировать ею как любой обычной строкой, используя строковые функции (MID, LEFT, RIGHT, LEN, CONCATENATE (&) и т. Д.)

0 голосов
/ 27 сентября 2016

Выбранный ответ не работал для меня, так как Excel все еще не преобразовывал текст в дату. Вот мое решение.

Скажем, что в первом столбце A у вас есть данные типа 2016/03/25 21:20:00, но они хранятся в виде текста. Затем в столбце B напишите =DATEVALUE(A1), а в столбце C - =TIMEVALUE(A1).

Затем в столбце D введите =B1+C1, чтобы добавить числовые форматы даты и времени.

Наконец, скопируйте значения из D в столбец E, щелкнув правой кнопкой мыши в столбце E и выбрав Paste Special -> Paste as Values.

Выделите числовые значения в столбце E и измените тип данных на дату - я предпочитаю использовать пользовательскую дату в форме YYYY-MM-DD HH:MM:SS.

0 голосов
/ 21 января 2016

В Excel 2010 ответ marg работал только для некоторых данных, которые я имел в своей электронной таблице (она была импортирована). Следующее решение работало со всеми данными.

Sub change()
    toText Selection
End Sub

Sub toText(target As range)
Dim cell As range
Dim txt As String
    For Each cell In target
        txt = cell.text
        cell.NumberFormat = "@"
        cell.Value2 = txt
    Next cell
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...