Поиск даты в диапазоне дат 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 хранит дату и время

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

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

).

Допустим поставки товаров от поставщика 1 раз в неделю. Банковские транзакции взаиморасчетов с поставщиком товаров производятся регулярно каждый вторник. Необходимо быстро проверить в какие дни дата поставки товара совпадает с датой взаиморасчетов. Это позволит предоставить ежемесячный отчет за прошлый месяц о взаиморасчетах поставщику в день поставки товара и сэкономить на курьерских услугах. Для этого следует выделить все даты предполагаемых поставок, припадающие на вторник.

Поиск даты в диапазоне дат Excel

Для решения выше описанной задачи мы, используя специальную формулу в условном форматировании выполним поиск ближайшей даты в Excel для вторников и выделим цветом эти ячейки. Автоматическое выделения цветом календарных дат:

Даты доставки.

  1. Выделите диапазон ячеек B2:B10 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
  2. Создание правила.

  3. Выберите: «Использовать формулу для определения форматируемых ячеек».
  4. ДЕНЬНЕД.

  5. Чтобы выбрать дни вторников в Excel для поля ввода введите формулу: =ДЕНЬНЕД(B2;2)=2 и нажмите на кнопку «Формат», чтобы задать желаемый цвет заливки для ячеек. Например, зеленый. Нажмите ОК на всех открытых окнах.

Зеленый.

Результат выделения цветом каждого вторника в списке дат поставок товаров:

выделение цветом каждого вторника.

В формуле мы использовали функцию =ДЕНЬНЕД(), которая возвращает номер дня недели для исходной даты. В первом аргументе функции указываем ссылку на исходную дату. Ссылка относительная так как будет проверятся каждая дата в столбце B. Во втором аргументе обязательно следует указать число 2, чтобы функция правильно выдавала нам очередности дней недели (1-понедельник, 2-вторник и т.д.). Если не указать второй аргумент, то функция будет считать дни в английском формате: 1-sanday (неделя), 2-Monday (понедельник) и т.д.

Дальше идет оператор сравнения с числом 2. Если возвращаемое число функцией = 2 значит формула возвращает значение ИСТИНА и к текущей ячейке применяется пользовательский формат (красная заливка).



Выделения дат цветом только текущего месяца

В таблице представлен список проектов, которые должны быть реализованные на протяжении текущего полугодия. Список большой, но нас интересуют только те проекты, которые должны быть реализованы в текущем месяце. Визуально искать в списке даты текущего месяца – весьма неудобно. Можно использовать условное форматирование, чтобы Excel нам автоматически выделил цветом интересующие нас даты в списке. Пример таблицы проектов на текущий месяц в Excel:

список проектов.

Нам необходимо из целой таблицы выбрать дату в Excel на текущий месяц:

  1. Выделите диапазон ячеек B2:B11 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
  2. Создать правило.

  3. Снова выбираем: «Использовать формулу для определения форматируемых ячеек».
  4. МЕСЯЦ.

  5. В поле ввода введите формулу: =МЕСЯЦ(B2)=МЕСЯЦ($C$2) и нажмите на кнопку «Формат», чтобы задать желаемый цвет заливки для ячеек. Например, зеленый. Нажмите ОК на всех открытых окнах.

Зеленый.

В результате визуально отчетливо видно дни текущего месяца:

дни текущего месяца.

В представленной формуле для условного форматирования главную роль играет функция =МЕСЯЦ(), которая определяет номер месяца исходной даты. Ссылка на ячейку в аргументе первого раза использования функции МЕСЯЦ – относительная, так как проверятся будут несколько ячеек в столбце C. После функции стоит оператор сравнения с номером текущего месяца. Там уже используется абсолютная ссылка (значение аргумента неизменяемое). Если результаты вычислений по обе стороны оператора сравнения совпадают, тогда формула возвращает значение ИСТИНА и к текущей ячейке присваивается пользовательский формат (заливка зеленым цветом).

Теперь усложним задачу. Допустим у нас список проектов охватывает не полугодие, а несколько лет:

список проектов на несколько лет.

Тогда возникает сложность ведь в разные года номера месяцев будут совпадать и условное форматирование будет выделять лишние даты. Поэтому необходимо модернизировать формулу:

ГОД.

Готово:

Пример.

Мы добавили в формулу две функции, которые позволяют нам выбрать дни определенного месяца и года:

  1. =ГОД() – функция работает по тому же принципу что и =МЕСЯЦ(). Разница только в том, что возвращает из даты номер года.
  2. =И() – данное имя функции говорит само за себя. То есть должны совпадать и номера месяцев и их номера годов.

Вся формула достаточно просто читается и ее легко использовать для решения похожих задач с помощью условного форматирования.

Читайте так же: как посчитать разницу между датами в днях.

Всем привет!

У меня почти такая же проблема что у Buchhalter:
есть диапазоны дат, есть также искомое значение (конкретная календарная дата). Надо определить конкретный диапазон дат, который содержит искомую календарную дату и получить значение ячейки напротив нужного диапазона.
напротив ячейки содержащую дату нужно ставить значение из массива. В моем случае это курс доллара на эту дату.

В приведенном примере у Buchhalter только два столбца с датами, а у меня их много.
Я пытался пользоваться формулой приведенной Все имена заняты, не получилось.

Во вложенном файле я указал два варианта:
Вариант 1 — в массиве, содержащую даты, указаны все даты периода
Вариант 2 — в массиве, содержащую даты, указаны только первая и последняя дата периода.

Какую формулу нужно применять в каждом из вариантов?

Пожалуйста, помогите разобраться с проблемой.

Предположим, у вас есть отчет о расписании некоторых проектов, теперь вы хотите получить конкретный проект на заданное время, которое находится между двумя заданными датами расписания. Возьмите следующий снимок экрана, например, я хотел бы найти указанную дату 12/1/2019, если эта дата находится между датами начала и датами окончания в отчете, а затем вернуть соответствующее имя проекта. В этой статье я представлю функцию ПРОСМОТР для решения этой проблемы.

Vlookup между двумя датами и возврат соответствующего значения с формулами

Vlookup между двумя датами и возврат соответствующего значения с удивительной функцией


Vlookup между двумя датами и возврат соответствующего значения с формулами

Чтобы получить относительное значение, на которое дата попадает между двумя датами, вам может помочь приведенная ниже формула поиска. Пожалуйста, сделайте так:

1. Введите приведенную ниже формулу в пустую ячейку, в которую вы хотите поместить результат:

=LOOKUP(2,1/($B$2:$B$8<=E2)/($C$2:$C$8>=E2),$A$2:$A$8)

Внимание: В приведенной выше формуле:

  • B2: B8 диапазон дат начала и C2: C8 это диапазон дат окончания в вашей таблице;
  • что собой представляет E2 — заданная дата, для которой вы хотите получить соответствующее значение.

2. Затем перетащите маркер заполнения вниз к ячейкам, чтобы получить нужный результат. Смотрите скриншот:

Заметки:

  • Если дата не существует, после ввода этой формулы вы получите значение ошибки.
  • Вот еще одна простая формула, которая также вам поможет:=LOOKUP(E2,$B$2:$C$8,$A$2:$A$8).

Vlookup между двумя датами или двумя значениями и возврат соответствующих записей в Excel

Kutools for Excel‘s ПОИСК между двумя ценностями Утилита поможет вам быстро и легко найти и вернуть соответствующие записи на основе заданных дат или значений. Нажмите, чтобы скачать Kutools for Excel!


Vlookup между двумя датами и возврат соответствующего значения с удивительной функцией

Если не хочешь вспоминать эти болезненные формулы, Kutools for Excel‘s ПОИСК между двумя ценностями функция может помочь вам решить эту задачу так быстро, как вам нужно.

Советы:Чтобы применить это ПОИСК между двумя ценностями функция, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.

После установки Kutools for Excel, пожалуйста, сделайте так:

1. Нажмите Кутулс > Супер поиск > ПОИСК между двумя ценностями, см. снимок экрана:

2. В ПОИСК между двумя ценностями диалоговом окне выполните следующие действия:

  • Выберите ячейки значений поиска и выходные ячейки из Значения поиска и диапазон вывода раздел;
  • Затем укажите соответствующие элементы из Диапазон данных .

3, Затем нажмите OK Кнопка, соответствующие записи, основанные на заданных датах, были извлечены, как показано на следующем снимке экрана:

Внимание: Если вы хотите заменить значение ошибки, когда дата не существует, другим конкретным текстом, проверьте Заменить значение ошибки # Н / Д указанным значением опцию.

Нажмите, чтобы скачать Kutools for Excel и бесплатная пробная версия прямо сейчас!


Больше относительных статей:

  • Значения Vlookup на нескольких листах
  • В excel мы можем легко применить функцию vlookup, чтобы вернуть совпадающие значения в одной таблице рабочего листа. Но задумывались ли вы когда-нибудь над тем, как получить значение vlookup на нескольких листах? Предположим, у меня есть следующие три листа с диапазоном данных, и теперь я хочу получить часть соответствующих значений на основе критериев из этих трех листов.
  • Используйте точное и приблизительное совпадение Vlookup в Excel
  • В Excel vlookup — одна из наиболее важных функций для поиска значения в крайнем левом столбце таблицы и возврата значения в той же строке диапазона. Но успешно ли вы применяете функцию vlookup в Excel? В этой статье я расскажу о том, как использовать функцию vlookup в Excel.
  • Значение соответствия Vlookup снизу вверх в Excel
  • Обычно функция Vlookup может помочь вам найти данные сверху вниз, чтобы получить первое совпадающее значение из списка. Но иногда вам нужно выполнить vlookup снизу вверх, чтобы извлечь последнее соответствующее значение. Есть ли у вас какие-нибудь хорошие идеи для решения этой задачи в Excel?
  • Vlookup и возврат всей / всей строки совпадающего значения в Excel
  • Обычно вы можете vlookup и вернуть соответствующее значение из диапазона данных с помощью функции Vlookup, но пытались ли вы когда-нибудь найти и вернуть всю строку данных на основе определенных критериев, как показано на следующем снимке экрана.
  • Значения Vlookup справа налево в Excel
  • Vlookup — полезная функция в Excel, мы можем использовать ее для быстрого возврата соответствующих данных крайнего левого столбца в таблице. Однако, если вы хотите найти определенное значение в любом другом столбце и вернуть относительное значение слева, обычная функция vlookup работать не будет. Здесь я могу представить вам другие формулы для решения этой проблемы.

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

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

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

вкладка kte 201905


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

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

офисный дно

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


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

I am working on trying to find a formula or a macro that will help allow me find a particular date in a range of two dates. I have tried a few different things, but I have come up empty. Are there any solutions for this? I have 3 date strings, and I am looking to see if the third date falls in the range.

ex. date range is var1 5/1/17 through var2 5/7/17 and I am looking to see if var3 5/5/17 falls within that week. output true if true, false if false.

Thanks in advance!

Community's user avatar

asked May 24, 2017 at 14:51

pat285's user avatar

4

Using formulas, you would do

=IF(AND([earliest date]<=[check date],[latest date]>=[check date]),"Yes","No").

enter image description here

If you need it in VBA, you could do something like:

Function checkDate(date1 As String, date2 As String, chkDate As String) As String
If date1 <= chkDate And date2 >= chkDate Then
    checkDate = "Falls between!"
Else
    checkDate = "Outside the range"
End If
End Function

And run with =checkDate(A2,B2,C2).

answered May 24, 2017 at 15:12

BruceWayne's user avatar

BruceWayneBruceWayne

22.8k15 gold badges64 silver badges109 bronze badges

6

Like this post? Please share to your friends:
  • Поиск данных функциями excel
  • Поиск документа word содержащего текст
  • Поиск данных формы в excel
  • Поиск документа word по содержанию
  • Поиск данных по части excel