Как найти первое значение больше определенного

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

Найдите первое или последнее значение больше определенного с помощью формул

Найти все значения больше определенного значения с помощью Kutools for Excel


Найдите первое или последнее значение больше определенного с помощью формул

Возьмите, например, следующие данные: мне нужно найти первое число в столбце A, которое больше 150.

док-первое-число-больше-1

Пожалуйста, введите эту формулу: =INDEX(A2:A16,MATCH(TRUE,INDEX(A2:A16>150,0),)) (A2: A16 диапазон данных, который вы хотите использовать, 150 — конкретное количество критериев, которое должно быть больше), а затем нажмите Enter key, вы получите первое число больше 150. Смотрите снимок экрана:

док-первое-число-больше-2

Внимание: Чтобы найти последнее число больше 150, вы должны применить эту формулу: =LOOKUP(9.999999999999E+307,IF(A2:A16>150,A2:A16)), а затем нажмите Ctrl + Shift + Enter вместе, чтобы получить правильный результат, см. снимок экрана:

док-первое-число-больше-3


Найти все значения больше определенного значения с помощью Kutools for Excel

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

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

1. Выберите значения, которые хотите найти.

2. Затем нажмите Кутулс > Выберите > Выбрать определенные ячейки, см. снимок экрана:

3. В Выбрать определенные ячейки диалоговое окно, выберите Ячейка из Тип выбора, затем выберите критерий — Больше под Конкретный тип, и введите номер, по которому вы хотите найти ячейки, см. снимок экрана:

док-первое-число-больше-5

4. Затем нажмите Ok or Применить Кнопка, все числа, превышающие ваше конкретное значение, выбираются сразу. Смотрите скриншот:

док-первое-число-больше-6

Скачать и бесплатную пробную версию Kutools for Excel Сейчас !


Демонстрация: найти все значения больше определенного значения с помощью Kutools for 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)


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

 

Здравствуйте, подскажите пож-та как найти в массиве чисел первое число больше заданного в данном случае больше 7, то есть в жёлтой ячейке должно появиться 11. Формула должна быть прописана в одной ячейке, то есть создание дополнительного столбца в котором будет производиться сравнение числа 7 с каждым числом в массиве не допустимо.

 

buchlotnik

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

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

Excel 365 Бета-канал

как-то так

Соблюдение правил форума не освобождает от модераторского произвола
<#0>

 

Mershik

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

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

buchlotnik, ГЕНИАЛЬНО!  8)  

Не бойтесь совершенства. Вам его не достичь.

 

buchlotnik,спасибо, а как вы так быстро нашли решение? и как вы к нему пришли?

 

buchlotnik

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

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

Excel 365 Бета-канал

#5

16.05.2020 11:15:22

Цитата
Бедный Йорик написал:
как вы так быстро нашли решение

знал, что искать;
а вам настоятельно рекомендую

правила

, если сразу намек не ясен — здесь не форум по фотошопу

Соблюдение правил форума не освобождает от модераторского произвола
<#0>

 

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

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

  • Книга1.xls (26.5 КБ)

 

buchlotnik

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

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

Excel 365 Бета-канал

#7

16.05.2020 11:35:38

массивка

Код
=ИНДЕКС(A:A;МИН(ЕСЛИ(A4:A13>C3;СТРОКА(A4:A13);"")))

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

  • Книга1.xls (27 КБ)

Соблюдение правил форума не освобождает от модераторского произвола
<#0>

 

Mershik

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

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

Бедный Йорик,а искомое число всегда есть в списке?

Не бойтесь совершенства. Вам его не достичь.

 

buchlotnik,спасибо вроде подходит, а может быть решение без формулы массива? Спасибо что написали формулу а то у меня всё время как в скриншоте ниже.

Mershik,нет искомое число не всегда присутствует, тогда можно заменить ошибку на 0

 

Mershik

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

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

#10

16.05.2020 12:14:52

Бедный Йорик, ну тогда формулу предложенную

Цитата
buchlotnik написал:
=ИНДЕКС(A:A;МИН(ЕСЛИ(A4:A13>C3;СТРОКА(A4:A13);»»)))

берите и все

или может эта подойдет

Код
=ИНДЕКС(A:A;АГРЕГАТ(15;6;СТРОКА(A:A)/(A:A>C3);1))

Изменено: Mershik16.05.2020 12:18:46

Не бойтесь совершенства. Вам его не достичь.

 

Mershik,большое спасибо, ваша формула тоже подходит и без массива.  

 

БМВ

Модератор

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

Excel 2013, 2016

#12

16.05.2020 13:49:57

Обращаю внимание

Цитата
Бедный Йорик написал:
Поиск позиции числа больше или меньше заданного

ответ 1 и это 5. Даже если после 7 то ответ 5 и это 4 .
11 это и не позция и домысленное что надо было больше.

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

 

цитирование — не бездумное копирование [МОДЕРАТОР]

БМВ, ну возможно я немного неточно сформулировал задачу относительно указанной темы. В названии темы речь о позиции, а не о самом значении, а в задаче я написал значение, мне без разницы, перевести одно в другое несложно, что касается больше или равно в названии темы то я имел ввиду две разные задачи то есть речь не шла про неравенство заданному числу. То есть есть меня просто не устраивала функция ПОИСКПОЗ потому что она ищет позицию заданного числа, а мне надо было найти число больше заданного(или его позицию), аналогично может потребоваться найти число меньше заданного.

Изменено: Бедный Йорик16.05.2020 15:19:18

 

С.М.

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

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

 

С.М.,Возможно я чего то не понимаю но почему при Y > X получается 8,  а при Y < X получается 6 ? Почему не 7 и 1? И почему когда я меняю числа в массиве то результат не меняется? может это не автоматически пересчитывается?

 

С.М.

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

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

#16

16.05.2020 18:53:57

Бедный Йорик

,
1. 7 = 7 , а не 7 < 7
2. 1 (единичка) — нет в массиве
3. Например, в моём примере, вместо 8 вставьте 9 или 10, изменится результат ?
4. я, наверное, не верно понял задумку, считая, что
надо найти ближайшее к 7 из всех больших (меньших) этого числа из диапазона массива, тогда сорри,

Цитата
Бедный Йорик написал #9:
buchlotnik ,спасибо вроде подходит, а может быть решение без формулы массива?

а Вам трудно нажать одновременно три клавиши: Ctrl+Shift+Enter ?

 

jakim

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

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

#17

16.05.2020 19:17:26

Большее

Код
=AGGREGATE(15;6;A4:A13/(A4:A13>C3);1)

Меньшее

Код
=AGGREGATE(14;6;A4:A13/(A4:A13<C3);1)
 

Бедный Йорик

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

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

#18

16.05.2020 19:24:15

Цитата
С.М. написал:
4. я, наверное, не верно понял задумку,

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

Цитата
С.М. написал:
2. 1 (единичка) — нет в массиве

Я не правильно понял, я подумал что в жёлтых ячейках номера строк а не сами значения

Цитата
С.М. написал:
а Вам трудно нажать одновременно три клавиши: Ctrl+Shift+Enter ?

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

 

БМВ

Модератор

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

Excel 2013, 2016

для прикола
=VLOOKUP(1=1;CHOOSE({12};INDEX(A4:A13>C3;);A4:A13);2;)

Изменено: БМВ16.05.2020 20:31:11

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

 

С.М.

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

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

#20

16.05.2020 20:45:46

Кроме массивных ничего придумать не смог:

Код
=ИНДЕКС($A$4:$A$13;ПОИСКПОЗ(1;--($A$4:$A$13>$C$3);))
Код
=ИНДЕКС($A$4:$A$13;ПОИСКПОЗ(1;--($A$4:$A$13<$C$3);))

Для наглядности нарисовал процесс (см. файл)

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

  • Больше-Меньше(2).xls (36 КБ)

 

Бедный Йорик

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

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

#21

17.05.2020 12:26:10

jakim,сначала подумал что это такая же формула как предложил Mershik, но только короче, но потом понял что она ищет максимально приближенное значение к заданному, а не первое больше заданного, всё равно спасибо.

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

Цитата
БМВ написал:
=VLOOKUP(1=1;CHOOSE({12};INDEX(A4:A13>C3;);A4:A13);2;)

Эксель выдаёт ошибку, поменял функции на русский всё равно ошибка, а что означает {12} ? вроде Эксель на него указывает

 

БМВ

Модератор

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

Excel 2013, 2016

#22

17.05.2020 13:20:43

Цитата
Бедный Йорик написал:
поменял функции на русский всё равно ошибка,

значит не все переведено корректно
за одно и добавил вариант немассивной от С.М.,

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

  • example1705.xlsx (12.88 КБ)

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

 

jakim

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

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

#23

17.05.2020 13:21:21

Самые точные значения возвращают формулы с массивным вводом
Большее

Код
 =SMALL(IF(A4:A27>C3;A4:A27);1)

Меньшее

Код
=LARGE(IF(A4:A27<C3;A4:A27);1)
 

БМВ

Модератор

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

Excel 2013, 2016

#24

17.05.2020 13:26:44

Цитата
jakim написал:
Самые точные значения

ну это как посмотреть.  Оно возвращает наименьшее больше чем или наибольшее меньше чем. А далее возникает вопрос и к названию темы  которая так и не получиланазвания нормального , да и  

Цитата
Бедный Йорик написал:
я имел ввиду перебирая по порядку числа в массиве найти первое число которое больше заданного не зависимо от того насколько оно больше

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

 

vikttur

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

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

#25

17.05.2020 13:31:40

Цитата
БМВ написал: вопрос и к названию темы  которая так и не получиланазвания нормального

Тема о чем?

 

БМВ

Модератор

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

Excel 2013, 2016

vikttur, Если что, я в очереди только 4й :-)

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

 

vikttur

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

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

Мог бы не лениться и блеснуть умом, не ожидая первых :)

 

БМВ

Модератор

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

Excel 2013, 2016

#28

17.05.2020 14:09:12

Цитата
vikttur написал:
блеснуть умом

чем блеснуть?  :D . А это курится?

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

 

vikttur

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

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

Значит, и Йорик бедный, а БМВ :)

Бедный Йорик, предложите название темы, отражающее задачу. Заменят модераторы

 

buchlotnik

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

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

Excel 365 Бета-канал

#30

17.05.2020 14:45:04

Лично я искал

Цитата
Бедный Йорик написал:
в массиве чисел первое число больше заданного

вроде как тема про это: Найти в массиве первое число больше  заданного

Соблюдение правил форума не освобождает от модераторского произвола
<#0>


Найти, например, второе наибольшее значение в списке можно с помощью функции

НАИБОЛЬШИЙ()

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

Пусть имеется таблица с двумя столбцами: текстовым и числовым (см.

файл примера

).

Для удобства создадим два

именованных диапазона

:

Текст

(

A

3:

A

27

) и

Числа

(

B3:B27

).


СОВЕТ:

Создание формул для определения минимального и максимального значения с учетом условий рассмотрено в статье

Максимальный и Минимальный по условию в MS EXCEL

.

Определение наибольшего значения с единственным критерием

Найдем с помощью

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

второе наибольшее значение среди тех чисел, которые соответствуют значению

Текст2

(находится в ячейке

Е6

) :

=

НАИБОЛЬШИЙ(ЕСЛИ(Текст=E6;Числа);2)

или так

=

НАИБОЛЬШИЙ(ЕСЛИ(Текст=»Текст2″;Числа);2)

После набора формулы не забудьте вместо

ENTER

нажать

CTRL+SHIFT+ENTER

.

Чтобы разобраться в работе формулы, выделите в

Строке формул

выражение

ЕСЛИ(Текст=E6;Числа)

и нажмите

клавишу

F9

. Выделенная часть формулы будет заменена на результат, т.е. на

массив значений

:

{ЛОЖЬ:-95:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:-66:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:-20:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ: 0:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:4:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:9:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ}

Значение ЛОЖЬ соответствует строкам, в которых в столбце Текст нет значения

Текст2.

В противном случае выводится само число. Т.к. функция

НАИБОЛЬШИЙ()

игнорирует текстовые значения и значения ЛОЖЬ и ИСТИНА, то 2-е наибольшее будет искаться только среди чисел -95; -66; -20; 0; 4; 9. Результат: 4.


СОВЕТ:

Задачу можно решить без использования

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

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

НАИБОЛЬШИЙ()

, определить нужное значение.

Определение наименьшего значения с несколькими критериями

Теперь найдем 3-е наименьшее значение среди тех чисел, которые соответствуют сразу 2-м критериям.

Пусть имеется таблица с тремя столбцами: Название фрукта, Поставщик и Количество.

Таблицу критериев разместим правее таблицы с данными.

Найдем 3-е наименьшее значение среди чисел, находящихся в строках, для которых Название фрукта =

Яблоко,

а Поставщик =

ООО Рога

с помощью

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

:

=НАИМЕНЬШИЙ(ЕСЛИ(($A$32:$A$42=E32)*($B$32:$B$42=F32);$C$32:$C$42);3)

или так


=НАИМЕНЬШИЙ(ЕСЛИ(($A$32:$A$42=»Яблоко»)*($B$32:$B$42=»ООО Рога»);$C$32:$C$42);3)

После набора формулы не забудьте вместо

ENTER

нажать

CTRL+SHIFT+ENTER

.

Если ни одна запись в таблице не удовлетворяет одновременно двум критериям (Условие И), то формула возвращает значение ошибки #ЧИСЛО!


СОВЕТ:

Создание формул с множественными критериями подробно рассмотрено в разделах

Сложения

и

Подсчета значений

.

Skip to content

ИНДЕКС ПОИСКПОЗ как лучшая альтернатива ВПР

В этом руководстве показано, как использовать ИНДЕКС и ПОИСКПОЗ в Excel и чем они лучше ВПР.

В нескольких недавних статьях мы приложили немало усилий, чтобы объяснить основы функции ВПР новичкам и предоставить более сложные примеры формул ВПР опытным пользователям. А теперь я постараюсь если не отговорить вас от использования ВПР, то хотя бы показать вам альтернативный способ поиска нужных значений в Excel.

  • Краткий обзор функций ИНДЕКС и ПОИСКПОЗ
  • Как использовать формулу ИНДЕКС ПОИСКПОЗ
  • ИНДЕКС+ПОИСКПОЗ вместо ВПР?
  • Поиск справа налево
  • Двусторонний поиск в строках и столбцах
  • ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям
  • Как найти среднее, максимальное и минимальное значение
  • Что делать с ошибками поиска?

Для чего это нужно? Потому что функция ВПР имеет множество ограничений, которые могут помешать вам получить желаемый результат во многих ситуациях. С другой стороны, комбинация ПОИСКПОЗ ИНДЕКС более гибкая и имеет много замечательных возможностей, которые во многих отношениях превосходят ВПР.

Функции Excel ИНДЕКС и ПОИСКПОЗ — основы

Поскольку целью этого руководства является демонстрация альтернативного способа выполнения поиска в Excel с использованием комбинации функций ИНДЕКС и ПОИСКПОЗ, мы не будем подробно останавливаться на их синтаксисе и использовании. Тем более, что это подробно рассмотрено в других статьях, ссылки на которые вы можете найти в конце этого руководства. Мы рассмотрим лишь минимум, необходимый для понимания общей идеи, а затем подробно рассмотрим примеры формул, раскрывающие все преимущества использования ПОИСКПОЗ и ИНДЕКС вместо ВПР.

Функция ИНДЕКС

Функция ИНДЕКС (в английском варианте – INDEX) возвращает значение в массиве на основе указанных вами номеров строк и столбцов. Синтаксис функции ИНДЕКС прост:

ИНДЕКС(массив,номер_строки,[номер_столбца])

Вот простое объяснение каждого параметра:

  • массив — это диапазон ячеек, именованный диапазон или таблица.
  • номер_строки — это номер строки в массиве, из которого нужно вернуть значение. Если этот аргумент опущен, требуется следующий – номер_столбца.
  • номер_столбца — это номер столбца, из которого нужно вернуть значение. Если он опущен, требуется номер_строки.

Дополнительные сведения см. в статье Функция ИНДЕКС в Excel .

А вот пример формулы ИНДЕКС в самом простом виде:

=ИНДЕКС(A1:C10;2;3)

Формула выполняет поиск в ячейках с A1 по C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, т. е. в ячейке C2.

Очень легко, правда? Однако при работе с реальными данными вы вряд ли когда-нибудь будете заранее знать, какие строки и столбцы вам нужны. Здесь вам пригодится ПОИСКПОЗ.

Функция ПОИСКПОЗ

Она ищет нужное значение в диапазоне ячеек и возвращает относительное положение этого значения в диапазоне.

Синтаксис функции ПОИСКПОЗ следующий:

ПОИСКПОЗ(искомое_значение, искомый_массив, [тип_совпадения])

  • искомое_значение — числовое или текстовое значение, которое вы ищете.
  • диапазон_поиска — диапазон ячеек, в которых будем искать.
  • тип_совпадения — указывает, следует ли искать точное соответствие или наиболее близкое совпадение:
    • 1 или опущено — находит наибольшее значение, которое меньше или равно искомому значению. Требуется сортировка массива поиска в порядке возрастания.
    • 0 — находит первое значение, точно равное искомому значению. В комбинации ИНДЕКС/ПОИСКПОЗ вам почти всегда нужно точное совпадение, поэтому вы чаще всего устанавливаете третий аргумент вашей функции в 0.
    • -1 — находит наименьшее значение, которое больше или равно искомому значению. Требуется сортировка массива поиска в порядке убывания.

Например, если диапазон B1:B3 содержит значения «яблоки», «апельсины», «лимоны», приведенная ниже формула возвращает число 3, поскольку «лимоны» — это третья по счету запись в этом диапазоне:

=ПОИСКПОЗ(«лимоны»;B1:B3;0)

Дополнительные сведения см . в статье Функция ПОИСКПОЗ в Excel .

На первый взгляд полезность функции ПОИСКПОЗ может показаться сомнительной. Кого волнует положение значения в диапазоне? Что мы действительно хотим определить, так это само значение.

Однако, относительная позиция искомого значения (т. е. номера строки и столбца, в которых оно находится) — это именно то, что нам нужно указать для аргументов номер_строки и номер_столбца функции ИНДЕКС. Как вы помните, ИНДЕКС может найти значение на пересечении заданной строки и столбца, но сама не может определить, какую именно строку и столбец ей нужно выбрать.

Вот поэтому совместное использование ИНДЕКС и ПОИСКПОЗ открывает перед нами массу возможностей для поиска в Excel.

Как использовать формулу ИНДЕКС ПОИСКПОЗ в Excel

Теперь, когда вы знаете основы, я считаю, что вы уже начали понимать, как ПОИСКПОЗ и ИНДЕКС работают вместе. Короче говоря, ИНДЕКС извлекает нужное значение по номерам столбцов и строк, а ПОИСКПОЗ предоставляет ей эти номера. Вот и все!

Для вертикального поиска вы используете функцию ПОИСКПОЗ только для определения номера строки, указывая диапазон столбцов непосредственно в самой формуле:

ИНДЕКС ( столбец для возврата значения ; ПОИСКПОЗ ( искомое значение ; столбец для поиска ; 0))

Все еще не совсем понимаете эту логику? Возможно, будет проще разобрать на примере. Предположим, у вас есть список национальных столиц и их население:

Чтобы найти население определенной столицы, скажем, Индии, используйте следующую формулу ПОИСКПОЗ ИНДЕКС:

=ИНДЕКС(C2:C10; ПОИСКПОЗ(“Индия”;A2:A10;0))

Теперь давайте проанализируем, что на самом деле делает каждый компонент этой формулы:

  • Функция ПОИСКПОЗ ищет искомое значение «Индия» в диапазоне A2:A10 и возвращает число 2, поскольку это слово занимает второе место в массиве поиска.
  • Этот номер поступает непосредственно в аргумент номер_строки функции ИНДЕКС, предписывая вернуть значение из этой строки.

Таким образом, приведенная выше формула превращается в ИНДЕКС(C2:C10;2), которая означает, что нужно искать в ячейках от C2 до C10 и извлекать значение из второй ячейки в этом диапазоне, то есть из C3, потому что мы начинаем отсчет со второй строки.

Но указывать название города в формуле не совсем правильно, так как для каждого нового поиска придется корректировать эту формулу. Введите его в какую-нибудь отдельную ячейку, скажем, F1, укажите ссылку на ячейку для ПОИСКПОЗ, и вы получите формулу динамического поиска:

=ИНДЕКС(C2:C10;ПОИСКПОЗ(F1;A2:A10;0))

Важное замечаниеКоличество строк в аргументе массив функции ИНДЕКС должно совпадать с количеством строк в аргументе просматриваемый_массив в ПОИСКПОЗ, иначе формула выдаст неверный результат.

Вы спросите: «А почему бы нам просто не использовать обычную формулу ВПР? Какой смысл тратить время на то, чтобы разобраться в хитросплетениях ИНДЕКС ПОИСКПОЗ в Excel?»

Вот как это будет выглядеть:

=ВПР(F1; A2:C10; 3; 0)

Конечно, так проще. Но этот наш элементарный пример предназначен только для демонстрационных целей, чтобы вы поняли, как именно функции ИНДЕКС и ПОИСКПОЗ работают вместе. Действительно, ВПР была бы здесь более уместна. Другие примеры, которые вы найдёте ниже, покажут вам реальную силу этой комбинации, которая легко справляется со многими сложными задачами, когда ВПР будет бессильна.

ИНДЕКС+ПОИСКПОЗ вместо ВПР?

Решая, какую функцию использовать для вертикального поиска, большинство знатоков Excel сходятся во мнении, что ПОИСКПОЗ+ИНДЕКС намного лучше, чем ВПР. Однако многие до сих пор остаются с ВПР, во-первых, потому что это проще, а, во-вторых, потому что они не до конца понимают все преимущества использования формулы ПОИСКПОЗ ИНДЕКС в Excel. Без такого понимания никто не захочет тратить свое время на изучение более сложного синтаксиса.

Ниже я укажу на ключевые преимущества ИНДЕКС ПОИСКПОЗ перед ВПР, а уж вам решать, является ли это достойным дополнением к вашему арсеналу знаний в Excel.

4 основные причины использовать ИНДЕКС ПОИСКПОЗ вместо ВПР

  1. Поиск справа налево. Как известно любому образованному пользователю, ВПР не может искать влево. Это означает, что искомое значение всегда должно находиться в крайнем левом столбце таблицы. А извлекать нужное значение мы будем из столбца, который находится правее. ИНДЕКС+ПОИСКПОЗ может легко выполнять поиск влево! Здесь это показано в действии: Как выполнить поиск значения слева в Excel .
  2. Можно безопасно вставлять или удалять столбцы. Формулы ВПР не работают или выдают неверные результаты, когда новый столбец удаляется из таблицы поиска или добавляется в нее, поскольку синтаксис ВПР требует указания порядкового номера столбца, из которого вы хотите извлечь данные. Естественно, когда вы добавляете или удаляете столбцы, этот номер в формуле автоматически не меняется, а нужный столбец уже оказывается на новом месте.

С функциями ИНДЕКС и ПОИСКПОЗ вы указываете диапазон возвращаемых столбцов, а не номер одного из них. В результате вы можете вставлять и удалять столько столбцов, сколько хотите, не беспокоясь об обновлении каждой связанной с ними формулы.

  1. Нет ограничений на размер искомого значения. При использовании функции ВПР общая длина ваших критериев поиска не может превышать 255 символов, иначе вы получите ошибку #ЗНАЧ!. Таким образом, если ваш набор данных содержит длинные строки, ИНДЕКС ПОИСКПОЗ — единственное работающее решение.
  2. Более высокая скорость обработки. Если ваши таблицы относительно небольшие, вряд ли будет какая-то существенная разница в производительности Excel. Но если ваши рабочие листы содержат сотни или тысячи строк и, следовательно, сотни или тысячи формул, ИНДЕКС ПОИСКПОЗ будет работать намного быстрее, чем ВПР. Причина в том, что Excel будет обрабатывать только столбцы поиска и возврата, а не весь массив таблицы.

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

ИНДЕКС ПОИСКПОЗ в Excel – примеры формул

Уяснив, почему все же стоит изучать ИНДЕКС ПОИСКПОЗ, давайте перейдем к самому интересному и посмотрим, как можно применить теоретические знания на практике.

Формула для поиска справа налево

Как уже упоминалось, ВПР не может получать значения слева от столбца поиска. Таким образом, если ваши значения поиска не находятся в самом левом столбце, нет никаких шансов, что формула ВПР принесет вам желаемый результат. Функция ПОИСКПОЗ ИНДЕКС в Excel более универсальна и не имеет особого значения, где расположены столбцы поиска и возврата.

Для этого примера мы добавим столбец «Ранг» слева от нашей основной таблицы и попытаемся выяснить, какое место занимает столица России по численности населения среди других перечисленных  столиц.

Записав искомое значение в G1, используйте следующую формулу для поиска в C2:C10 и возврата соответствующего значения из A2:A10:

=ИНДЕКС(A2:A10; ПОИСКПОЗ(G1;C2:C10;0))

СоветЕсли вы планируете использовать формулу ПОИСКПОЗ ИНДЕКС более чем для одной ячейки, обязательно зафиксируйте оба диапазона абсолютными ссылками  (например, $A$2:$A$10 и $C$2:$C$10), чтобы они не изменялись при копировании формулы.

Двусторонний поиск в строках и столбцах

В приведенных выше примерах мы использовали ИНДЕКС ПОИСКПОЗ вместо классической функции ВПР, чтобы вернуть значение из точно указанного столбца. Но что, если вам нужно искать в нескольких строках и столбцах? То есть, сначала нужно найти подходящий столбец, а уж потом извлечь из него значение? Другими словами, что, если вы хотите выполнить так называемый матричный или двусторонний поиск?

Это может показаться сложным, но формула очень похожа на базовую функцию ПОИСКПОЗ ИНДЕКС в Excel, но с одним отличием. 

Просто используйте две функции ПОИСКПОЗ, вложенных друг в друга: одну – для получения номера строки, а другую – для получения номера столбца. 

ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))

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

С целевой страной в G1 (значение_поиска1) и целевым годом в G2 (значение_поиска2) формула принимает следующий вид:

=ИНДЕКС(B2:D11; ПОИСКПОЗ(G1;A2:A11;0); ПОИСКПОЗ(G2;B1:D1;0))

Как работает эта формула?

Всякий раз, когда вам нужно понять сложную формулу Excel, разделите ее на более мелкие части и посмотрите, что делает каждая отдельная функция:

ПОИСКПОЗ(G1;A2:A11;0); – ищет в A2:A11 значение из ячейки G1 («США») и возвращает его позицию, которая равна 3.

ПОИСКПОЗ(G2;B1:D1;0) – просматривает диапазон B1:D1, чтобы получить позицию значения из ячейки G2 («2015»), которая равна 3.

Найденные выше номера строк и столбцов становятся соответствующими аргументами функции ИНДЕКС:

ИНДЕКС(B2:D11, 3, 3)

В результате вы получите значение на пересечении 3-й строки и 3-го столбца в диапазоне B2:D11, то есть из D4. Несложно? 

ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям

Если у вас была возможность прочитать наши материалы по ВПР в Excel, вы, вероятно, уже протестировали формулу для ВПР с несколькими условиями . Однако существенным недостатком этого подхода является необходимость добавления вспомогательного столбца. Хорошей новостью является то, что функция ПОИСКПОЗ ИНДЕКС в Excel также может выполнять поиск по нескольким условиям без изменения или реструктуризации исходных данных!

Вот общая формула ИНДЕКС ПОИСКПОЗ с несколькими критериями:

{=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}

Примечание. Это формула массива , которую необходимо вводить с помощью сочетания клавиш Ctrl + Shift + Enter.

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

Следующая формула ИНДЕКС ПОИСКПОЗ отлично работает:

=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; (F1=A2:A10) * (F2=B2:B10); 0))

Где C2:C10 — это диапазон, из которого возвращается значение, F1 — это критерий1, A2:A10 — это диапазон для сравнения с критерием 1, F2 — это критерий 2, а B2:B10 — это диапазон для сравнения с критерием 2.

Не забудьте правильно ввести формулу, нажав Ctrl + Shift + Enter, и Excel автоматически заключит ее в фигурные скобки, как показано на скриншоте ниже:

Рис5

Если вы не хотите использовать формулы массива, добавьте в формулу в F4 еще одну функцию ИНДЕКС и завершите ее ввод обычным нажатием Enter:

=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; ИНДЕКС((F1=A2:A10) * (F2=B2:B10); 0; 1); 0))

Разберем пошагово, как это работает.

Здесь используется тот же подход, что и в обычном сочетании ИНДЕКС ПОИСКПОЗ, где просматривается один столбец. Чтобы оценить несколько критериев, вы создаете два или более массива значений ИСТИНА и ЛОЖЬ, которые представляют совпадения и несовпадения для каждого отдельного критерия, а затем перемножаете соответствующие элементы этих массивов. Операция умножения преобразует ИСТИНА и ЛОЖЬ в 1 и 0 соответственно и создает массив, в котором единицы соответствуют строкам, которые удовлетворяют всем условиям. Функция ПОИСКПОЗ со значением поиска 1 находит первую «1» в массиве и передает ее позицию в ИНДЕКС, которая возвращает значение в этой позиции из указанного столбца.

Вторая формула без массива основана на способности функции ИНДЕКС работать с массивами. Второй вложенный ИНДЕКС имеет 0 в номер_строки , так что он будет передавать весь массив столбцов в ПОИСКПОЗ.

Среднее, максимальное и минимальное значение при помощи ИНДЕКС ПОИСКПОЗ

Microsoft Excel имеет специальные функции для поиска минимального, максимального и среднего значения в диапазоне. Но что, если вам нужно получить значение из другой ячейки, связанной с этими значениями? Например,  получить название города с максимальным населением или узнать товар с минимальными продажами? В этом случае используйте функцию МАКС , МИН или СРЗНАЧ вместе с ИНДЕКС ПОИСКПОЗ.

Максимальное значение.

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

=ИНДЕКС(B2:B10; ПОИСКПОЗ(МАКС(C2:C10); C2:C10; 0))

Скриншот с примером находится чуть ниже.

Минимальное значение

Теперь найдём город с самым маленьким населением в списке. Чтобы найти наименьшее число в столбце С и получить соответствующее ему значение из столбца В:

=ИНДЕКС(B2:B10; ПОИСКПОЗ(МИН(C2:C10); C2:C10; 0))

Ближайшее к среднему

Теперь мы находим город, население которого наиболее близко к среднему значению. Чтобы вычислить позицию, наиболее близкую к среднему значению показателя, рассчитанному из D2:D10, и получить соответствующее значение из столбца C, используйте следующую формулу:

=ИНДЕКС(B2:B10; ПОИСКПОЗ(СРЗНАЧ(C2:C10); C2:C10; -1 ))

В зависимости от того, как организованы ваши данные, укажите 1 или -1 для третьего аргумента (тип_совпадения) функции ПОИСКПОЗ:

  • Если ваш столбец поиска (столбец D в нашем случае) отсортирован по возрастанию , поставьте 1. Формула вычислит наибольшее значение, которое меньше или равно среднему значению.
  • Если ваш столбец поиска отсортирован по убыванию , введите -1. Формула вычислит наименьшее значение, которое больше или равно среднему значению.
  • Если ваш массив поиска содержит значение , точно равное среднему, вы можете ввести 0 для точного совпадения. Никакой сортировки не требуется.

В нашем примере данные в столбце D отсортированы в порядке убывания, поэтому мы используем -1 для типа соответствия. В результате мы получаем «Токио», так как его население (13 189 000) является ближайшим, превышающим среднее значение (12 269 006).

Что делать с ошибками поиска?

Как вы, наверное, заметили, если формула ИНДЕКС ПОИСКПОЗ в Excel не может найти искомое значение, она выдает ошибку #Н/Д. Если вы хотите заменить это стандартное сообщение чем-то более информативным, оберните формулу ПОИСКПОЗ ИНДЕКС в функцию ЕСНД . Например:

=ЕСНД(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Не найдено»)

И теперь, если кто-то вводит значение, которое не существует в диапазоне поиска, формула явно сообщит пользователю, что совпадений не найдено:

Если вы хотите перехватывать все ошибки, а не только #Н/Д, используйте функцию ЕСЛИОШИБКА вместо ЕСНД:

=ЕСЛИОШИБКА(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Что-то пошло не так!»)

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

Итак, еще раз об основных преимуществах формулы ИНДЕКС ПОИСКПОЗ.

  • Возможен ли «левый» поиск?

  • Повлияет ли на результат вставка и удаление столбцов?

    Вы можете вставлять и удалять столько столбцов, сколько хотите. На результат ИНДЕКС ПОИСКПОЗ это не повлияет.

  • Возможен ли поиск по строкам и столбцам?

    Можно сначала найти подходящий столбец, а уж потом извлечь из него значение. Общий вид формулы:
    ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))
    Подробную инструкцию смотрите здесь.

  • Как сделать поиск ИНДЕКС ПОИСКПОЗ по нескольким условиям?

    Можно выполнять поиск по двум или более условиям без добавления дополнительных столбцов. Вот формула массива, которая решит проблему:
    {=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}

Вот как можно использовать ИНДЕКС и ПОИСКПОЗ в Excel. Я надеюсь, что наши примеры формул окажутся полезными для вас.

Вот еще несколько статей по этой теме:

Функции МАКС и МИН прекрасно подходят для поиска наибольшего и наименышего значения в диапазоне данных. Но если нужно найти несколько максимальных или минимальных значений для этой задачи Excel предлагает несколько интересных функций: НАИБОЛЬШИЙ, НАИМЕНЬШИЙ, РАНГ и РАНГ.СР.

Пример выборки нескольких наибольших значений в Excel

Ниже на рисунке представлены результаты турниру по боулингу. Участники в турнирной таблице должны быть отсортированы по возрастанию по имени. Сложно проверить, который из них является победителем. Допустим нам необходимо узнать, которые участники заняли первые 3 места и какие их результаты. Ниже указанная формула, которая возвращает третье наибольшее число со списка результатов:

выборка нескольких наибольших значений.

В формуле использованной для поиска имени участника используется комбинация функций ИНДЕКС и ПИСКПОЗ:

функции ИНДЕКС и ПИСКПОЗ.

Функция НАИБОЛЬШИЙ и НАИМЕНЬШИЙ используются для поиска порядкового наибольшего и наименьшего значения в списке данных. В первом аргументе функции НАИБОЛЬШИЙ, как и в функции МАКС указывается ссылка на исходный диапазон просматриваемых значений. Однако отличие между ними заключается в том, что функция НАИБОЛЬШИЙ имеет еще один обязательный для заполнения аргумент «К» в котором можно указать порядковый номер возвращаемого наибольшего значения (второе наибольшее, третье… и т.д.).

Если исходный диапазон данных содержит одинаковые максимальные значения, тогда функция НАИБОЛЬШИЙ и НАИМЕНЬШИЙ возвращает тот самый результат для порядковых максимальных и минимальных значений (K и K+1). Например, если бы два участника получили одинаковый результат по 588 пунктов каждый, тогда формулы =НАИБОЛЬШИЙ($B$2:$B$13;1) и =НАИБОЛЬШИЙ($B$2:$B$13;2) возвращали бы одно и тоже число 558.

В ячейке E2 используется функция СТРОКА(A1) определяющая значение аргумента «К». Функция строка возвращает номер строки листа для ячейки, указанной в аргументе – в данном примере строка №1. Как второй аргумент функции НАИБОЛЬШИЙ можно было бы просто указать число 1, однако благодаря функции СТРОКА(A1) номер строки листа будет увеличиваться автоматически во время копирования формулы в очередные ячейки в низ от начальной. Ссылка на ячейку A1 является относительной, когда потом формула будет скопирована в ячейку E3, функция будет уже иметь следующий вид: СТРОКА(A2). С таким аргументом функция уже будет возвращать значение 2, а функция НАИБОЛЬШИЙ в ячейке E3 возвратит второе наибольшее значение из столбца «Результат» в исходном списке данных.



Формула ранжирования в Excel для выборки наибольших значений

В данном примере принципиальным является использование функции НАИБОЛЬШИЙ, так как мы анализируем результаты игры в боулинг. А в боулинге чем больше число пунктов, тем лучше результат. Если же бы мы анализировали другой вид спорта где вместо балов был список результатов времени в турнирной таблице, то в таком случае победителем будет тот участник, у которого наименьшее время. Турнирная таблица с временными результатами изображена ниже на рисунке. Таблица содержит дополнительный столбец с номером места каждого участника, а в нем использована формула следующая:

Формула ранжирования в Excel.

Чтобы узнать какое место занял участник с именем «Волчок Геннадий» необходимо заполнить аргументы для функции РАНГ. В первой ячейке следует указать время текущего участника (ползучем исходное время относительной ссылкой из ячейки B2), а во втором аргументе указать абсолютную ссылку на диапазон просматриваемых исходных значений $B$2:$B$13. В третьем аргументе указывается порядок сортировки. В данном примере это число 1, так как на первом месте должно быть наименьше время, то есть по возрастанию. Если бы на первом месте должно было бы быть наибольшее значение просматриваемого исходного диапазона ячеек, в таком случае в третьем аргументе функции РАНГ следует указывать число 0.

В отличии от функций НАИБОЛЬШИЙ и НАИМЕНЬШИЙ функция РАНГ возвращает фактический порядковый номер для каждого значения. Другими словами, функция РАНГ возвращает номер места исходного значения в списке просматриваемого диапазона, который отсортирован с учетом последнего аргумента функции. Чтобы получить не текущий номер, а значение найденной определенной ячейки следует использовать комбинацию функций ИНДЕКС и ПОИСКПОЗ, подобно как в случае с формулой, которая ищет имена участников.

Формула в ячейке F3 возвращает время участника, который занял третье место – выглядит следующим образом:

функция РАНГ.

Если просматриваемый диапазон исходных значений содержит два или более одинаковых значения, функция РАНГ два раза подряд возвращает один и тот же результат. Например, если у двоих участников одно и тоже время результата 20:35, в таком случае функция РАНГ для обоих возвращает в результате вычислений число 1. Следующее большее очередное время в списке результатов получит третье место. Ни одно значение не получит в таком случае второго места, так как два одинаковы исходных значения занимают первое и второе место в ранжировании – одновременно:

два или более одинаковых значения.

Функция РАНГ.СР для ранжирования списка с повторяющимися значениями

В программе Excel версии 2010 и старше появились две новые функции ранжирования значений: РАНГ.РВ и РАНГ.СР, в которых по-разному решается проблема с одинаковыми значениями в диапазоне ячеек. Формула РАНГ.РВ – это аналог функции РАНГ, она возвращает тот же самый результат при таких же условиях с теми же самыми одинаковыми ячейками. А вот функция РАНГ.СР возвращает средний результат вычисления для всех одинаковых значений.

Допустим в таблице находятся результаты четырех участников с одинаковым вторым наименьшим показателем времени 21:38:

Функция РАНГ.СР в Excel.

Для наилучшего времени в данной таблице функция РАНГ.СР естественно возвращает номер 1, а для четырех последующих наилучших показателей времени возвращено дробное значение 3,5. Эти четыре участника одновременно занимают места: 2, 3, 4 и 5, в итоге все места разделены между ними поровну, поэтому каждый участник получил по 3,5 балла. То есть 2+3+4+5/4=3,5.

Понравилась статья? Поделить с друзьями:
  • Вы не сможете искать игру еще s1 дота 2 как исправить
  • Как найти список ветеранов вов
  • Ошибка в чеке онлайн кассы как исправить
  • Как найти бабку гренни майнкрафт
  • Как составить уравнение реакций feoh2