Преобразование даты из общего типа в дату, 29.09.1986 0:00:00 в CSV-файл дд / мм / гггг - PullRequest
0 голосов
/ 28 июня 2018

Я попал в стену после попытки INT, TIMEVALUE и всех других форматирования даты на даты в файле CSV.

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

Я пытался использовать MID / LEFT и т. Д., Чтобы извлечь его часть, но при соединении этих частей с помощью "" & "" преобразуется в текст и преобразование его в дату приводило к длинному выводу #####, пробовал параметр excel excel галочка Использовать систему дат 1904 года.

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

file with original date

1 Ответ

0 голосов
/ 29 июня 2018

Посмотрите на ваш формат даты. Первая цифра - 1 или 2 символа, и вы должны принять это во внимание. хорошая вещь основана на ваших данных, что дни всегда 2 цифры. это немного упрощает вещи.

Давайте начнем с основ и предположим, что ваша первая строка даты находится в A2. Давайте начнем просто с того, что вычеркнем числа из текста по одному сегменту за раз, в то же время определяя положение и количество символов. Поэтому, чтобы вытащить номер за месяц, используйте следующую формулу:

=LEFT(A2,FIND("/",A2)-1)

Find будет искать положение символа / в строке и возвращает его номер. в этом случае это должно быть 2. Это означает, что это однозначный месяц. Так что нам нужно вытащить только 1 цифру. В общем смысле на 1 меньше, чем позиция /.

Следующей задачей будет вытащить цифры за день. Мы можем сделать это, используя аналогичную формулу. На этот раз давайте использовать MID вместо левого. Чтобы MID работал, нам нужно определить начальную точку. На этот раз общим случаем начальной точки будет первый символ после первого /. Еще одна приятная деталь в том, что мы знаем, что количество символов, которые нужно вытащить, всегда будет равно 2. Таким образом, вы можете использовать следующую формулу для получения месяца:

=MID(A2,FIND("/",A2)+1,2)

(обратите внимание, что если ваши цифры дня были непостоянны, то вам нужно было бы измерить количество символов между двумя символами / и заменить 2 в формуле вычислением)

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

=MID(A2,FIND("/",A2,4)+1,4)

Теперь я использовал 4 в качестве начальной позиции для поиска, чтобы заставить формулу работать для случая, когда дни могут быть одной цифрой. Это ближайший второй / может быть к началу.

теперь, когда у вас есть все, что вам нужно, чтобы объединить это вместе, чтобы назначить дату. Это где формула DATE вступает в игру. Он работает в следующем формате: DATE (год, месяц, день). Итак, теперь мы просто берем каждую из отдельных формул и строим формулу DATE, которая должна выглядеть следующим образом:

=DATE(MID(A2,FIND("/",A2,4)+1,4),LEFT(A2,FIND("/",A2)-1),MID(A2,FIND("/",A2)+1,2))

если вы получаете дату, которая является просто набором чисел, отформатируйте ячейку для отображения даты в выбранном вами формате.

POC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...