Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Не форматировать как дату
 
Добрый день!
Можно ли как-то заставить Эксель не считать, что в ячейке указана дата, если там есть точка в качестве разделителя? То есть стоит 1.7 , а эксель считает, что это 1 июля. Как это убрать?
 
Присвоить ячейкам текстовый формат.
 
Это не помогает. 1 июля превращается не в 1.7, а в 41455
 
Цитата
Andrey_F написал: Как это убрать?
Формулой:
=текст(A1;"Д.М")

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
а как Д.М в английском Экселе не подскажете? В гугле не нашел.
 
Andrey_F, тогда так:
=ДЕНЬ(A1)&"."&МЕСЯЦ(A1)

Думаю, с переводом проблем не будет. :)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Получилось! Спасибо.

Правда, 0 превратил в 1.1, но это не проблема.
 
Цитата
Andrey_F написал: Это  [текстовый формат] не помогает.Это не помогает.
Нужно не копировать, а вставить как значение.
 
Что копировать и откуда? :)

У меня файл с таким форматом данных - почти все IT системы, базы данных и пр. используют точку, а не запятую в качестве разделителя. Открываю такой файл, а там даты.
 
Предположил, что данные встявляете на лист копированием. При ручном вводе в ячейки с текстовым форматом значения не должны меняться на дату.
 
Цитата
vikttur написал:
Предположил, что данные встявляете на лист копированием.
Ну тогда все было бы просто :) Спасибо!
 
Цитата
Andrey_F написал: Правда, 0 превратил в 1.1, но это не проблема.
Конечно не проблема добавить проверку на исключения через, например, ЕСЛИ(). :)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Появилась новая задачка. В ячейке изначально было 24-1-1, Эксель превращает это в 24-1-2001, которое на самом деле дата 24.01.2001.
Доступа к изначальным данным нет (то есть откуда копировали изначально).

Попробовал сделать так: превратил это в текст формулой =DAY(A1)&"-"&MONTH(A1)&"-"&YEAR(A1), потом копирую и вставляю как значение. Получаю вроде как текстовое значение 24-1-2001. Теперь мне надо убрать 200, делаю это заменой, но он снова начинает считать это датой 24.01.01.
 
Цитата
Теперь мне надо убрать 200,
Тут еще одна засада
24-1-99 даст 24.01.1999
 
Там таких нет, ну и вообще количество их ограничено. Надо будет менять -2001 на -1, -2002 на -2 и пр.

Ну и может я в принципе не тот подход выбираю?
 
Цитата
В ячейке изначально было 24-1-1
А сколько знаков может быть в каждой составляющей?
 
1 или 2
 
Попробуйте UDF
Код
Function iDate(cell As Date) As String
 With CreateObject("VBScript.RegExp")
     .Global = True
     .IgnoreCase = True
     .Pattern = "\d{1,2}\.\d{1,2}\.\d{1,4}"
       If .test(cell) Then
         If Mid(Year(.Execute(cell)(0)), 3, 1) = 0 Then
           iDate = Day(.Execute(cell)(0)) & "-" & Month(.Execute(cell)(0)) & "-" & _
                 Right(Year(.Execute(cell)(0)), 1)
         Else
           iDate = Day(.Execute(cell)(0)) & "-" & Month(.Execute(cell)(0)) & "-" & _
                 Right(Year(.Execute(cell)(0)), 2)
         End If
       End If
 End With
End Function
Удачи!
 
Kuzmich,
Спасибо, никогда этим не пользовался, но надо разобраться чувствую.
 
Ухх, решение пришло в голову откуда не ждали: обработал в текстовом редакторе, вернув к первоначальному значению, и вставил в Эксель как текст.
Страницы: 1
Читают тему (гостей: 2)
Наверх