Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2011, 00:06   #1
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию Работа с датами. Разница в месяцах.

Здравствуйте. Необходимо посчитать разницу в месяцах между двумя датами.
Например, имеем 19.12.2010 - 15.09.2010 = 3. Как это можно записать?

По возможности учесть, что может меняться год, при этом искомое кол-во месяцев будет равно в 1, например с декабря по январь - прошел 1 месяц.
ATL вне форума Ответить с цитированием
Старый 24.10.2011, 00:29   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
=РАЗНДАТ("15.09.2010";"19.12.2010";"m")
В 2003 и более ранних должна быть подключена надстройка "Пакет анализа".
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 24.10.2011, 00:45   #3
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

можно еще так:
Код:
=ОТБР(ДНЕЙ360(--"15.09.10";--"19.12.2010")/30)
MCH вне форума Ответить с цитированием
Старый 24.10.2011, 01:09   #4
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Извините, ерунду написал и удалил
vikttur вне форума Ответить с цитированием
Старый 24.10.2011, 02:33   #5
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Можно написать свю функцию и кинуть в модуль?
Код:
Function Dat_razniza(Data1, Data2)
Dat_razniza = DateDiff("m", Data1, Data2)
End Function
Вызывать:
Код:
=Dat_razniza(A1;B1)
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 24.10.2011, 02:33   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

два вопроса:
14.12.2010 - 15.09.2010 = сколько? 2 или 3?
19.12.2011 - 15.09.2010 = 15?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 24.10.2011, 02:46   #7
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Как придумали мелкософтовцы так и считает:
Цитата:
DateDiff

Возвращает значение типа Variant (Long), указывающее число временных интервалов между двумя датами. Функция DateDiff предназначена для определения числа указанных временных интервалов между двумя датами. Например, с помощью этой функции можно вычислить число дней между двумя датами или число недель между текущей датой и концом года. Для вычисления числа дней между датами date1 и date2 можно использовать временные интервалы типа день года ("y") или день месяца ("d"). Если interval задается как день недели ("w"), возвращается число недель между двумя датами. Если date1 соответствует понедельнику, подсчитывается число понедельников между date1 и date2. При этом date2 учитывается, а date1 нет. Если interval задается в неделях ("ww"), функция DateDiff возвращает число календарных недель между двумя датами, т.е. число воскресений между date1 и date2. При этом дата date2 учитывается (если ей соответствует воскресенье), а date1 нет (даже если ей соответствует воскресенье).
Если date1 определяет дату, более позднюю, чем date2, возвращается отрицательное значение. Аргумент firstdayofweek влияет на вычисления, использующие временные интервалы типа "w" и "ww". Если дата задается как литерал даты, указанный год становится постоянной частью даты. Однако если дата заключается в прямые кавычки (" "), а год опущен, то при каждом вычислении выражения даты в него будет подставляться текущий год. Это позволяет написать код, который может использоваться в течение нескольких лет.
При сравнении дат 31 декабря и 1 января следующего года функция DateDiff для интервала типа год ("yyyy") возвращает значение 1, хотя разница между датами составляет всего один день.
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с датами vladislav_m JavaScript, Ajax 0 05.05.2011 17:37
Разница между двумя датами (целые дни) Droid Общие вопросы Delphi 15 03.11.2009 23:36
Разница между датами в месяцах Andre1723 SQL, базы данных 1 21.06.2009 17:53
Разница между датами kykysya Общие вопросы Delphi 8 26.03.2009 18:22
Разница между датами deenka БД в Delphi 3 31.01.2008 13:21