Пусть имеется диапазон с датами. Найдем дату из этого диапазона, которая является ближайшей к заданной. Решение этой задачи аналогично решению, изложенного в статье
Поиск ЧИСЛА ближайшего к заданному
.
Пусть в диапазоне
A4:A12
имеется список дат. Будем в нем искать дату из ячейки
С4
. Если диапазон не содержит искомого значения, то будет возвращено ближайшее значение.
Искомая дата необязательно должна совпадать с какой-нибудь датой или даже находиться в диапазоне поиска (см.
Файл примера
):
|
|
|
=
= |
ищется наибольшее значение, которое меньше, чем искомое значение (если искомая дата меньше, чем минимальное значение из диапазона, то будет возвращена ошибка #Н/Д) |
если столбец не отсортирован по возрастанию, то результат непредсказуем |
= |
ищется |
столбец м.б. не отсортирован |
= |
ищется |
столбец м.б. не отсортирован |
= |
ищется |
столбец м.б. не отсортирован |
= |
ищется |
столбец м.б. не отсортирован |
= |
ищется |
столбец м.б. не отсортирован |
Последние 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 для вторников и выделим цветом эти ячейки. Автоматическое выделения цветом календарных дат:
- Выделите диапазон ячеек B2:B10 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
- Выберите: «Использовать формулу для определения форматируемых ячеек».
- Чтобы выбрать дни вторников в Excel для поля ввода введите формулу: =ДЕНЬНЕД(B2;2)=2 и нажмите на кнопку «Формат», чтобы задать желаемый цвет заливки для ячеек. Например, зеленый. Нажмите ОК на всех открытых окнах.
Результат выделения цветом каждого вторника в списке дат поставок товаров:
В формуле мы использовали функцию =ДЕНЬНЕД(), которая возвращает номер дня недели для исходной даты. В первом аргументе функции указываем ссылку на исходную дату. Ссылка относительная так как будет проверятся каждая дата в столбце B. Во втором аргументе обязательно следует указать число 2, чтобы функция правильно выдавала нам очередности дней недели (1-понедельник, 2-вторник и т.д.). Если не указать второй аргумент, то функция будет считать дни в английском формате: 1-sanday (неделя), 2-Monday (понедельник) и т.д.
Дальше идет оператор сравнения с числом 2. Если возвращаемое число функцией = 2 значит формула возвращает значение ИСТИНА и к текущей ячейке применяется пользовательский формат (красная заливка).
Выделения дат цветом только текущего месяца
В таблице представлен список проектов, которые должны быть реализованные на протяжении текущего полугодия. Список большой, но нас интересуют только те проекты, которые должны быть реализованы в текущем месяце. Визуально искать в списке даты текущего месяца – весьма неудобно. Можно использовать условное форматирование, чтобы Excel нам автоматически выделил цветом интересующие нас даты в списке. Пример таблицы проектов на текущий месяц в Excel:
Нам необходимо из целой таблицы выбрать дату в Excel на текущий месяц:
- Выделите диапазон ячеек B2:B11 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
- Снова выбираем: «Использовать формулу для определения форматируемых ячеек».
- В поле ввода введите формулу: =МЕСЯЦ(B2)=МЕСЯЦ($C$2) и нажмите на кнопку «Формат», чтобы задать желаемый цвет заливки для ячеек. Например, зеленый. Нажмите ОК на всех открытых окнах.
В результате визуально отчетливо видно дни текущего месяца:
В представленной формуле для условного форматирования главную роль играет функция =МЕСЯЦ(), которая определяет номер месяца исходной даты. Ссылка на ячейку в аргументе первого раза использования функции МЕСЯЦ – относительная, так как проверятся будут несколько ячеек в столбце C. После функции стоит оператор сравнения с номером текущего месяца. Там уже используется абсолютная ссылка (значение аргумента неизменяемое). Если результаты вычислений по обе стороны оператора сравнения совпадают, тогда формула возвращает значение ИСТИНА и к текущей ячейке присваивается пользовательский формат (заливка зеленым цветом).
Теперь усложним задачу. Допустим у нас список проектов охватывает не полугодие, а несколько лет:
Тогда возникает сложность ведь в разные года номера месяцев будут совпадать и условное форматирование будет выделять лишние даты. Поэтому необходимо модернизировать формулу:
Готово:
Мы добавили в формулу две функции, которые позволяют нам выбрать дни определенного месяца и года:
- =ГОД() – функция работает по тому же принципу что и =МЕСЯЦ(). Разница только в том, что возвращает из даты номер года.
- =И() – данное имя функции говорит само за себя. То есть должны совпадать и номера месяцев и их номера годов.
Вся формула достаточно просто читается и ее легко использовать для решения похожих задач с помощью условного форматирования.
Читайте так же: как посчитать разницу между датами в днях.
Всем привет!
У меня почти такая же проблема что у 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-дневная гарантия возврата денег.
Вкладка 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!
asked May 24, 2017 at 14:51
4
Using formulas, you would do
=IF(AND([earliest date]<=[check date],[latest date]>=[check date]),"Yes","No")
.
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
BruceWayneBruceWayne
22.8k15 gold badges64 silver badges109 bronze badges
6