Как найти ближайшую дату в excel


Пусть имеется диапазон с датами. Найдем дату из этого диапазона, которая является ближайшей к заданной. Решение этой задачи аналогично решению, изложенного в статье

Поиск ЧИСЛА ближайшего к заданному

.

Пусть в диапазоне

A4:A12

имеется список дат. Будем в нем искать дату из ячейки

С4

. Если диапазон не содержит искомого значения, то будет возвращено ближайшее значение.

Искомая дата необязательно должна совпадать с какой-нибудь датой или даже находиться в диапазоне поиска (см.

Файл примера

):


Решение


Результат поиска


Примечание

=

ВПР(C4;A4:A12;1;ИСТИНА)

=

ПРОСМОТР(C4;A4:A12;A4:A12)

ищется наибольшее значение, которое меньше, чем искомое значение (если искомая дата меньше, чем минимальное значение из диапазона, то будет возвращена ошибка #Н/Д)

если столбец не отсортирован по возрастанию, то результат непредсказуем

=

ИНДЕКС(A4:A12; ПОИСКПОЗ(МИН(ABS(A4:A12-C4));ABS(A4:A12-C4);0))

ищется

ближайшая

к критерию дата (если обнаружено 2 ближайших числа (одно больше, другое меньше критерия), то выводится то, которое расположено выше (номер строки меньше))

столбец м.б. не отсортирован

=

ИНДЕКС(A4:A12; ПОИСКПОЗ(МАКС(ЕСЛИ(A4:A12<=C4;A4:A12;»»)); $A$4:$A$12;0);1)

ищется

наибольшее значение, которое меньше

, чем искомое значение (если искомая дата меньше, чем минимальное значение из диапазона, то будет возвращена ошибка #Н/Д)

столбец м.б. не отсортирован

=

ИНДЕКС(A4:A12; ПОИСКПОЗ(МИН(ЕСЛИ(A4:A12>=C4;A4:A12;»»)); $A$4:$A$12;0);1)

ищется

наименьшее значение, которое больше

, чем искомое значение (если искомая дата больше, чем максимальное значение из диапазона, то будет возвращена ошибка #Н/Д)

столбец м.б. не отсортирован

=

МАКС(ЕСЛИ(МИН(ABS(A4:A12-C4))=ABS(A4:A12-C4);A4:A12;МИН(A4:A12)))

ищется

ближайшая

к критерию дата (если обнаружено 2 ближайших числа (одно больше, другое меньше критерия), то выводится то, которое больше

столбец м.б. не отсортирован

=

МИН(ЕСЛИ(МИН(ABS(A4:A12-C4))=ABS(A4:A12-C4);A4:A12;МАКС(A4:A12)))

ищется

ближайшая

к критерию дата (если обнаружено 2 ближайших числа (одно больше, другое меньше критерия), то выводится то, которое меньше

столбец м.б. не отсортирован

Последние 5 решений реализованы с использованием

формул массива

. Для пошагового просмотра хода вычислений используйте клавишу

F9

.

Как видно из таблицы, применение функции

ВПР()

со значением аргумента

интервальный_просмотр

равным ИСТИНА, имеет недостатки. Во-первых, найденное значение м.б. далеко не ближайшим (задав в качестве критерия дату 06.02.2009 получим не ближайшую дату 07.02.2009, а наибольшее значение, которое меньше, чем искомое значение, т.е. 05.01.2009). Во-вторых, если искомая дата меньше, чем минимальное значение из диапазона, то будет возвращена ошибка #Н/Д. В-третьих, требуется

сортировка

списка, что не всегда удобно.

Хорошим решением является

формула массива

=ИНДЕКС(A4:A12; ПОИСКПОЗ(МИН(ABS(A4:A12-C4));ABS(A4:A12-C4);0))

свободная от всех указанных недостатков, но имеющая свои: формула относительно сложная и является

формулой массива

.


Совет

: т.к. дата в MS EXCEL хранится в числовом виде (см. статью

Как Excel хранит дату и время

), то формулы для поиска ближайшего числа также будут работать для дат (см. раздел

Ближайшее ЧИСЛО

).

Предположим, у вас есть список дат, смешанных с сегодняшней датой. Чтобы найти дату закрытия до сегодняшнего дня в этом списке, вам может потребоваться использовать формулы. Возможны две ситуации: одна определяет дату, ближайшую к сегодняшнему дню в прошлом, а другая — ближайшую к сегодняшнему дню в будущем. В этой статье мы покажем вам, как справиться с этими двумя проблемами.

Поиск ближайшей к сегодняшней дате даты в Excel
Поиск ближайшей даты к сегодняшнему дню в Excel


Поиск ближайшей к сегодняшней дате даты в Excel

Как показано на скриншоте ниже, сегодняшняя дата — 1 января 29 года, пожалуйста, сделайте следующее, чтобы найти прошлое, ближайшее к сегодняшней дате.

1. Выберите пустую ячейку, например ячейку B2, чтобы найти результат.

2. Скопируйте и вставьте формулу. = МАКС (($ A $ 2: $ A $ 18 в Панель формул, а затем нажмите Ctrl + Shift + Enter ключи одновременно.

Как показано на приведенном выше снимке экрана, вы можете видеть, что последняя дата, ближайшая к сегодняшней дате 1, заполнена в ячейке B26.


Поиск ближайшей даты к сегодняшнему дню в Excel

В этом разделе мы покажем вам, как найти ближайшую к сегодняшнему дню дату в будущем в Excel.

1. Выберите пустую ячейку B2, скопируйте и вставьте формулу. = МИН (ЕСЛИ (A2: A18> СЕГОДНЯ (); A2: A18)) в Панель формул, а затем нажмите Ctrl + Shift + Enter клавиши одновременно. Смотрите скриншот:

Тогда вы получите ближайшую к сегодняшнему дню дату в будущем в ячейке B2.

Заметки:

1. В формулах измените диапазон по своему усмотрению;

2. Если формат даты не отображается, измените формат ячейки на «Дата» после расчета.


Статьи по теме:

  • Как найти первую или последнюю пятницу каждого месяца в Excel?
  • Как найти 5 наименьших и наибольших XNUMX значений в списке в Excel?
  • Как найти или проверить, открыта ли конкретная книга в Excel?
  • Как узнать, есть ли ссылка на ячейку в другой ячейке Excel?
  • Как найти позицию первого / последнего числа в текстовой строке в Excel?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (3)


Оценок пока нет. Оцените первым!

 

snatg

Пользователь

Сообщений: 159
Регистрация: 26.04.2020

Помогите, в инете есть какие-то решения, но что-то все не то и не знаю, как решить задачу
На листе в столбцах
A — №
B — имя
C — день рождения

хочется сделать формулу, которая будет находить ближайший к сегодня день рождения и выводить всех людей у кого д.р.

и вот не знаю, как это сделать, думаю, что т.к. в данных есть год, то нужно делать доп столбцы, которые будут вынимать месяц и день из даты рождения и через них считать, а может и без них можно? — или сделать один доп столбец в котором формула будет подменять год из даты рожд. на текущий год…

заранее спасибо, на всяк случай пример

Прикрепленные файлы

  • ДРы.xlsx (13.95 КБ)

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

snatg, уточните, что Вы подразумеваете под ближайшим ДР?

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

snatg

Пользователь

Сообщений: 159
Регистрация: 26.04.2020

JayBhagavan, имею ввиду ближайший день, когда кого-то нужно поздравлять — сегодня, завтра, послезавтра и т.д.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#4

27.09.2021 22:45:12

snatg, можно и без доп. столбцов.

В H2 и протянуть вниз насколько надо:

Аналогично в I2:

и в J2:
=ЕСЛИ(ЕЧИСЛО($H2);РАЗНДАТ($H2;СЕГОДНЯ();»Y»)+1;»»)
Проверяйте.

Изменено: JayBhagavan28.09.2021 00:51:30
(исправлены формулы)

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

snatg

Пользователь

Сообщений: 159
Регистрация: 26.04.2020

#5

27.09.2021 22:56:25

Цитата
JayBhagavan написал:
В H2 и протянуть вниз насколько надо:

эта формула выводит 18.09.1980…
ну оно уже прошло, так и смысл же в том, чтобы выводилось без учета года рождения
при растягивании формулы там пустые ячейки

результат там должен быть такой:
сегодня:

27.09.2021 Петров5

а завтра:

28.09.2021 Водкин6
Водкин2
Иванов2
Иванов4
 

БМВ

Модератор

Сообщений: 21383
Регистрация: 28.12.2016

Excel 2013, 2016

=IFERROR(INDEX(B:B;SMALL(IF((DAY(H2)=DAY(C2:C73))*MONTH(H2)=MONTH(C2:C73);ROW(C2:C73));ROWS(I$2:I2)));»»)
=IFERROR(DATEDIF(INDEX(C:C;SMALL(IF((DAY(H2)=DAY(C2:C73))*MONTH(H2)=MONTH(C2:C73);ROW(C2:C73));ROWS(I$2:I2)));H2;»Y»);»»)
Но беда с рожденными 29 февраля.

Изменено: БМВ27.09.2021 23:38:50

По вопросам из тем форума, личку не читаю.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

72 Водкин6 06.01.2022
Похоже, у меня календарь неправильный… )

 

snatg

Пользователь

Сообщений: 159
Регистрация: 26.04.2020

#8

28.09.2021 00:01:40

БМВ, индекснуть людей у которых день рожденья в определенный день — это достаточно легко, но спасибо
но мне нужна формула для того, чтобы найти этот ближайший день, т.е. не формула сегодня(), а именно формула, которая найдет ближайший день, в который есть дни рождения, ну т.е. например, если сегодня 29.09, то след. д.р. чтоб показывался — 4.10

Цитата
БМВ написал: Но беда с рожденными 29 февраля.

пока таких не встречала)))

vikttur, это план)))

В общем, я тут подумала, ведь задача вроде простая… нужно экселю сказать: найди в списке (столбец F) дату равную или большую чем сегодня, и все, только я не знаю, как ему это сказать)))

 

Светлый

Пользователь

Сообщений: 487
Регистрация: 07.03.2019

Может быть, так устроит?

Прикрепленные файлы

  • ДРы-1.xlsx (15.47 КБ)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#10

28.09.2021 00:24:24

Цитата
snatg написал: нужно экселю сказать: найди в списке (столбец F) дату равную или большую чем сегодня

Давайте подскажем Excel‘ю:
=ДАТА(ГОД($E$1)+(МЕСЯЦ(C2)<МЕСЯЦ($E$1));МЕСЯЦ(C2);ДЕНЬ(C2))
Прошедшие даты текущего месяца игнорируем. Вернее, показываем, но… кому они надо? )
Формулой массива находим номер строки:
=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ($D$2:$D$73-$E$1={0;1;2;3;4};СТРОКА($D$2:$D$73));СТРОКА(A1));)
Дальше просто

Прикрепленные файлы

  • ДР_2.xlsx (13.89 КБ)

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#11

28.09.2021 00:45:46

snatg,

исправил формулы в сообщении №4.

+++
Добавил проверку, чтобы брать в расчёт только ДР, которые меньше СЕГОДНЯ().

В H2 и протянуть вниз насколько надо:

Аналогично в I2:

и в J2 (без изменений):
=ЕСЛИ(ЕЧИСЛО($H2);РАЗНДАТ($H2;СЕГОДНЯ();»Y»)+1;»»)

Изменено: JayBhagavan28.09.2021 01:02:06

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

snatg

Пользователь

Сообщений: 159
Регистрация: 26.04.2020

#12

28.09.2021 01:23:42

Светлый, спасибо, круто работает
JayBhagavan, там кстати не выводятся дни рождения, которые выпадают на сегодня, только последующие.
ну да ладно, я уже решила задачу, спасибо
vikttur, тоже спасибо

посмотрела, какие жуткие формулы  :D
и они натолкнули меня на мысли и я решила с этим файлом уйти в гугл таблицу))) (наверное в последнем экселе это тоже легко делается)
там все так просто получилось, буквально в одну формулу

Код
=SORTN(FILTER(A:C;A:A>=TODAY());10;0;1;TRUE)

в A:A я вставила даты дней рождений с заменой на текущий год (ну т.е. перенесла столбец F)

ну и добавила всякие там «дней до», «лет» и получилась красота, еще раз спасибо)

Изменено: vikttur28.09.2021 11:17:44

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

snatg, очередная попытка.
В H2 и протянуть вниз насколько надо:
=ЕСЛИОШИБКА(ИНДЕКС($C:$C;АГРЕГАТ(15;6;СТРОКА($C$2:$C$73)/(ДАТА(ГОД(СЕГОДНЯ())+(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($C$2:$C$73);ДЕНЬ($C$2:$C$73))<СЕГОДНЯ());МЕСЯЦ($C$2:$C$73);ДЕНЬ($C$2:$C$73))/($C$2:$C$73<=СЕГОДНЯ())-СЕГОДНЯ()<8);СТРОКА()-СТРОКА($1:$1)));»»)
Аналогично в I2:
=ЕСЛИОШИБКА(ИНДЕКС($B:$B;АГРЕГАТ(15;6;СТРОКА($C$2:$C$73)/(ДАТА(ГОД(СЕГОДНЯ())+(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($C$2:$C$73);ДЕНЬ($C$2:$C$73))<СЕГОДНЯ());МЕСЯЦ($C$2:$C$73);ДЕНЬ($C$2:$C$73))/($C$2:$C$73<=СЕГОДНЯ())-СЕГОДНЯ()<8);СТРОКА()-СТРОКА($1:$1)));»»)
и в J2:
=ЕСЛИ(ЕЧИСЛО($H2);РАЗНДАТ($H2;СЕГОДНЯ();»Y»)+(ДАТА(ГОД(СЕГОДНЯ()+(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($H2);ДЕНЬ($H2))<СЕГОДНЯ()));МЕСЯЦ($H2);ДЕНЬ($H2))>СЕГОДНЯ());»»)

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

БМВ

Модератор

Сообщений: 21383
Регистрация: 28.12.2016

Excel 2013, 2016

=IFERROR(INDEX(B:B;MOD(SMALL(IF(DATE(YEAR(H$2);MONTH($C$2:$C$73);DAY($C$2:$C$73))>=H$2;DATE(YEAR(H$2);MONTH($C$2:$C$73);DAY($C$2:$C$73))+ROW($C$2:$C$73)%%);ROWS(I$2:I2));1)/1%%+0,1);»»)
=IFERROR(DATEDIF(INDEX(C:C;MOD(SMALL(IF(DATE(YEAR(H$2);MONTH($C$2:$C$73);DAY($C$2:$C$73))>=H$2;DATE(YEAR(H$2);MONTH($C$2:$C$73);DAY($C$2:$C$73))+ROW($C$2:$C$73)%%);ROWS(I$2:I2));1)/1%%+0,1);H$2;»Y»);»
«)

По вопросам из тем форума, личку не читаю.

 

У меня есть вот такой простенький файл, делюсь может нужен а может и нет.

Занимайся тем чем увлекаешься!

 

andylu

Пользователь

Сообщений: 274
Регистрация: 29.03.2018

ну и я в коллекцию подкину, хоть автор и нашел уже решение
можно хоть прямо сортировать общий список по возрастанию по ближайшей дате ДР
хоть видеть вывод ближайших в отдельной таблице
и счастливчики родившиеся 29 февраля — отмечают ДР 1 марта

Прикрепленные файлы

  • ДРы.xlsx (13.92 КБ)

Изменено: andylu28.09.2021 11:37:18

 

snatg

Пользователь

Сообщений: 159
Регистрация: 26.04.2020

#17

28.09.2021 17:19:19

Цитата
JayBhagavan написал: очередная попытка.

о, сейчас все работает)
спасибо)

Шохбозбек Абдуфаттоев, о, интересная идея менять не просто год на текущий, а на ближайший, когда нужно поздравлять, спасибо)

andylu, спасибо, тоже интересное решение!

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#18

28.09.2021 17:32:17

Цитата
находить ближайший к сегодня день рождения и выводить всех людей у кого д.р.

На Лист1 кнопка «Ближайшие на 30 дней ДР»

Прикрепленные файлы

  • Найти ближайший день рождения_TID=143894.xls (69 КБ)

 

snatg

Пользователь

Сообщений: 159
Регистрация: 26.04.2020

#19

28.09.2021 17:41:09

Kuzmich, красиво получилось, спасибо!

Поиск ближайшей даты к сегодняшнему дню

makeypp

Дата: Пятница, 28.11.2014, 16:23 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 14


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Добрый день!
Прошу помочь в решении следующей задачи.
Ведётся реестр договоров, по которым идут поставки (количество и даты поставок у всех разные). Нужно, чтобы в столбце «Ближайшая дата поставки» отображалась дата поставки близкая к сегодняшнему дню. Прошедшие даты не интересуют. только ожидаемые.

 

Ответить

buchlotnik

Дата: Пятница, 28.11.2014, 16:25 |
Сообщение № 2

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

файл?

 

Ответить

makeypp

Дата: Пятница, 28.11.2014, 16:32 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 14


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Не прикрепляется

К сообщению приложен файл:

__1.xls
(24.5 Kb)

 

Ответить

buchlotnik

Дата: Пятница, 28.11.2014, 16:40 |
Сообщение № 4

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Опять намудрил B) массивная

Код

=МИН(ЕСЛИ(C3:G3-СЕГОДНЯ()>=0;C3:G3;9^9))

К сообщению приложен файл:

_1.xls
(26.0 Kb)

Сообщение отредактировал buchlotnikПятница, 28.11.2014, 16:45

 

Ответить

makeypp

Дата: Пятница, 28.11.2014, 17:11 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 14


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

А если слегка видоизменить таблицу и добавить в неё дополнительные столбцы, но оставить поставленную задачу (вывод ближайшей даты), то как будет выглядеть формула?

К сообщению приложен файл:

5419146.xls
(25.5 Kb)

 

Ответить

buchlotnik

Дата: Пятница, 28.11.2014, 17:46 |
Сообщение № 6

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

тогда так

Код

=МИН(ЕСЛИ(C4:Q4-СЕГОДНЯ()>=0;C4:Q4;9^9)*ЕСЛИ($C$3:$Q$3=»дата»;1;9^9))

 

Ответить

makeypp

Дата: Пятница, 28.11.2014, 17:58 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 14


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

buchlotnik, Спасибо!!! Вы просто гений! А что в данной формуле означает 9^9? В остальном вроде бы разобрался.

 

Ответить

Pelena

Дата: Пятница, 28.11.2014, 18:01 |
Сообщение № 8

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Немного короче, тоже массивная

Код

=МИН(ЕСЛИ((C4:Q4>=СЕГОДНЯ())*($C$3:$Q$3=»дата»);C4:Q4))


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

buchlotnik

Дата: Пятница, 28.11.2014, 18:02 |
Сообщение № 9

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Цитата

что в данной формуле означает 9^9?

это просто очень большое число. даты с таким значением в Excel просто не существует, поэтому при работае функции МИН() ячейка, не соответствующая условиям, выдаст очень большое значение, гарантированно превышающее любую дату
Елена, может не прав, но специально усложнил, чтоб ноль не генерился

Сообщение отредактировал buchlotnikПятница, 28.11.2014, 18:23

 

Ответить

Pelena

Дата: Пятница, 28.11.2014, 18:27 |
Сообщение № 10

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Ноль получается, только если нет дат, позже сегодняшней. Его легко убрать форматом или условным форматированием


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

buchlotnik

Дата: Пятница, 28.11.2014, 18:37 |
Сообщение № 11

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Pelena, согласен, так проще

 

Ответить

Nic70y

Дата: Суббота, 29.11.2014, 08:49 |
Сообщение № 12

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

длинная, но не массивная:

Код

=СУММПРОИЗВ(НАИБОЛЬШИЙ((C$3:Q$3=»дата»)*(C4:Q4>=СЕГОДНЯ())*C4:Q4;МАКС(1;СЧЁТ(1/((C$3:Q$3=»дата»)*(C4:Q4>=СЕГОДНЯ())*C4:Q4)))))


ЮMoney 41001841029809

 

Ответить

makeypp

Дата: Понедельник, 01.12.2014, 12:07 |
Сообщение № 13

Группа: Пользователи

Ранг: Новичок

Сообщений: 14


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Pelena, Почему-то Ваш вариант не работает. Можете вставить формулу в мой файл и прислать?

 

Ответить

Pelena

Дата: Понедельник, 01.12.2014, 12:13 |
Сообщение № 14

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Смотрите. Нули убраны форматом числа

К сообщению приложен файл:

2716667.xls
(27.5 Kb)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

dickist

Дата: Среда, 29.04.2015, 03:41 |
Сообщение № 15

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Смотрите. Нули убраны форматом числа

Pelena, Ваша формула (массива)

Код

=МИН(ЕСЛИ((C6:Q6>=СЕГОДНЯ())*($C$3:$Q$3=»дата»);C6:Q6))

мне тоже подходит, но смущал формат даты. Я решил проверить, как рассчитанная «ближайшая дата» в таком формате, поведет себя в других расчетах.
К «ближайшей дате» из строки 5 прибавил «количество дней» — 5 и получил «новую дату» — 1900.01.00, т.е. 0 (в формате числа) !!!???
Решил избавиться от необходимости менять формат даты, «немного» утяжелив формулу:

Код

=ЕСЛИ(МИН(C13:Q13<СЕГОДНЯ())*($C$3:$Q$3=»дата»);» «;МИН(ЕСЛИ((C13:Q13>=СЕГОДНЯ())*($C$3:$Q$3=»дата»);C13:Q13)))

(Я применил ее в 3х последних строках приложенной таблицы — 0 не выводится, и формат даты не отличается от привычного для глаза).
Проверил получение новой даты: К «ближайшей дате» из строки 15 прибавил «количество дней» — 5 и получил «новую дату» — Правильную.
Проверил другую «Ближайшую дату» в строке 6 (рассчитанную по Вашей формуле) — новая дата Правильная!
Формулы для 5 и 6 строк — одинаковы, форматы — одинаковы, но 6 ситается правильно, а в 5 — какая-то ошибка.
Помогите, пожалуйста, разобраться, что «не так» с 5 строкой!
(даже, если беру эту дату (15.05.2015) в числовом формате (42139) и прибавляю 5 получаю 0, т.е. 1900.01.00)
Заранее благодарен!

 

Ответить

buchlotnik

Дата: Среда, 29.04.2015, 04:39 |
Сообщение № 16

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Цитата

что «не так» с 5 строкой

циклическая ссылка

 

Ответить

dickist

Дата: Среда, 29.04.2015, 15:00 |
Сообщение № 17

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010


buchlotnik, спасибо, но я новичок не только на форуме, но и в Excel, который тоже ругается на «циклическую ошибку», и пишет: «…однако не удается отобразить источник ошибки».
Поясните, пожалуйста, почему формула Pelen’ы нормально работает в других строках, а в 5-й появляется «циклическая ошибка». Откуда она берется, и что надо изменить, чтобы избежать такой ошибки.
Спасибо, если найдете время подробно ответить.

 

Ответить

Pelena

Дата: Среда, 29.04.2015, 15:09 |
Сообщение № 18

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Потому что формула из ячейки В5 ссылается на диапазон С5:Q5, а Вы одновременно пытаетесь в ячейку Е5, которая входит в этот диапазон, написать формулу, ссылающуюся на В5. Вот и получается замкнутый круг.
Если у Вас есть конкретная задача, сформулируйте её в новой теме, будем разбираться, как обойти циклическую ссылку


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

dickist

Дата: Среда, 29.04.2015, 18:17 |
Сообщение № 19

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Огромное спасибо, Pelena!
Я пытаюсь разобраться как работает Ваша формула.
1. Я думал, что в формуле

Код

=МИН(ЕСЛИ((C5:Q5>=СЕГОДНЯ())*($C$3:$Q$3=»дата»);C5:Q5))

ограничивает диапазон сравнения колонками «дата». Это не так?
2. Если значение «сумма по накладной» в ячейке Е5 (входящей в диапазон C5:Q5) рассчитывается по формуле, например, , (ячейки F5 и C5 входят в диапазон, но значения в них постоянны), то это никак не влияет на результат.
Также не повлияет на результат, если мы введем в ячейку D5 (накладная) значение больше СЕГОДНЯ [ЕСЛИ((C5:Q5>=СЕГОДНЯ())], например, 42124, что соответствует 2015.04.30 (а сегодня 04.29), т.к. D5 не относится к «дата».
Но стоит ввести в формулу в ячейке (Е5 или D5) ссылку на В5 — Кранты!

То есть, Excel сравнивает с условием ячейки из колонок, имеющих заголовок «дата» в диапазоне C5:Q5 и выводит из них минимальную, но физически проверяет все ячейки диапазона, и не допускает в них ссылку на результат расчетов.
Я правильно понял?
Если что-то не так, поправьте, пожалуйста.

p.s. У меня есть конкретная задача, и в ее решении возникли проблемы, по-моему, они не касаются зацикливания.
Ее можно также назвать «Поиск ближайшей даты к сегодняшнему дню», разве, что добавить «с дополнительным условием».
Стоит ее выносить в отдельную тему, или можно обсудить здесь?

Сообщение отредактировал dickistСреда, 29.04.2015, 18:20

 

Ответить

Pelena

Дата: Среда, 29.04.2015, 19:24 |
Сообщение № 20

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Сравниваются все ячейки диапазона со значением «дата», в результате получается массив из элементов ИСТИНА/ЛОЖЬ. Чтобы его увидеть, можно в строке формул выделить фрагмент $C$3:$Q$3=»дата» и нажать клавишу F9. Чтобы вернуть формуле первоначальный вид, нажать ESC.

это никак не влияет на результат

На результат влияет не это. Циклическая ссылка получается, если одна ячейка ссылается на другую, а эта другая ссылается на первую.

проверяет все ячейки диапазона

Да, именно так

Возможно, Вам будет полезна статья Как разобраться в работе сложной формулы


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

0 / 0 / 0

Регистрация: 20.08.2018

Сообщений: 5

1

Ближайшая дата(из диапазона) к текущей

23.08.2018, 06:46. Показов 8086. Ответов 3


Студворк — интернет-сервис помощи студентам

Здравствуйте!
Помогите пожалуйста ни как не могу разобраться….
Мне необходимо из диапазона ячеек с датами найти ближайшую к текущей(>=, но не меньше)
Пример прилагаю.
Заранее благодарю.



0



772 / 615 / 294

Регистрация: 05.01.2014

Сообщений: 1,338

23.08.2018, 07:50

2

Вариант, формула массива.

Код

=НАИМЕНЬШИЙ(ЕСЛИ(B4:H4>=$B$2;B4:H4);1)



0



2640 / 1697 / 694

Регистрация: 04.09.2015

Сообщений: 3,367

23.08.2018, 10:53

3

Лучший ответ Сообщение было отмечено Rita2018 как решение

Решение

Еще вариант формула массива

Код

=МИН((B4:H4<B$2)*9^9+B4:H4)

и тоже самое не массивная

Код

=МИН(ИНДЕКС((B4:H4<B$2)*9^9+B4:H4;))



1



0 / 0 / 0

Регистрация: 20.08.2018

Сообщений: 5

23.08.2018, 12:38

 [ТС]

4

AleksSid, AlexM СПАСИБО ОГРОМНОЕ!!!!!!



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

23.08.2018, 12:38

4

Like this post? Please share to your friends:
  • Как найти бланк в excel
  • Как найти word документ по содержанию
  • Как найти битые ссылки в excel
  • Как найти word документ по дате сохранения
  • Как найти бесплатный excel