I have been trying and trying to get milliseconds removed from a time stamp in a column of data and I can’t do it. The time is in military time that looks like this:
12:32:01:.6240
12:32:01:.6339
12:32:01:.7249
12:32:02:.7259
And there is another column in another spreadsheet that I need to compare the time stamps to, but it does not have the milliseconds. It just looks like this:
8:00:51
8:00:51
9:02:06
9:02:06
9:20:26
I have tried writing a macro, everything I know how to do, but I can’t get it to change the whole column. It puts PM in the formula bar. It only changes one at a time. And there is 23K+ rows of data, so I can’t do it one by one. Please help!
Thanks,
Kim
Это может быть связано с тем, что Excel хранит метки времени как «даты автоматизации OLE».
Из .NET DateTime.ToOADate документация:
Дата автоматизации OLE реализована в виде числа с плавающей запятой, неотъемлемым компонентом которого является число дней до или после полуночи 30 декабря 1899 года, а дробный компонент представляет время этого дня, деленное на 24. Например, полночь 31 декабря 1899 года представлена 1,0; 6 часов утра 1 января 1900 года представлено 2,25; полночь 29 декабря 1899 года представлена -1,0; и 6 часов утра 29 декабря 1899 года обозначено -1,25.
Базовая дата автоматизации OLE — полночь, 30 декабря 1899 года. Минимальная дата OLE-автоматизации — полночь, 1 января 0100 года. Максимальная дата автоматизации OLE совпадает с датой
DateTime.MaxValue, последний момент 31 декабря 9999 года.
Числа с плавающей точкой, обрабатываемые на ПК, подвержены более или менее серьезным ошибкам округления с некоторыми наихудшими дробями.
Один день имеет в общей сложности 24 * 60 * 60 = 86400 секунд.
(13 * 60 + 13) / 86400 = 0,00917824074074
(13 * 60 + 13 + 0,1282) / 86400 = 0,00917972453704
Как видите, цифры очень похожи и отличаются только начиная с шестого знака после запятой.
EXCEL в формате Время не отображает миллисекунды, но иногда это требуется. С помощью пользовательского форматирования отобразить миллисекунды не составляет труда.
Для отображения миллисекунд в формате Время используйте Пользовательский формат (см. файл примера ).
- Для вызова окна Формат ячеек нажмите CTRL + 1 .
- Выберите ( все форматы ), удалите все из поля Тип
- Введите мм:сс,000
- Нажмите ОК.
Здесь уместно напомнить, что в формате Дата и Время одним полным суткам соответствует число 1 . Следовательно, 1 час – это 1/24, 1 минута – 1/24/60, 1 сек – 1/24/60/60. В файле примера приведена форма для прибавления минут, секунд и миллисекунд к исходному времени.
В файле примера создана форма, в которую можно ввести по отдельности минуты, секунды и миллисекунды.
Также в файле примера показано как ввести 2 числа в формате мин:сек,милсек. Разница между этими 2-мя временами представлена также в формате мин:сек,милсек.
I have a column of date-time numbers, «DD/MM/YY HH:MM:SS». At this moment, I want to remove «SS» from it and left «DD/MM/YY HH:MM». I tried DATE and TIME function separately but only one part left, DATE:»DD/MM/YY» and TIME:»HH:MM», also, I tried CONCATENATE function but it doesn’t work, so could anyone do me a favour? Thanks in advance.
asked May 22, 2015 at 18:19
4
If you want to completely remove the seconds from the data.
Try: =1*TEXT(C2,"dd/mm/yyyy hh:mm")
Multiplying the text result by 1 converts the text back to a number.
answered Nov 22, 2016 at 16:33
2
Select the cell(s) to be modified and tap Ctrl+1. Go to the Number tab and chose Custom from the list down the left. Supply the following for the Type:
dd/mm/yy hh:mm ◄ EN-US
pp/kk/vv tt:mm ◄ FI-FI
Click OK and you should be set.
answered May 22, 2015 at 18:32
4
You can try LEFT. Assuming I understand your question and you have DD/MM/YY HH:MM:SS in one cell, you can use =LEFT(cell,14)
answered May 22, 2015 at 18:27
xinampcxinampc
1,7681 gold badge11 silver badges7 bronze badges
2
Try this formula:
Round(CELL * 60 * 24 , 0)/60/24
answered Dec 30, 2018 at 7:08
HamedHamed
614 bronze badges
1
Try =TEXT(A1,"DD/MM/YY HH:MM")
answered May 22, 2015 at 18:26
nwhaughtnwhaught
1,5601 gold badge15 silver badges36 bronze badges
0
I have a column showing dates «27/01/2015 18:43:00»
I changed them to show as Number «42031.78»
I then used Data/Text to columns and used the period or full stop as the delimiter.
This gave me two columns «42031.00» and «7798611111.00»
I deleted the second column and changed the original column back to short date format. «27/01/2015»
No more hours and seconds!
answered Dec 1, 2016 at 11:09
to remove the seconds just do =INT(«cell number»*1440)/1440
answered Jul 6, 2022 at 9:59
Проблемы
Когда вы изменяете значение в ячейке листа Microsoft Excel с помощью программного изменения, указанное значение миллисекунд округляется до ближайшей секунды. Эта проблема возникает, если выполняются указанные ниже условия.
-
Изменения, которые вы вносите, назначаются в ячейку в формате даты VBA или в виде варианта формата даты.
-
Программные изменения произопределяются с помощью макросов Visual Basic для приложений или внешнего клиента автоматизации.
Эта проблема не возникает, если выбранное вами изменение назначает формат даты или формат времени для ячейки.
Причина
Эта проблема возникает из-за того, что Excel внутренне Форматирует строки даты согласно формату даты и времени, указанному на вкладке региональные параметры в компоненте Язык и региональные стандарты на панели управления. Это значение округляется до ближайшей секунды. Excel назначает это значение ячейке, а затем пересчитывает значение для получения нового значения даты для ячейки.
Обходное решение
Чтобы устранить эту ошибку, воспользуйтесь одним из описанных ниже способов.
Способ 1
Вы можете преобразовать значение даты в строковый формат, содержащий дробную часть секунды. Это строковое значение может быть назначено и рассчитывается как формат даты, в котором хранятся миллисекунды.
Способ 2
Чтобы сохранить миллисекунды, можно использовать свойство value2 объекта Range. Например, можно использовать следующий код VBA.
Sub CopyValueUsingVBDate() Dim d As Date d = ActiveSheet.Range("A1").Value ActiveSheet.Range("B1").Value2 = dEnd Sub
Чтобы получить дополнительные сведения, щелкните следующий номер статьи базы знаний Майкрософт:
182812 Описание свойства Value2 для объекта Range


