=B2-A2 возвращает число дней между датой в A2 и более поздней датой в B2. Excel хранит каждую дату как целое число дней (2026-03-15 это 46096), поэтому разность двух дат даёт число дней между ними.
| A | B | C | |
|---|---|---|---|
| 1 | Ordered | Delivered | Days |
| 2 | 2026-03-02 | 2026-03-09 | 7 |
| 3 | 2026-03-05 | 2026-03-07 | 2 |
| 4 | 2026-03-10 | 2026-04-02 | 23 |
| 5 | 2026-03-28 | 2026-04-03 | 6 |
| 6 | 2026-12-29 | 2027-01-04 | 6 |
=B2-A2Заказы шли 7, 2, 23, 6 и 6 дней. Вычитание само справляется с границами месяцев и лет: последний заказ переходит через Новый год и всё равно даёт 6 дней. Измените дату доставки, и количество изменится. Если более ранняя дата стоит в B, результат отрицательный: -7 вместо 7.
Функция ДНИ
=ДНИ(end_date; start_date) делает то же вычитание, только конечная дата идёт первой. Это функция ДНИ (по-английски DAYS); она даёт те же числа, что и =B2-A2, и главная причина её выбрать в том, что имя говорит, что делает формула. В таблице ниже формулы записаны по-английски, но их можно вводить и по-русски, с точкой с запятой: =ДНИ(B2;A2).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | B2-A2 | DAYS |
| 2 | 2026-01-15 | 2026-03-10 | 54 | 54 |
| 3 | 2026-02-01 | 2026-03-01 | 28 | 28 |
| 4 | 2024-02-01 | 2024-03-01 | 29 | 29 |
=ДНИ(B2;A2)В феврале 2026 года 28 дней, а в феврале 2024 года 29: Excel знает календарь, включая високосные годы. Следите за порядком аргументов: =ДНИ(A2;B2) возвращает -54 для первой строки. ДНИ требует Excel 2013 или новее; вычитание работает везде.
Дни с учётом начальной и конечной даты
Вычитание считает дни между двумя датами, то есть число ночей. Бронь с 6 по 10 июля это 4 ночи, но машину, взятую с 6 по 10 июля, оплачивают за 5 дней. Когда учитываются и первый, и последний день, прибавьте 1.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | From | To | Nights | Days (both counted) |
| 2 | 2026-07-06 | 2026-07-10 | 4 | 5 |
| 3 | 2026-07-31 | 2026-08-01 | 1 | 2 |
=B2-A2+1Один день, с 2026-07-06 по 2026-07-06, это 0 при вычитании и 1 с +1. Отсюда берётся большинство ошибок на единицу в таблицах с датами, поэтому решите, что вам нужно, до того как заполнять столбец.
Недели, месяцы и годы между двумя датами
Для недель разделите дни на 7. В месяцах и годах нет фиксированного числа дней, поэтому используйте РАЗНДАТ, которая считает полные календарные месяцы и годы.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Start | End | Weeks | Full weeks | Months | Years |
| 2 | 2025-06-15 | 2026-09-30 | 67.4 | 67 | 15 | 1 |
| 3 | 2024-01-01 | 2026-01-01 | 104.4 | 104 | 24 | 2 |
=ЦЕЛОЕ((B2-A2)/7)С 2025-06-15 по 2026-09-30 проходит 67,4 недели, 67 полных недель, 15 полных месяцев и 1 полный год. РАЗНДАТ требует, чтобы первой стояла более ранняя дата, а в обратном порядке возвращает #ЧИСЛО! (по-английски #NUM!).
Рабочие дни между двумя датами
Чтобы считать только дни с понедельника по пятницу, используйте ЧИСТРАБДНИ(start; end) (NETWORKDAYS). Она учитывает и начальную, и конечную дату, если это будние дни, и третьим аргументом может пропускать список праздников. Праздники и другие выходные описаны на странице ЧИСТРАБДНИ и РАБДЕНЬ.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | Calendar days | Working days |
| 2 | 2026-03-02 | 2026-03-13 | 12 | 10 |
| 3 | 2026-03-06 | 2026-03-09 | 4 | 2 |
=ЧИСТРАБДНИ(A2;B2)Со 2 по 13 марта 2026 года 12 дней с учётом обоих концов, из них 10 будних. С пятницы по следующий понедельник 4 дня и 2 рабочих дня.
Практика: срок доставки
| A | B | C | |
|---|---|---|---|
| 1 | Ordered | Delivered | Days |
| 2 | 2026-05-18 | 2026-05-27 |
Ваша очередь: В C2 посчитайте, сколько дней шёл заказ, от даты заказа в A2 до даты доставки в B2.
Почему результат показан как дата или
При вычитании дат часто встречаются две проблемы с отображением:
- Результат выглядит как дата (
1900-01-07или1/7/1900при американских настройках). Ячейка сохранила формат даты, поэтому 7 дней показаны как 7-й день календаря Excel. Выделите ячейки и выберите Главная > Числовой формат > Общий. - Ячейка заполняется знаками
#####. Результат отрицательный (даты стоят в обратном порядке), а у ячейки формат даты, который не может быть отрицательным. Поменяйте даты местами, используйте=ABS(B2-A2)или задайте ячейке формат Общий, чтобы увидеть отрицательное число.
Если результат #ЗНАЧ! (#VALUE!), в одной из ячеек стоит текст, который только выглядит как дата, например 15.03.2026 в Excel с американским форматом дат. Проверьте через =ЕЧИСЛО(A2): настоящая дата возвращает ИСТИНА.
Часто задаваемые вопросы
Как посчитать количество дней между двумя датами в Excel?
Вычтите более раннюю дату из более поздней: =B2-A2. Excel хранит даты как число дней, поэтому результат и есть число дней между ними. =ДНИ(B2;A2) даёт тот же результат.
Как посчитать дни с учётом начальной и конечной даты?
Прибавьте 1: =B2-A2+1. С 6 по 10 июля вычитание даёт 4 дня (ночи в гостинице), а с учётом обоих концов 5 дней (дни аренды).
Как посчитать месяцы между двумя датами в Excel?
=РАЗНДАТ(A2;B2;"M") считает полные месяцы. Для лет используйте "Y". РАЗНДАТ требует, чтобы первой стояла более ранняя дата.
Чем ДНИ отличается от вычитания дат?
Результатом ничем: =ДНИ(B2;A2) и =B2-A2 возвращают одно и то же число дней. ДНИ принимает конечную дату первой и требует Excel 2013 или новее; вычитание работает в любой версии.
Как посчитать недели между двумя датами в Excel?
Разделите дни на 7: =(B2-A2)/7 даёт недели с дробной частью, а =ЦЕЛОЕ((B2-A2)/7) полные недели.