Преобразование даты в строку Excel


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

01/01/2010 14:30:00

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

как я могу сделать это в Excel?

9 117

9 ответов:

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

(24 часа)

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

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

вот подход 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

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

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

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

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

'01/01/2010 14:30:00

Если вы не используете программирования выполните следующие действия (1) Выберите столбец (2) щелкните правой кнопкой мыши и выберите Формат ячеек (3) Выберите "Custom" (4) как раз под "типом:" тип ДД/ММ/гггг ХХ:мм:СС

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

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

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

asuming ячейка 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 ( & ) и т. д.)

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

самым простым решением было скопировать вставку в блокнот и обратно в Excel с набором столбцов в текст перед вставкой обратно

или вы можете сделать то же самое с формулой такой

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

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

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

затем в колонке d do =B1+C1 добавить числовые форматы даты и времени.

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

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