Определение количества дней в году на основе отрезка времени(2 даты)

Автор james15, 23.01.2013, 16:53

« назад - далее »

james15

Прошу помочь решить следующую задачку, с использованием формулы, т.к. решение через VBA простое, но неудобное для меня.

В файле расчёта %% есть две даты периода, начальная и конечная,
мне нужно определить в каком году находиться этот отрезок: в високосном, в не високосном или "и там и там" и вывести в следующий столбец результат (365/366/ошибка).

Заранее спасибо.

MCH

формула массива:
=ВПР(СРЗНАЧ(ДЕНЬ(ДАТА(СТРОКА(ИНДЕКС(A:A;ГОД(E11)):ИНДЕКС(A:A;ГОД(F11)));3;))-28);{0;365:0,0001;"ошибка":1;366};2)

james15

Спасибо!

А не возможно переделать без массива? даже с "если", а то я не могу разобраться как работает.

MCH

Если для Вас решение на VBA кажется простым, то данная UDF полностью повторяет алгоритм решения формулы, возможно так будет понятно, как работает формула:
Function Day365(d1 As Date, d2 As Date)
    Dim i&, j&, k&
    For i = Year(d1) To Year(d2)
        j = j + Day(DateSerial(i, 3, 0)) - 28
        k = k + 1
    Next i
    Day365 = IIf(j = 0, 365, IIf(j / k = 1, 366, "Ошибка"))
End Function


james15

Разобрался как считается. От использования вычислений в строке формул отказался и зашил в файл с расчётом % функцию.
Все работает, только начальнице не отправишь)

Большое спасибо!

MCH

Цитата: igorsolv от 24.01.2013, 11:11Все работает, только начальнице не отправишь
Так не отказывайтесь от формульного варианта