Преобразование даты в Excel из ггггммдд в мм / дд / гггг

Я искал около часа, как это сделать в Excel.

У меня есть файл Excel, который был создан из старой системы, и я извлекаю информацию из базы данных SQL Server, я буду вводить эту информацию обратно в базу данных SQL Server и хотел бы, чтобы даты совпадали.

Я попытался создать пользовательский формат, но я не уверен, правильно ли я это сделал. Я нашел несколько мест, куда они хотят пойти другим путемmm/dd/yyyy вyyyymmdd но они не были полезны.

Я не знаком с использованием VBA в любых продуктах Microsoft, в противном случае я уверен, что это будет простая задача.

У меня есть две отдельные колонки, которые должны быть изменены.

Как мне отформатировать весь столбец из(float)ггггммдд к(Date)мм / дд / гггг

 Malachi24 окт. 2012 г., 21:12
Я попробовал это, и все, что он сделал, это вставить#################....
 Daniel24 окт. 2012 г., 21:29
@SiddharthRout Когда Малахи пытается отобразить число в качестве даты, Excel пытается сделать его датой ... что в расчете на предоставленное число, вероятно, составит в будущем 50-60 тысяч лет. Я думаю, это считается слишком большим.
 Siddharth Rout24 окт. 2012 г., 21:19
Хорошо. В этом случае мне нужно увидеть ваш файл Excel. Можете ли вы загрузить несколько строк примеров данных на www.wikisend.com и поделиться ссылкой здесь?
 Malachi24 окт. 2012 г., 21:17
Dates and times that are negative or too large display as #######.
 Daniel24 окт. 2012 г., 21:38
Кроме того, очевидно, что наибольшая дата, которая может отображаться в ячейке как дата (Excel 2010), - это 2958465, то есть 31.12.999.
 Daniel21 апр. 2017 г., 16:27
@ Малахия у меня нетЯ задавался вопросом об этом раньше. Теперь я выигралне теряю сон из-за этого. Я подозреваю, что мы выигралибыть рядом, чтобы узнать.
 Siddharth Rout24 окт. 2012 г., 21:11
Щелкните правой кнопкой мыши по строке и выберите Формат ячеек. На вкладке Number нажмите Custom. Там вы можете установить егоmm/dd/yyyy
 Siddharth Rout24 окт. 2012 г., 21:13
Вы увеличили ширину столбца?
 Malachi21 апр. 2017 г., 14:43
@ Даниил, интересно, будет ли к тому времени использоваться Excel? Ошибка Y10K?
 Siddharth Rout24 окт. 2012 г., 21:16
что происходит, когда вы наводите курсор мыши на клетку? Это показывает какое-либо сообщение?

Ответы на вопрос(5)

Вот голая версия:

Позволять'скажем, у вас есть дата в ячейке A1 в формате, который вы описали. Например: .19760210

Тогда эта формула даст вам желаемую дату:

=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).

В моей системе (Excel 2010) он работает со строками или числами с плавающей запятой.

Нашел другой (мануал)ответ который работал хорошо для меня

Выберите столбец.Выберите вкладку «Данные»Текст в столбцы - открывает новое поле(выберите с разделителями), Далее(снимите все флажки, используйте "никто" для текстового классификатора), Далееиспользуйте опцию ymd из выпадающего списка Date.Нажмите Готово

У вас есть ряды данных (по горизонтали), как вы заявили или КОЛОННЫ (по вертикали)?

Если оно'с последним вы можете использоватьТекст в столбцы " функциональность для преобразования целого столбцана месте" - сделать это:

Выберите столбец> Данные> Текст в столбцы> Далее> Далее> Выберите "Дата" под "формат данных столбца " а также "ГМД» из выпадающего меню> Конец

.... в противном случае вы можете конвертировать с формулой с помощью

=TEXT(A1,"0000-00-00")+0

и формат в требуемом формате даты

 Malachi24 авг. 2015 г., 18:26
@Sunil, насколько я помню, я действительно пытался это, и это изменило данные в столбце неправильно, и именно поэтому я не сделал 'сделать это так Я принял ответ, который фактически предоставил мне решение моей проблемы, пожалуйста, дайте этому ответу положительные отзывы, которых он заслуживает.
 Malachi24 окт. 2012 г., 21:43
Ваш ответ тоже правильный! на самом деле я искал ответы @Leo и @DanielCook. ноText to columns лучшее решение проблемы, с которой я столкнулся. вероятно, не так быстро, как написание одной формулы и копирование, вставка ее в другие ячейки или запуск макроса. но очень хорошее решение! и я надеюсь, что все проголосуют против этого ответа!
 sunil08 апр. 2015 г., 09:58
Это, кажется, реальный ответ, так как здесь нам не нужны никакие формулы, и весь столбец может быть преобразован с помощью этого. Спасибо за предоставленный ответ
 barry houdini30 янв. 2018 г., 09:18
Функция TEXT просто преобразует данные типа 20180130 в текстовое значение 2018-01-30. Если вам нужна реальная дата, тогда +0 выполнит это преобразование, чтобы вы могли отформатировать дату любым удобным вам способом. Любая операция, которая неизменить значение будет работать, например * 1
 Malachi24 авг. 2015 г., 18:27
Этот ответ на самом деле неверный, я хотел пойтиот YYYYMMDD в формате даты, признанной в Excel. А не наоборот.
Решение Вопроса

Вы можете преобразовать значение в дату, используя формулу, подобную этой, рядом с ячейкой:

=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))

Где A1 - поле, которое вам нужно конвертировать.

Кроме того, вы можете использовать этот код в VBA:

Sub ConvertYYYYMMDDToDate()
   Dim c As Range
   For Each c In Selection.Cells
       c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
       'Following line added only to enforce the format.
       c.NumberFormat = "mm/dd/yyyy"
   Next
End Sub

Просто выделите все ячейки, которые вы хотите исправить, и запустите код.

Обратите внимание, какRJohnson упомянутый в комментариях, этот код выдаст ошибку, если одна из выбранных вами ячеек будет пустой. Вы можете добавить условие в c.value, чтобы пропустить обновление, если оно пустое.

 RJohnson20 нояб. 2018 г., 20:51
Возникла небольшая проблема с пробелами, в приведенное выше решение был добавлен оператор If: Sub ConvertYYYYMMDDToDate () Dim c As Range для каждого c In Selection.Cells If c.Value <> «» Тогда c.Value = DateSerial (Left (c.Value, 4), Mid (c.Value, 5, 2), Right (c.Value, 2)) 'Следующая строка добавлена только для обеспечения формата. c.NumberFormat = "мм / дд / гггг»         End If Next End Sub
 Daniel09 июл. 2015 г., 20:03
@Gaia. Вроде, как бы, что-то вроде. Есть только два способа сделать отображение даты по-разному. Вы должны либо изменить форматирование ячейки вручную (что делает опция кода), либо обновить формат даты по умолчанию в вашей операционной системе.
 emragins26 окт. 2014 г., 03:25
Милая! Вот's для ГГГГММДДЧЧММСС на сегодняшний день:=DATE(LEFT(B1,4),MID(B1,5,2),MID(B1,7,2))
 Daniel20 нояб. 2018 г., 21:02
@RJohnson Правда, я добавил заметку о пустых ячейках.
 David Létourneau20 февр. 2017 г., 22:13
Если кто-то борется с этим форматом (MM / DD / AAAA), здесь ответ, чтобы преобразовать его в AAAA / MM / DD: = DATE (MID (D2; 7; 4); LEFT (D2; 2); MID (D2; 4) ; 2))
 Gaia09 июл. 2015 г., 07:02
Не могли бы вы запустить это для ГГГГММДД в ДД / ММ / ГГГГ?
 Daniel09 июл. 2015 г., 14:48
@ Gaia За это тынеобходимо обновить формат числа додд / мм / гггг», И.Е.c.NumberFormat = "dd/mm/yyyy"
 Gaia09 июл. 2015 г., 17:55
Так что невозможно использовать формулу @DanielCook?

для конвертацииdd/mm/yyyy вmm/dd/yyyy

=DATE(RIGHT(a1,4),MID(a1,4,2),LEFT(a1,2))
 Malachi31 янв. 2013 г., 15:25
это н'Это было так, как я и просил, но я понимаю, как это было бы полезно для кого-то другого, поэтому я проголосовал за это!

Ваш ответ на вопрос