Страницы: 1
RSS
Найти и переделать в столбце направильные запис даты
 
Есть столбец с датам  
12.04.2017
20171130
20171130
20171130
20171024
12.06.2017
Нужно привести его к одному виду (01.01.2017 вид даты как пример)
Если с этой задачей можно справиться формулой =ДАТА(ЛЕВСИМВ(A3;4);ПСТР(A3;5;2);ПРАВСИМВ(A3;2))
То вот как заставить exsel определять и переделывать неугодное, ума не приложу. Помогите пожалуйста, ибо 11000 строк документа надо перелопатить.
 
И Вам добрый день.Так?
Изменено: amfor - 01.08.2018 15:37:45
 
UDF
Код
Function MakeDate(Target As Range) As Date
If Target.Count > 1 Then Exit Function
If CInt(Left(Target.Text, 4)) >= 2017 Then
    MakeDate = CDate(Right(Target.Text, 2) & "/" & Mid(Target.Text, 5, 2) & "/" & Left(Target.Text, 4))
End If
End Function
Неизлечимых болезней нет, есть неизлечимые люди.
 
Как вариант UDF от TheBestOfTheBest:
Код
Function MakeDate(Target As Range) As Date
    If Target.Count > 1 Then Exit Function
    Dim s$
    s = Target.Value2
    If Not (IsDate(Target)) Then
        MakeDate = CDate(Right(s, 2) & "/" & Mid(s, 5, 2) & "/" & Left(s, 4))
    Else
        MakeDate = Target
    End If
End Function

Чуть подправил - так корректно обрабатывает и ######
Изменено: Hugo - 01.08.2018 14:34:56
 
что то не то получается:
42837
43069
43069
43069
43032
42898
43080
43069
P.S. Версия exsel 2007
Изменено: Святослав Алексеев - 01.08.2018 15:37:38
 
Поставтьте формат ячейки-Дата.
Вариант формулы в ячейку J2 и протянуть вниз.
Код
=ЕСЛИОШИБКА(ЕСЛИ(ДЛСТР(I2)=5;I2;ДАТА(ЛЕВСИМВ(I2;4);ПСТР(I2;5;2);ПРАВСИМВ(I2;2)));"")
 
amfor,получается вот такое:
42837
43069
43069
43069
43032
 
Цитата
amfor написал:
Поставтьте формат ячейки-Дата.
Так "видит " дату Excel. Сейчас у Вас формат ячеек -Общий. Выделите столбец - Главная - Формат - Формат ячеек - Дата.
 
Цитата
Святослав Алексеев написал:
amfor ,получается вот такое:
42837
43069
43069
43069
43032
Откройте справочник excel и прочитайте про формат дат, как они хранятся и как отображаются.
Неизлечимых болезней нет, есть неизлечимые люди.
Страницы: 1
Наверх