Страницы: 1
RSS
Регулярные выражения, Условие вычета даты
 
Добрый день господа.

Нужен Ваш совет.

Есть функция, которая перегоняет даты формата 31.12.12 в формат 4 кв. 2012 г.
Код
Dim re As RegExp
Dim tempString
Set re = New RegExp
re.Pattern = "(-|\+|\(|\)| )"
re.Global = True
re.IgnoreCase = True
tempString = re.R eplace(astring, "")

re.Pattern = "\D*(\d\d?)\.(\d\d?)\.(\d{2,4})\D*"

If re.Test(tempString) Then
RgxData = DatePart("q", DateValue(re.R eplace(tempString, "$1.$2.$3"))) & " êâ. " & DatePart("yyyy", DateValue(re.R eplace(tempString, "$1.$2.$3"))) & " ã."
Exit Function
End If


Собственно все работает корректно и верно у меня.
Одно "но" - мне нужно, чтобы даты типа 01.10.2012 и 01.01.2013 принадлежали к 3 и 4 кварталу 2012 соответственно.
А VBA их относит уже к новому кварталу, т.к. собственно это и есть уже даты нового периода.

Следовательно мне нужно до момента преобразования даты отнять от нее 1 день, чтобы она была внутри отчетного квартала.

Можно ли это сделать прямо здесь в формуле?

ЗЫ: отнимать 1 день прямо на листе,  а потом к результату применять функцию для меня не подходит. Нужно именно в код функции вставить.
 
И? Выдернули дату и проверяете, куда она попадает или не попадает.
There is no knowledge that is not power
 
Вы бы хоть функцию полностью привели. А еще лучше вместе с файлом примером.
Скорее всего надо ковырять переменные astring и tempString. Но т.к. мы понятия не имеем, откуда astring и что в ней хранится(предположим дата, но надо понимать в каком формате), то и помочь не можем достоверно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Файл пример.
 
так?  (но не только две указанные даты, но все первые дни кварталов отнесены к предыдущему периоду)
Живи и дай жить..
 
Слэн, супер - именно так и надо было.
Спасибо!!!!
Страницы: 1
Наверх