Если у вас есть список дат на листе, и вы хотите найти самую последнюю или самую старую дату на основе определенного значения, как показано на следующем снимке экрана:
У вас есть идеи, как решить эту проблему в Excel?
Поиск последней или самой ранней даты с формулами в Excel
Поиск последней или самой ранней даты с формулами в Excel
Чтобы получить относительную самую старую или самую новую дату определенного значения, вы можете применить следующие формулы для ее решения.
Чтобы получить самую старую дату, введите эту формулу: =MIN(IF(A2:A16=E1,B2:B16)) в указанную ячейку, а затем нажмите Shift + Ctrl + Enter вместе, чтобы вернуть правильный ответ, см. снимок экрана:
Чтобы получить самую новую дату, введите эту формулу: =MAX(IF(A2:A16=E1,B2:B16)) в указанную вами ячейку и не забудьте нажать Shift + Ctrl + Enter вместе, чтобы вернуть результат, см. снимок экрана:
Ноты:
1. В приведенных выше формулах:
- A2: A16 столбец, в котором вы хотите искать;
- E1 это значение поиска;
- B2: B16 — столбец, в который будет возвращен результат.
2. Если вы получаете числовой результат после нажатия Shift + Ctrl + Enter ключи, вам просто нужно преобразовать число в формат даты. Выберите числовую ячейку и щелкните правой кнопкой мыши, чтобы выбрать Формат ячеек, то в Формат ячеек диалоговое окно, нажмите Время под Число и выберите один формат даты в правом поле списка Тип.
Статьи по теме:
Как vlookup вернуть пустое значение вместо 0 или N / A в Excel?
Как с помощью vlookup получить номер строки в Excel?
Как использовать точное и приблизительное совпадение vlookup в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (1)
Оценок пока нет. Оцените первым!
В этой статье объясняется, как использовать запросы на набор значений для поиска самых последних или самых давних дат в наборе записей. Данные, возвращаемые такими запросами, позволяют получать ответы на различные деловые вопросы, например о том, когда клиент делал заказ в последний раз.
Выберите нужное действие
-
Сведения о работе запросов на набор значений с датами
-
Поиск самой последней или самой давней даты
-
Поиск самых последних или самых давних дат для записей в категории или группе
-
Одновременный поиск самых последних и самых давних дат
Сведения о работе запросов на набор значений с датами
Запросы на набор значений используются, когда возникает необходимость найти в таблице или группе записи, содержащие самую последнюю или самую давнюю дату. Полученные данные позволят отвечать на различные деловые вопросы, например следующие:
-
Когда сотрудник в последний раз продавал товар? Ответ поможет определить наиболее и наименее продуктивных сотрудников.
-
Когда клиент делал заказ в последний раз? Если в течение определенного периода заказов не было, его можно перенести в список неактивных клиентов.
-
У кого ближайшие дни рождения?
Правила создания и использования запросов на набор значений
Для создания запроса на набор значений следует сначала создать запрос на выборку. В зависимости от требуемых результатов вы можете установить для запроса порядок сортировки или преобразовать его в итоговый запрос. При преобразовании используются агрегатные функции, например Max или Min для возврата наибольшего или наименьшего значения и First или Last для получения самой последней или самой давней даты. Итоговые запросы и агрегатные функции используются только для поиска данных, которые попадают в набор групп или категорий. Предположим, что нужно найти объем продаж за указанную дату для каждого города, в котором работает компания. В этом случае города становятся категориями (необходимо собрать данные по городам), поэтому можно использовать итоговый запрос.
В процессе работы помните, что в запросе (независимо от его типа) должны использоваться поля, содержащие описательные данные, например имена клиентов, и поля со значениями даты, среди которых будет производиться поиск. Кроме того, значения даты должны находиться в полях с типом данных «Дата/время». Запросы, описанные в этой статье, не будут правильно работать со значениями дат в текстовых полях. Кроме того, при использовании итогового запроса поля данных должны содержать информацию о категории, например о городе или стране.
Выбор между запросом на набор значений и фильтром
Чтобы определить, стоит ли создавать запрос на набор значений или же следует применить фильтр, примите во внимание следующее:
-
Если вы хотите получить записи, в полях которых содержатся самые последние или самые давние даты, а точные значения дат неизвестны или не имеют значения, следует создать запрос на набор значений.
-
Если вы хотите получить все записи, в которых даты совпадают с определенной датой, предшествуют ей или следуют за ней, используйте фильтр. Например, для просмотра дат продаж между апрелем и июлем нужно применить фильтр. Подробное обсуждение фильтров выходит за пределы данной темы.
Дополнительные сведения о создании и использовании фильтров см. в статье «Применение фильтра для просмотра отдельных записей в базе данных Access».
К началу страницы
Поиск самой последней или самой давней даты
В этом разделе приведены инструкции по созданию простого запроса на набор значений, использующего порядок сортировки, а также более сложного запроса с выражениями и другими условиями. Сначала описаны основные шаги создания запроса на набор значений, а затем показывается, как найти ближайшие дни рождения сотрудников путем добавления условий. Используются данные из следующей таблицы.
Фамилия |
Имя |
Адрес |
Город |
Страна или регион |
Дата рождения |
Дата приема на работу |
Авдеев |
Григорий |
Загородное шоссе, д. 150 |
Москва |
РФ |
05-фев-1968 |
10-июн-1994 |
Кузнецов |
Артем |
ул. Гарибальди, д. 170 |
Пермь |
РФ |
22-май-1957 |
22-ноя-1996 |
Дегтярев |
Дмитрий |
ул. Кедрова, д. 54 |
Красноярск |
РФ |
11-ноя-1960 |
11-мар-2000 |
Зуева |
Ольга |
ул. Губкина, д. 233 |
Тверь |
РФ |
22-мар-1964 |
22-июн-1998 |
Белых |
Николай |
пл. Хо Ши Мина, д. 15, кв. 5 |
Москва |
РФ |
05-июн-1972 |
05-янв-2002 |
Комарова |
Лина |
ул. Ляпунова, д. 70, кв. 16 |
Красноярск |
РФ |
23-янв-1970 |
23-апр-1999 |
Зайцев |
Сергей |
ул. Строителей, д. 150, кв. 78 |
Омск |
РФ |
14-апр-1964 |
14-окт-2004 |
Ермолаева |
Анна |
ул. Вавилова, д. 151, кв. 8 |
Иркутск |
РФ |
29-окт-1959 |
29-мар-1997 |
При этом вы можете ввести образец данных в новую таблицу вручную или скопировать этот пример таблицы в программу для работы с электронными таблицами, например Microsoft Excel, а затем импортировать полученный листа в таблицу с помощью Access.
Создание простого запроса на набор значений
-
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
-
В диалоговом окне щелкните таблицу, которую вы хотите использовать в запросе, нажмите Добавить, чтобы поместить ее в верхний раздел конструктора запросов, и нажмите кнопку Закрыть.
-или-
Дважды щелкните таблицу, а затем нажмите кнопку Закрыть.
Если вы используете пример данных из предыдущего раздела, добавьте в запрос таблицу Employees.
-
Добавьте на бланк поля, которые вы хотите использовать в запросе. Вы можете дважды щелкнуть каждое поле или перетащить его в пустую ячейку в строке Поле.
Если вы работаете с примером таблицы, то добавьте поля «Фамилия», «Имя» и «Дата рождения».
-
В поле, которое содержит искомые наибольшие или наименьшие значения (при использовании примера таблицы — поле «Дата рождения), в строке Сортировка выберите порядок сортировки По возрастанию или По убыванию.
При сортировке по убыванию будут возвращены самые последние даты, при сортировке по возрастанию — самые давние.
Важно: В строке Сортировка следует установить значение только для полей, содержащих даты. Если порядок сортировки задан по другому полю, запрос не вернет ожидаемых результатов.
-
На вкладке «Конструктор» в группе «Настройка запроса» щелкните стрелку вниз рядом со списком «Все» (список «Главные значения») и введите нужное количество записей или выберите нужный вариант из списка.
-
Чтобы выполнить запрос и отобразить результаты в режиме таблицы, нажмите кнопку Выполнить .
-
Сохраните запрос и оставьте его открытым, чтобы использовать на следующих шагах.
Как вы видите, этот тип запросов на набор значений дает ответы на основные вопросы, например «Кто из сотрудников самый старший или самый молодой?». Ниже описано, как с помощью выражений и других условий создавать более точные и гибкие запросы. Запрос по описанным ниже условиям выдает ближайшие дни рождения у трех сотрудников.
Добавление условий в запрос
Примечание: В этих инструкциях предполагается, что вы используете запрос, описанный в предыдущем разделе.
-
Откройте запрос, созданный на предыдущих шагах, в Конструкторе.
-
В бланке запроса в столбце справа от столбца «Дата рождения» скопируйте и вставьте или введите следующее выражение: Expr1: DatePart(«m»; [Дата рождения]). Затем нажмите кнопку Выполнить.
Функция DatePart извлекает месяц из значения в поле «Дата рождения».
-
Переключитесь в Конструктор.
-
Справа от первого выражение вставьте или введите следующее выражение: Expr2: DatePart(«d»; [Дата рождения]). Затем нажмите кнопку Выполнить.
В этом случае функция DatePart извлекает день из значения в поле «Дата рождения».
-
Переключитесь в Конструктор.
-
Для обоих введенных выражений снимите флажки в строке Показать, щелкните строку Сортировка и выберите пункт По возрастанию.
-
Нажмите кнопку Запустить.
-
При необходимости вы можете указать условия для ограничения области запроса. После этого запрос будет сортировать только записи, удовлетворяющие им, и определять первые или последние значения полей из отсортированного списка.
Для продолжения работы с примером данных откройте Конструктор. Затем в строке Условия отбора столбца Дата рождения введите следующее выражение:
Month([Дата рождения]) > Month(Date()) Or Month([Дата рождения])= Month(Date()) And Day([Дата рождения])>Day(Date())
Это выражение делает следующее: Месяц([Дата рождения]) > Month(Date()) проверяет дату рождения каждого сотрудника, чтобы узнать, приходится ли она на следующий месяц, и, если это так, включает эти записи в запрос. Месяц([Дата рождения])= Month(Date()) And Day([Дата рождения])>Day(Date()) в выражении проверяет даты рождения, которые происходят в текущем месяце, чтобы узнать, приходится ли на день рождения или после текущего дня. Если это условие истинно, функция включает эти записи в запрос. Краткое выражение игнорирует все записи, в которых день рождения приходится на период с 1 января до даты выполнения запроса.
Другие примеры выражений условий для запросов можно найти в статье Примеры условий запроса.
-
На вкладке «Конструктор» в группе «Настройка запроса» щелкните стрелку вниз рядом со списком «Все» (список «Главные значения») и введите нужное количество записей или выберите нужный вариант из списка.
Чтобы просмотреть следующие три дня рождения, введите 3.
-
Чтобы выполнить запрос и отобразить результаты в режиме таблицы, нажмите кнопку Выполнить .
Если отображается больше записей, чем требовалось
Если в данных есть записи с одинаковым значением даты, запрос может возвращать больше записей, чем вы указали. Например, вы можете создать запрос на набор значений для получения записей о трех сотрудниках, н запрос вернет четыре, поскольку у Измайлова и Быкова дни рождения совпадают, как указано в следующей таблице.
Фамилия |
ДатаРождения |
Белых |
26.09.1968 |
Бутусов |
02.10.1970 |
Измайлов |
15.10.1965 |
Быков |
15.10.1969 |
Если отображается меньше записей, чем требовалось
Предположим, что вы создали запрос, возвращающий наибольшие или наименьшие пять записей в поле, но он возвращает только три. Как правило, чтобы решить эту проблему, нужно открыть запрос в Конструкторе и проверить строку Условия отбора для столбцов в бланке запроса.
Дополнительные сведения об условиях см. в статье Примеры условий запроса.
Если выводятся повторяющиеся записи
Если запрос на набор значений возвращает повторяющиеся значения, то либо базовые таблицы содержат повторяющиеся записи, либо записи отображаются как одинаковые, потому что запрос не включает поля, значения которых позволяют их различить. Например, в следующей таблице показан результат запроса, отображающего пять последних отгруженных заказов вместе с именем продавца, который проводил транзакцию.
Дата поставки |
Продавец |
12.11.2004 |
Ковалев |
12.11.2004 |
Маслов |
12.10.2004 |
Попов |
12.10.2004 |
Попов |
12.10.2004 |
Ковалев |
Третья и четвертая записи кажутся одинаковыми, но это может объясняться тем, что Попов обработал два различных заказа, отгруженных в один день.
Чтобы избежать отображения повторяющихся записей, можно выполнить одно из двух действий в зависимости от требуемого результата. Вы можете изменить структуру запроса, добавив поля, которые позволят различить записи, например поля «КодЗаказа» и «КодКлиента». Или, если достаточно показать только одну из повторяющихся записей, вы можете выбрать отображение только уникальных записей, задав значение Да для свойства запроса Уникальные значения. Чтобы задать значение этого свойства, в Конструктор щелкните правой кнопкой мыши в любом свободном месте в верхней половине окна конструктора запросов и выберите в контекстном меню команду Свойства. В окне свойств найдите свойство Уникальные значения и задайте для него значение Да.
Дополнительные сведения о работе с повторяющимися записями см. в статье Поиск, скрытие или удаление повторяющихся данных.
К началу страницы
Поиск самых последних или самых давних дат для записей в категории или группе
Для поиска самых последних или самых давних дат для записей, входящих в группы или категории, используются итоговые запросы. Итоговый запрос представляет собой запрос на выборку, в котором для вычисления значений определенного поля используются агрегатные функции, например Min, Max, Sum, First, и Last
В этом разделе предполагается, что вы управляете мероприятием — проводите промежуточное мероприятие, освещение, питание и другие аспекты крупных функций. Кроме того, управляемые вами события могут попадать в несколько категорий, например мероприятий по запуску продукции, уличных ярлам и концертам. В этом разделе объясняется, как ответить на распространенный вопрос: когда будет следующее событие по категориям? Другими словами, когда будет следующий выпуск продукта, следующий концерт и так далее.
В процессе работы помните следующее: по умолчанию итоговые запросы, которые будут здесь созданы, могут включать только поля, содержащие данные группы или категории, и поля с датами. В запросы не должны включаться другие поля, которые описывают элементы в составе категории, например имена клиентов или поставщиков. Однако вы можете создать второй запрос, в котором будут содержаться итоговые запросы и поля с описательными данными. Ниже в этом разделе будет показано, как выполнить эту задачу.
Инструкции в данном разделе предполагают использование следующих трех таблиц:
Таблица «Типы мероприятий»
КодТипа |
Тип мероприятия |
1 |
Презентация товара |
2 |
Корпоративное мероприятие |
3 |
Частное мероприятие |
4 |
Мероприятие по сбору средств |
5 |
Выставка-продажа |
6 |
Лекция |
7 |
Концерт |
8 |
Выставка |
9 |
Уличная ярмарка |
Таблица «Клиенты»
КодКлиента |
Компания |
Контакт |
1 |
Contoso, Ltd. НИИ |
Николай Белых |
2 |
Лесопитомник |
Регина Покровская |
3 |
Fabrikam |
Елена Матвеева |
4 |
Лесопитомник |
Афанасий Быков |
5 |
А. Datum |
Лилия Медведева |
6 |
Adventure Works |
Максим Измайлов |
7 |
железа |
Арина Иванова |
8 |
Художественная школа |
Полина Кольцова |
Таблица «Мероприятия»
КодМероприятия |
Тип мероприятия |
Клиент |
Дата мероприятия |
Цена |
1 |
Презентация товара |
Contoso, Ltd. |
14.04.2003 |
10 000 ₽ |
2 |
Корпоративное мероприятие |
Лесопитомник |
21.04.2003 |
8000 ₽ |
3 |
Выставка-продажа |
Лесопитомник |
01.05.2003 |
25000 ₽ |
4 |
Выставка |
НИИ железа |
13.05.2003 |
4 500 ₽ |
5 |
Выставка-продажа |
Contoso, Ltd. |
14.05.2003 |
55 000 ₽ |
6 |
Концерт |
Художественная школа |
23.05.2003 |
12 000 ₽ |
7 |
Презентация товара |
А. Datum |
01.06.2003 |
15 000 ₽ |
8 |
Презентация товара |
Лесопитомник |
18.06.2003 |
21 000 ₽ |
9 |
Мероприятие по сбору средств |
Adventure Works |
22.06.2003 |
1300 ₽ |
10 |
Лекция |
НИИ железа |
25.06.2003 |
2450 ₽ |
11 |
Лекция |
Contoso, Ltd. |
04.07.2003 |
3800 ₽ |
12 |
Уличная ярмарка |
НИИ железа |
04.07.2003 |
5500 ₽ |
Примечание: Действия, описываемые в данном разделе, предполагают, что таблицы «Клиенты» и «Типы мероприятий» находятся на стороне «один» отношения «один-ко-многим» с таблицей «Мероприятия». В данном случае таблица «Мероприятия» имеет с этими таблицами общие поля «КодКлиента» и «КодТипа». Итоговые запросы, описанные в следующих разделах, не будут работать, если эти связи отсутствуют.
Как добавить эти данные в базу данных?
Чтобы добавить эти примеры таблиц в базу данных, можно скопировать данные в Excel и импортировать их, за исключением нескольких исключений.
-
При копировании таблиц «Типы мероприятий» и «Клиенты» в Excel не копируйте столбцы «КодТипа» и «КодКлиента». Access добавит значения первичных ключей при импорте листов — это поможет сэкономить время.
-
После импорта таблиц необходимо открыть таблицу «Мероприятия» в Конструкторе и преобразовать столбцы «Тип мероприятия» и «Клиент» в поля подстановки. Для этого щелкните столбец Тип данных для каждого поля и выберите пункт Мастер подстановок.
В ходе создания полей подстановки Access заменяет текстовые значения столбцов «Тип мероприятия» и «Клиент» числовыми значениями из исходных таблиц.
Дополнительные сведения о создании и использовании полей подпапок см. в статьях «Создание и удаление многофаентного поля» и «Руководство по полям, которые могут быть многоценными». В них описывается создание поля подстановки, позволяющего выбирать для поля несколько значений, а также создание списков подстановки.
Создание итогового запроса
-
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
-
Дважды щелкните таблицы, которые вы хотите использовать. Таблицы появятся в верхней части конструктора запросов.
При использовании приведенных выше примеров добавьте таблицы «Мероприятия» и «Типы мероприятий».
-
Дважды щелкните поля таблицы, которые вы хотите использовать в запросе. На данном этапе к запросу следует добавить только поля категорий или групп и поле значений.
При использовании данных из трех приведенных выше таблиц следует добавить либо поле «Тип мероприятия» из таблицы «Типы мероприятий», либо поле «Дата мероприятия» из таблицы «Мероприятия».
-
При необходимости вы можете указать условие для ограничения области запроса. Сортироваться будут только записи, удовлетворяющие этому условию, и в отсортированном списке будут определены первые и последние значения полей.
Например, если вы хотите просмотреть мероприятия с категорией «Частное мероприятие», в строку Условия отбора в столбце Тип мероприятия следует ввести выражение <>»Частное мероприятие».
Другие примеры выражений условий для запросов можно найти в статье Примеры условий запроса.
-
Преобразуйте этот запрос в итоговый запрос следующим образом:
На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Итоги.
В бланке запроса появится строка Итоги.
-
Убедитесь, что в строке Итоги поля каждой группы или категории выбран пункт Группировка по, и выберите для строки Итоги поля значения (поля с наибольшими или наименьшими значениями) функцию Max или Min.
Функция Max возвращает наибольшее значение числового поля и самое последнее значение даты или времени в поле с типом данных «Дата/время». Функция Min возвращает наименьшее значение в числовом поле и самую раннюю дату или время в поле «Дата/время».
-
На вкладке «Конструктор» в группе «Настройка запроса» щелкните стрелку вниз рядом со списком «Все» (список «Главные значения») и введите нужное количество записей или выберите нужный вариант из списка.
В этом случае для просмотра результатов в режиме таблицы выберите параметр Все и нажмите кнопку Выполнить.
Примечание: В зависимости от функции, выбранной на шаге 6, Access изменяет имя поля значения в запросе на Максимум_ИмяПоля или Минимум_ИмяПоля. В нашем примере поле будут переименовано в Максимум_Дата мероприятия или Минимум_Дата мероприятия.
-
Сохраните запрос и переходите к следующим шагам.
Запрос не возвращает названия продуктов и другую информацию о них. Чтобы просмотреть дополнительные данные, необходимо создать второй запрос, который включает в себя запрос, который вы только что создали. Далее описано, как это сделать.
Создание второго запроса для отображения более подробных данных
-
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
-
Перейдите на вкладку «Запросы», а затем дважды щелкните итоговую таблицу, созданную в предыдущем разделе.
-
Откройте вкладку Таблицы и добавьте таблицы, которые вы использовали в итоговом запросе, а также таблицы, в которых содержатся дополнительные данные. Если вы использовали три таблицы из примера, добавьте в новый запрос таблицы «Типы мероприятий», «Мероприятия» и «Клиенты».
-
Свяжите поля в итоговом запросе с соответствующими полями в родительских таблицах. Для этого перетащите каждое поле из итогового запроса на соответствующее поле в таблице.
При использовании примеров данных из трех таблиц перетащите столбец «Тип мероприятия» из итогового запроса на поле «Тип мероприятия» в таблице «Типы мероприятий». Затем перетащите столбец Максимум_Дата мероприятия в итоговом запросе на поле «Дата мероприятия» в таблице «Мероприятия». Благодаря объединению новый запрос на выборку связывает данные из итогового запроса с данными из других таблиц.
-
Добавьте в запрос поля с дополнительной информацией из других таблиц.
При использовании примеров данных из трех таблиц можно добавить поля «Компания» и «Контакт» из таблицы «Клиенты».
-
При желании вы можете задать порядок сортировки по одному или нескольким столбцам. Например, для вывода категорий в алфавитном порядке задайте в строке Сортировка столбца Тип мероприятия значение По возрастанию.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
Результаты запроса отображаются в режиме таблицы.
Совет: Если вам не нравится, что заголовок столбца Цена называется Максимум_Цена или Минимум_Цена, то откройте запрос в Конструкторе и в столбце «Цена» в бланке запроса введите Цена: Максимум_Цена или Цена: Минимум_Цена. После этого в заголовке столбца в режиме таблицы будет выводиться название Цена.
К началу страницы
Одновременный поиск самых последних и самых давних дат
Запросы, созданные ранее в этой статье, возвращают либо наибольшие, либо наименьшие значения, но не оба набора сразу. Если вы хотите отобразить оба набора значений в одном представлении, следует создать два запроса (один для получения наибольших значений и другой для получения наименьших значений), а затем объединить и сохранить результаты в одной таблице.
Поиск наибольших и наименьших значений и отображение этих данных в таблице состоит из следующих основных этапов:
-
Создание запроса на поиск наибольших значений и запроса на поиск наименьших значений или, при необходимости группировки данных, создание итоговых запросов, использующих функции Min и Max.
-
Преобразование запроса на поиск наибольших значений (или итогового запроса на поиск максимальных значений) в запрос на создание таблицы и выполнение этого запроса.
-
Преобразование запроса на поиск наименьших значений (или итогового запроса на поиск минимальных значений) в запрос на добавление для добавления записей в таблицу наибольших значений.
Ниже описано, как это сделать.
Создание запросов
-
Создайте запросы на поиск наибольших и наименьших значений.
Шаги, необходимые для создания запроса на поиск наибольших или наименьших значения, описаны выше в разделе Поиск самой последней или самой давней даты. Если нужно сгруппировать записи по категориям, обратитесь к разделу Поиск самых последних или самых давних дат для записей в категории или группе.
Если используются таблицы примеров из предыдущего раздела, используйте только данные из таблицы «Мероприятия». Используйте в обоих запросах поля «Тип мероприятия», «Клиент» и «Дата мероприятия» из таблицы «Мероприятия».
-
Сохраните оба запроса, присвоив им описательные имена, например «Наибольшее значение» и «Наименьшее значение», и оставьте их открытыми для использования на следующих этапах.
-
Создание запроса на создание таблицы
-
В запросе на поиск наибольших значений, открытом в Конструкторе:
На вкладке Конструктор в группе Тип запроса нажмите кнопку Создание таблицы.
Откроется диалоговое окно Создание таблицы.
-
В поле Имя таблицы введите имя таблицы, которая будет хранить записи с наибольшими и наименьшими значениями. Например, введите Наименьшие и наибольшие значения, а затем нажмите кнопку ОК.
Каждый раз при выполнении запроса вместо отображения результатов в режиме таблицы запрос будет создавать таблицу и замещать значения текущими данными.
-
Сохраните и закройте запрос.
Создание запроса на добавление
-
Откройте запрос на поиск наименьших значений в Конструкторе.
На вкладке Разработка в группе Тип запроса выберите команду Добавить.
-
Откроется диалоговое окно Добавление.
-
Введите то же имя, которое вы указали в диалоговом окне Создание таблицы.
Например, введите Наименьшие и наибольшие значения, а затем нажмите кнопку ОК. Каждый раз при выполнении запроса вместо отображения результатов в режиме таблицы он будет добавлять записи в таблицу «Наибольшие и наименьшие значения».
-
Сохраните и закройте запрос.
Выполнение запросов
-
Теперь вы готовы запустить оба запроса. В области навигации дважды щелкните запрос на поиск наибольших значений и нажмите кнопку Да при появлении подтверждения. Затем дважды щелкните запрос на поиск наименьших значений и нажмите кнопку Да при появлении подтверждения.
-
Откройте таблицу с набором записей в режиме таблицы.
Важно: Если при попытке выполнения запроса на создание или добавление ничего не происходит, проверьте, не появляется ли в строке состояния Access следующее сообщение:
Данное действие или событие заблокировано в режиме отключения.
Если выводится это сообщение, сделайте следующее:
-
Откройте панель сообщений, если она скрыта. Для этого на вкладке Работа с базами данных в группе Показать или скрыть нажмите кнопку Панель сообщений.
-
На панели сообщений нажмите Параметры.
Откроется диалоговое окно Параметры безопасности Microsoft Office.
-
Выберите Включить это содержимое, а затем кнопку ОК.
-
Выполните запрос еще раз.
К началу страницы
Определить последнюю дату в столбце А при условии |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Поиск последнего вхождения (инвертированный ВПР)
Все классические функции поиска и подстановки типа ВПР (VLOOKUP), ГПР (HLOOKUP), ПОИСКПОЗ (MATCH) и им подобные имеют одну важную особенность — они ищут от начала к концу, т.е. слева-направо или сверху-вниз по исходным данным. Как только находится первое подходящее совпадение — поиск останавливается и найденным оказывается только первое вхождение нужного нам элемента.
Что же делать, если нам требуется найти не первое, а последнее вхождение? Например, последнюю сделку по клиенту, последний платёж, самую свежую заявку и т.д.?
Способ 1. Поиск последней строки формулой массива
Если в исходной таблице нет столбца с датой или порядковым номером строки (заказа, платежа…), то наша задача сводится, по сути, к поиску последней строки, удовлетворяющей заданному условию. Реализовать подобное можно вот такой формулой массива:
Здесь:
- Функция ЕСЛИ (IF) проверяет по очереди все ячейки в столбце Клиент и выводит номер строки, если в ней лежит нужное нам имя. Номер строки на листе нам даёт функция СТРОКА (ROW), но поскольку нам нужен номер строки в таблице, то дополнительно приходится вычитать 1, т.к. у нас в таблице есть шапка.
- Затем функция МАКС (MAX) выбирает из сформированного набора номеров строк максимальное значение, т.е. номер самой последней строки клиента.
- Функция ИНДЕКС (INDEX) выдаёт содержимое ячейки с найденным последним номером из любого другого требуемого столбца таблицы (Код заказа).
Всё это нужно вводить как формулу массива, т.е.:
- В Office 365 с последними установленными обновлениями и поддержкой динамических массивов — можно просто жать Enter.
- Во всех остальных версиях после ввода формулы придется нажимать сочетание клавиш Ctrl+Shift+Enter, что автоматически добавит к ней фигурные скобки в строке формул.
Способ 2. Обратный поиск новой функцией ПРОСМОТРХ
Я уже писал большую статью с видео про новую функцию ПРОСМОТРХ (XLOOKUP), которая появилась в последних версиях Office на замену старушке ВПР (VLOOKUP). При помощи ПРОСМОТРХ наша задача решается совершенно элементарно, т.к. для этой функции (в отличие от ВПР) можно явно задавать направление поиска: сверху-вниз или снизу-вверх — за это отвечает её последний аргумент (-1):
Способ 3. Поиск строки с последней датой
Если в исходных данных у нас есть столбец с порядковым номером или датой, играющей аналогичную роль, то задача видоизменяется — нам требуется найти уже не последнюю (самую нижнюю) строку с совпадением, а строку с самой поздней (максимальной) датой.
Как это сделать с помощью классических функций я уже подробно разбирал, а теперь давайте попробуем использовать мощь новых функций динамических массивов. Исходную таблицу для пущей красоты и удобства тоже заранее преобразуем в «умную» с помощью сочетания клавиш Ctrl+T или команды Главная — Форматировать как таблицу (Home — Format as Table).
С их помощью этой «убойной парочки» наша задача решается весьма изящно:
Здесь:
- Сначала функция ФИЛЬТР (FILTER) отбирает только те строки из нашей таблицы, где в столбце Клиент — нужное нам имя.
- Потом функция СОРТ (SORT) сортирует отобранные строки по убыванию даты, чтобы самая последняя сделка оказалась сверху.
- Функция ИНДЕКС (INDEX) извлекает первую строку, т.е. выдает нужную нам последнюю сделку.
- И, наконец, внешняя функция ФИЛЬТР убирает из результатов лишние 1-й и 3-й столбцы (Код заказа и Клиент) и оставляет только дату и сумму. Для этого используется массив констант {0;1;0;1}, определяющий какие именно столбцы мы хотим (1) или не хотим (0) выводить.
Способ 4. Поиск последнего совпадения в Power Query
Ну, и для полноты картины, давайте рассмотрим вариант решения нашей задачи обратного поиска с помощью надстройки Power Query. С её помощью всё решается очень быстро и красиво.
1. Преобразуем нашу исходную таблицу в «умную» с помощью сочетания клавиш Ctrl+T или команды Главная — Форматировать как таблицу (Home — Format as Table).
2. Загружаем её в Power Query кнопкой Из таблицы/диапазона на вкладке Данные (Data — From Table/Range).
3. Сортируем (через выпадающий список фильтра в шапке) нашу таблицу по убыванию даты, чтобы самые последние сделки оказались сверху.
4. На вкладке Преобразование выбираем команду Группировать по (Transform — Group By) и задаем группировку по клиентам, а в качестве агрегирующей функции выбираем вариант Все строки (All rows). Назвать новый столбец можно как угодно — например Подробности.
После группировки получим список уникальных имен наших клиентов и в столбце Подробности — таблицы со всеми сделками каждого из них, где первой строкой будет идти самая последняя сделка, которая нам и нужна:
5. Добавляем новый вычисляемый столбец кнопкой Настраиваемый столбец на вкладке Добавить столбец (Add column — Add custom column) и вводим следующую формулу:
Здесь Подробности — это столбец, откуда мы берем таблицы по клиентам, а {0} — это номер строки, которую мы хотим извлечь (нумерация строк в Power Query начинается с нуля). Получаем столбец с записями (Record), где каждая запись — первая строка из каждой таблицы:
Осталось развернуть содержимое всех записей кнопкой с двойными стрелками в шапке столбца Последняя сделка, выбрав нужные столбцы:
… и удалить потом ненужный более столбец Подробности щёлкнув по его заголовку правой кнопкой мыши — Удалить столбцы (Remove columns).
После выгрузки результатов на лист через Главная — Закрыть и загрузить — Закрыть и загрузить в (Home — Close & Load — Close & Load to…) получим вот такую симпатичную таблицу со списком последних сделок, как и хотели:
При изменении исходных данных результаты нужно не забыть обновить, щёлкнув по ним правой кнопкой мыши — команда Обновить (Refresh) или сочетанием клавиш Ctrl+Alt+F5.
Ссылки по теме
- Функция ПРОСМОТРХ — наследник ВПР
- Как использовать новые функции динамических массивов СОРТ, ФИЛЬТР и УНИК
- Поиск последней непустой ячейки в строке или столбце функцией ПРОСМОТР
На чтение 6 мин. Просмотров 2.6k. Опубликовано 20.05.2021
В столбце дат нелегко быстро определить самую раннюю и самую позднюю дату, если вы не можете отсортировать даты. На самом деле, есть несколько хитрых способов легко и удобно узнать самые ранние и последние даты в Excel.
- Находите самые ранние и самые последние даты с помощью функций
- Найдите самые ранние и самые свежие даты с помощью Kutools for Excel
- Найдите самую раннюю и самую позднюю даты в каждой строке/столбце Excel.
- Найдите самую раннюю или самую позднюю даты на основе критериев в другом столбце (по группе)
Содержание
- Легко находите максимальные/минимальные даты в диапазоне или в каждой строке/столбце диапазона в Excel
- Поиск самых ранних и последних дат с помощью функций
- Найдите самые ранние и последние даты с помощью Kutools for Excel
- Найдите самые ранние или самые поздние даты в каждой строке/столбце в Excel
- Демо: поиск самых ранних и последних дат в диапазоне или каждой строке/столбце диапазона
- Легко найти максимальное/минимальное значение на основе критериев в других столбец (по группам) в Excel
- Статьи по теме:
Легко находите максимальные/минимальные даты в диапазоне или в каждой строке/столбце диапазона в Excel
Kutools for Excel ‘ Функция выбора ячеек с максимальным и минимальным значением может помочь вам быстро найти все максимальные/минимальные значения в указанном диапазоне или выбрать максимальные/минимальные даты в каждом строка/столбец диапазона в Excel. 30-дневная бесплатная пробная версия полнофункциональной версии!
Вкладка Office Включает редактирование и просмотр с вкладками в Office и делает вашу работу намного проще …
Подробнее … Скачать бесплатно …
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
- Повторное использование чего угодно: добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
- Более 20 текстовых функций: извлечение числа из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
- Инструменты слияния: несколько книг и листов в одну; Объединить несколько ячеек/строк/столбцов без потери данных; Объедините повторяющиеся строки и суммируйте.
- Инструменты разделения: разделение данных на несколько листов в зависимости от значения; Из одной книги в несколько файлов Excel, PDF или CSV; Один столбец в несколько столбцов.
- Вставить пропуск скрытых/отфильтрованных строк; Подсчет и сумма по цвету фона; Массовая отправка персонализированных писем нескольким получателям.
- Суперфильтр: создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделе, дню, частоте и т. Д. Фильтр жирным шрифтом, формулами, комментарием …
- Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.
Подробнее … Бесплатная загрузка …
->
Поиск самых ранних и последних дат с помощью функций
Предположим, вы хотите узнать самую раннюю дату и самую позднюю дату в диапазоне A1: D7, см. Следующий снимок экрана:
1. Функция Min для поиска самой ранней даты
В пустой ячейке введите формулу = MIN (A1: D7) и нажмите клавишу Enter .. Он вернет самые ранние даты в активной ячейке как можно скорее.
2. Небольшая функция для поиска самой ранней даты
Вы также можете применить формулу = МАЛЕНЬКИЙ (A1: D7,1), чтобы быстро получить самые ранние даты.
3. Функция Max для поиска последней даты
Если вы хотите узнать последние даты в диапазоне, вы можете ввести формулу = MAX (A1: D7) и нажать Enter .
4. Большая функция для поиска последней даты
Эта формула = LARGE (A1: D7,1) поможет вам быстро получить последние даты.
Найдите самые ранние и последние даты с помощью Kutools for Excel
Если у вас есть Kutools для Если установлен Excel , его инструмент S elect Cells with Max или Min Value может помочь вам быстро узнать самую раннюю дату и самые последние даты, не запоминая функции.
Kutools for Excel – Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Бесплатная пробная версия!
Kutools for Excel – объединяет более 300 дополнительных функций и инструментов для Microsoft Excel
Перейти к загрузке
Бесплатная пробная версия 60 днейПокупка
PayPal/MyCommerce
->
1. Выберите диапазон, в котором вы выберете самую последнюю или самую раннюю форму даты. В этом случае выберите диапазон A1: D7 и нажмите Kutools > Выбрать > Выбрать ячейки с максимальными или минимальными значениями.
2. Задайте настройки, как показано на следующем снимке экрана:
(1) Если вы хотите узнать последнюю дату, установите флажок Максимальное значение ; или установите флажок Минимальное значение для самой ранней даты;
(2) Установите флажок Ячейка и Только первая ячейка вариант.
3. Нажмите ОК . Тогда ячейка с последней датой или самой ранней датой в выделении будет выбрана сразу.
Kutools for Excel – включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Получить сейчас
Найдите самые ранние или самые поздние даты в каждой строке/столбце в Excel
Этот S выбирает ячейки с максимальным или минимальным значением утилиты Kutools for Excel также поддерживает простой выбор максимального или минимального значения в каждом столбце или в каждой строке. :
– включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Бесплатная пробная версия!
Kutools for Excel – объединяет более 300 дополнительных функций и инструментов для Microsoft Excel
Перейти к загрузке
Бесплатная пробная версия 60 днейПокупка
PayPal/MyCommerce
->
Выберите диапазон, который вы получите самая последняя или самая ранняя дата от и нажмите Kutools > Выбрать > Выбрать ячейки с максимальным или минимальным значением , а затем укажите параметры, как показано на скриншоте ниже:
Установите флажок Вся строка , чтобы найти последнюю дату в каждой строке:
Установите флажок Весь столбец , чтобы найти последнюю дату в каждом строка:
Kutools for Excel – включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Получить сейчас
Демо: поиск самых ранних и последних дат в диапазоне или каждой строке/столбце диапазона
Kutools for Excel включает более 300 удобных инструментов для Excel, которые можно бесплатно попробовать без ограничений в течение 30 дней. Загрузить и бесплатную пробную версию !
Легко найти максимальное/минимальное значение на основе критериев в других столбец (по группам) в Excel
Kutools for Excel Утилита Advanced Combine Rows может помочь пользователям Excel быстро определить максимальное значение минимального значения каждого элемента в другом колонка с легкостью. 30-дневная бесплатная пробная версия полнофункциональной версии!
Эта расширенная Утилита Combine Rows также может объединять строки и разделять значения по указанным меткам или объединять строки и вычислять их суммы, количество вхождений, максимальные/минимальные значения, средние значения и т. Д.
Статьи по теме:
- Выберите максимальное количество данных с помощью функции max
- Выберите максимальное значение и наименьшее значение
- Выбрать минимум данных с помощью функции min