2014-10-24 3 views
-1

У меня есть огромное количество необработанных данных, разделенных столбцами. Все хорошо, когда я импортирую их в Matlab, за исключением того, что я только что увидел, что файлы excel содержат разные форматы для дат.Raw Excel Данные содержат разные форматы даты

Одна серия (т. Е. 3 дня, 1 строка или каждый час получает 3 x 24 строки) имеет свои «даты в формате« мм/дд/гггг », которые ни отлично, ни матлаб не признаются в качестве правильных дат.

Я пытался решить эту проблему по-разному. Сначала я попытался просто выделить ячейки и использовать функцию format cells, но это не сработало, поскольку excel не видит их как «ячейки», а скорее как «текст».

Затем я попробовал функцию Text to columns, которая также не работала (с разделительной или фиксированной шириной).

Im действительно застрял и был бы признателен за помощь в этом.

+2

могли бы вы добавить к вопросу несколько примеров в каждом случае, что у вас есть так мы можем помочь? – ASantosRibeiro

+0

Когда вы использовали текст для столбцов, вы также выбрали формат даты как MDY? И вы гарантировали, что никакие части не будут разделены на отдельные столбцы? Это должен быть самый простой способ решения проблемы, если только «/» не является «/», или в строке есть некоторые другие символы, отличные от ASCII. Каков источник информации? –

+0

Да, извините, вот пример: http://www.filedropper.com/testheat97 В настоящий момент моя задача - импортировать его в Matlab, а затем преобразовать даты так, чтобы они были все релевантными и одинаковыми для сравнения позже. – Emil

ответ

0

В Excel:

Если ячейка A1 имеет строку как mm/dd/yyyy попробуйте следующее:

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

В Matlab:

=datenum(yourDateString, 'mm/dd/yyyy') 
+0

Интересно. Моя колонка выглядит следующим образом; 10/21/2014 10/21/2014 10/21/2014 10/20/14 10/20/14 10/20/14 10/19/14 , как вы можете видеть, некоторые из них становятся в странном формате. Я хотел бы, чтобы все они были в формате «dd/mm/yy», но когда я использую команду datenum, matlab переводит ее на число, которое, я думаю, тоже не так уж плохо. – Emil

+0

@Emil call 'datestr' после этого, чтобы преобразовать его обратно в строку в формате, который вам нравится – Dan

0

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

Sub bulk_Date_fix() 
    on error resume next 
    Set d_ranged = Selection 
    For Each a In d_ranged 
     a.Value = Split(a.Value, "/")(0) & "/" & Split(a.Value, "/")(1) & "/" & Split(a.Value, "/")(2) 
    Next 
    on error goto 0 
End Sub 

Как это работает: Вышеупомянутый скрипт пересекает все ячейки выбранной области и разбивает различные атрибуты даты на основе символа «/».

+0

Спасибо Майку! Я создал кнопку с ур скриптом, который, казалось, работал в первый раз, когда я нажал его, но затем я снова нажал его, и он вернулся к исходным форматам. И после этого он не работает. Теперь я понял, что Im сидит здесь, что это будет сложная обработка всех этих данных только в превосходном состоянии, поэтому подумайте, что попытайтесь сосредоточиться на решении matlab. Большое вам спасибо за ваш вклад! – Emil

+0

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

+0

Вот ссылка; http://www.filedropper.com/testheat97 – Emil

0

Я проверил ваш файл, и вам нужно будет вернуться к исходным данным, чтобы выровнять это. Вместо «открытия» файла в Excel вам нужно будет ИМПОРТ файла. Когда вы это сделаете, откроется мастер импорта текста, и вы можете указать столбец даты как формат DMY (или какой-либо формат создается источником).

Проблема в том, что существует несоответствие между форматом файла и вашим региональным коротким форматом Windows. Если вы посмотрите на строку 229, вы увидите, что настоящие даты присутствуют, но не совпадают с остальными.

Excel анализирует даты ввода в соответствии с настройками региональной короткой даты Windows. Если дата не имеет смысла, в соответствии с этим разбором (например, месяц> 12) Excel интерпретирует дату как строку; если дата имеет смысл, она будет интерпретироваться как дата в соответствии с этим порядком компонентов региональной даты Windows, и это будет отличаться от того, что предназначено.

Таким образом, первые несколько сотен дат являются строками, но на строке 229 дата, которая, вероятно, должна быть 12 октября 2014 года, изменяется на 10 DEC 2014. Это произойдет в других областях, где это значение во втором позиция составляет 12 или меньше.

EDIT: Я не уверен в вариациях, присущих использованию XL на MAC.В версии Windows, в XL, функция «импорта текста» на ленте данных/Get External Data Tab:

Data Ribbon

При нажатии на кнопку, что и открыть текстовый файл, вы увидите текст Импорт Мастер, и когда вы получаете к шагу 3, вы сможете указать текстовый формат данных, которые будут импортированы:

Text Import Wizard Step 3

+0

Импорт в Matlab? Я пытался это сделать, но у Matlab такая же проблема. Также Im на Mac, поэтому не совсем уверен, что такое формат Windows Regional Short date и как он влияет на меня здесь, но, может быть, я просто не думаю об этом. – Emil

+0

@ Emil Нет, как я писал, IMPORT для Excel. Я отредактирую свой ответ, чтобы показать вам, где. Я не знаю, как установить эквивалент формата коротких дат Windows на Mac. –

Смежные вопросы