Ця формула повинна працювати до 25 листопада 4770 року, до цього часу Excel, можливо, було витіснене чимось іншим.
=SUMPRODUCT(--(YEAR(ROW(INDIRECT(StartDt &":"&endDt)))=C$1))
де C1 містить відповідний рік.
Наприклад:

Однак ви пишете, що хочете знати "різницю між датами". Ця фразеологія зазвичай означає, що ви не хочете рахувати перше побачення. Формула підраховує всі дати.
Якщо ви дійсно хочете "різниці", а не кількості днів від "Почати до кінця", додайте її до дати початку у формулі:
=SUMPRODUCT(--(YEAR(ROW(INDIRECT(StartDt+1 &":"&endDt)))=C$1))
Редагувати: (спровоковано @ fixer1234) Щоб зрозуміти, як це працює, вам потрібно це зрозуміти
- дати зберігаються в Excel як порядкові номери, як правило,
1-jan-1900рівні 1 .
ROW(INDIRECT(n:m))- це спосіб повернення масиву чисел, рівних номерам рядків, представленим nіm
- Потім
YEARфункція повертає еквівалентний рік з кожного з цих значень, при цьому ми порівнюємо з роком у верхній частині відповідного стовпця, генеруючи масив TRUE;FALSE.
- Оскільки в Excel,
--TRUE= 1, SUMPRODUCTефективно поверне SUMвсі дати, що знаходяться в році, у верхній частині стовпця.
- Обмеження дати, яке я згадав, полягає в тому, що це лише
2^20рядки в Excel. Це можна було б подолати, застосувавши зміщення до дат у структурі ROW(INDIRECT(…, а потім додавши це назад після, якщо вказані дати пізніше 11/25/4770.