Страницы: 1
RSS
Работа с датами
 
В столбце лежат даты в формате 8.17.2007 8:59:09 AM  
Задача используя формулу привести её к формату дд.мм.гг  
Никак не найти функцию. Почему-то при форматировании ячейки значение ячейки не меняется.
 
=ТЕКСТ(ссылка_на_дату;"дд.мм.гг")
 
Если функция текст не поможет, то значит изначально в ячейке забит текст, в этом случае можно использовать более длинные формулы:  
 
1) - результатом будет дата как текст  
=ТЕКСТ(ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1);"дд.мм.гг")  
 
2) - результатом будет дата как число  
=ДАТА(ПСТР(A1;ПОИСК(".";A1;ПОИСК(".";A1)+1)+1;ПОИСК(" ";A1)-ПОИСК(".";A1;ПОИСК(".";A1)+1));ЛЕВСИМВ(A1;ПОИСК(".";A1)-1);ПСТР(A1;ПОИСК(".";A1)+1;ПОИСК(".";A1;ПОИСК(".";A1)+1)-ПОИСК(".";A1)))  
 
 
Хотя вся проблема кроется в системных настройках, и ексель тут ни при чем...  
ежель мне память не изменяет, то надо посмотреть:  
панель управления - языки и региональные опции - дополнительно - язык программ, не поддерживающих Юникод
 
... сорри, в предыдущем сообщении забыла написать свой ник...
 
Еще можно попробовать функцию ДАТАЗНАЧ  
 
=ДАТАЗНАЧ("22/11/07 12:00:11")    
 
Вернет значение даты (тип - Дата), которое и можно будет уже форматировать нужным образом через Меню-Формат-Ячейка... При условии, что в Windows в региональных настройках разделитель в датах установлен в виде "/". Если в исходных данных разделитель точка (.), то можно так:  
 
=ДАТАЗНАЧ(ПОДСТАВИТЬ(A1;".";"/")) - если в А1 исходный текст даты.  
 
Если же в региональных установках дата с точками, то можно просто использовать функцию ДАТАЗНАЧ.
 
Cпасибо =ТЕКСТ(ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1);"дд.мм.гг")  
работает.  
Но вот ведь нюанс в колонке длинная дата в формате мм.дд.гггг время  
и соответственно получаем ответ 08 число 17 месяца  
Как получить на выходе дд.мм.гггг?
 
Исходная дата в формате мм.дд.гггг. Все что требуется - обработать текст, чтобы получилось дд.мм.гггг.  
потом можно использовать ДАТАЗНАЧ()  
Вопрос обработки в наличии ведущего нуля, т.е. если б было 08.17.2007 - с помощью ПСТР() и СЦЕПИТЬ().  
Иначе надо искать первую точку "." брать два символа до нее, и менять на два символа после.  
А если задача разовая, то выставить региональные настройки ОС на, к примеру, американские, получить с помощью ДАТАЗНАЧ() формат даты, сохранить значения, вернуть настройки.
 
Вру. Искать надо обе точки и брать то, что между ними с помощью ПСТР, менять на то что перед первой точкой, полученное с помощью ЛЕВСИМВ()
Страницы: 1
Читают тему
Наверх