2017-02-13 3 views
0

Мне очень нужна помощь в этом. Я искал ответ в течение долгого времени, но не смог его найти. В моей работе мне нужно отсортировать таблицу в Excel, используя дату, присутствующую в каждой строке. Проблема в том, что таблица, которую я использую, имеет разные макеты дат, как показано ниже.Макро или формула Excel для дат стандартизации

2/13/2017 4:43:02 AM (M/DD/YYYY) 
02/11/2017 05:05 (DD/MM/YYYY) 

Я не могу отсортировать его таким образом, потому что он всегда читается неправильно. Что мне нужно сделать, так это разделить ячейки и затем объединить их, но это вызывает массу проблем.

Не могли бы вы помочь мне проверить, есть ли способ сделать это автоматически, используя макрос или, по крайней мере, используя только формулу?

+1

Это только два формата? Откуда вы знаете, что второй - это «DD/MM/YYYY»? Первый, очевидно, «M/DD/YYYY», так как нет 13-го месяца, но как вы можете определить, когда это «DD/MM»? потому что он имеет 'xx: xx' как время, а не' xx: xx: xx am/pm'? – BruceWayne

+0

Hi, Bruce Я знаю это, потому что, когда я пытаюсь отформатировать даты, это показывает разницу. Например. Я попытался использовать формат dd/mmm/aa для обоих. Вот результат 2/13/2017 4:43:02 AM 02/ноября/17 Tks –

+0

Использование этого формата показывает, что Excel хранит вторую в качестве даты, но первый как строка , Вы читали эти данные из CSV-файла (или чего-то подобного), который сохранил все свои даты в формате mm/dd/yyyy? Если да, то вторая дата должна быть, вероятно, 11 февраля 2017 года (потому что она находилась в файле как «02/11/2017»), но Excel предположил, что формат даты dd/mm/yyyy означает, что это было 2 ноября 2017 года, и поэтому ошибся. Если мы знаем, как эти даты попали в ваш файл, мы могли бы предложить лучший способ получить их там, что позволит избежать проблем. – YowE3K

ответ

0

Это происходит потому, что полученная вами дата получена в текстовом формате, а не в формате даты. Вот трюк, чтобы решить ваш случай, чтобы получить результат в формате mm/dd/yyyy hh: mm. Вы можете изменить формат на желаемый.

Если дата текста в столбце, то формула -

=DATE(MID(A3,SEARCH("/",$A3,SEARCH("/",$A3,1)+1)+1,4),LEFT(A3,SEARCH("/",A3,1)-1),MID($A3,SEARCH("/",$A3,1)+1,SEARCH("/",$A3,SEARCH("/",$A3,1)+1)-SEARCH("/",$A3,1)-1))+TIME(HOUR(RIGHT(A3,LEN(A3)-SEARCH(" ",A3,1))),MINUTE(RIGHT(A3,LEN(A3)-SEARCH(" ",A3,1))),SECOND(RIGHT(A3,LEN(A3)-SEARCH(" ",A3,1)))) 

enter image description here

Надеется, что это помогает. Оцените, если удовлетворены. :)

+0

Hi, Tks для вашего времени =) У меня возник вопрос о том, что у меня возникла проблема с формулой. Не могли бы вы помочь мне понять, что не так? –

+0

Эй вы можете показать мне формулу? Я не уверен, почему это дает ошибку. –

+0

Конечно, здесь = DATE (MID (A3, SEARCH ("/", $ A3, SEARCH ("/", $ A3,1) +1) +1,4), LEFT (A3, SEARCH ("/" , A3,1) -1), MID ($ А3, ПОИСК ("/", $ A3,1) + 1, ПОИСК ("/", $ А3, ПОИСК ("/", $ A3,1) +1) -SEARCH ("/", $ A3,1) -1)) + ВРЕМЯ (ЧАС (ПРАВО (A3, LEN (A3) -SEARCH ("", A3,1))), MINUTE (ПРАВО (A3, LEN (A3) -SEARCH ("", A3,1))), SECOND (RIGHT (A3, LEN (A3) -SEARCH ("", A3,1)))) –

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