Excel найти строки которых нет в другой таблице

поиск в одной таблице значений, которых нет в другой.

pavelasd

Дата: Четверг, 01.05.2014, 21:48 |
Сообщение № 1

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

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

Сообщений: 28


Репутация:

0

±

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


Excel 2010

Здравствуйте!

Мне нужно сравнить две таблицы, а именно по столбцу номер инвойса. В первой таблице нужно найти номера инвойсов, которых нет во второй таблице и эти отсутствующие номера каким-то образом выделить из всех остальных, быть может сделать так, что они выделятся в отдельную таблицу, или же просто чтобы после последнего столбца первой таблицы любой символ, т.е. в следующем столбце после последнего таблицы, какой-нибудь символ стоял… Или ещё как-то… Не знаю, возможно ли так сделать, чтобы они автоматически выделились каким-то цветом, но думаю, эта была бы не подходящая идея, ведь тогда нужно было бы тупо просматривать всю таблицу и искать глазами выделенные строки, ведь по цвету сортировать нельзя, насколько я знаю.

кросс-пост: http://www.planetaexcel.ru/forum….ostform

Сообщение отредактировал pavelasdЧетверг, 01.05.2014, 22:09

 

Ответить

Pelena

Дата: Четверг, 01.05.2014, 22:33 |
Сообщение № 2

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

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

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel


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

 

Ответить

Hugo

Дата: Четверг, 01.05.2014, 22:54 |
Сообщение № 3

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

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

Сообщений: 3140


Репутация:

670

±

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


2010, теперь уже с PQ

Сортировать по цвету в экселях 2007/10 и т.д. можно, но само окрашивание происходит долго, поставить метки символом (через массив) можно намного быстрее.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

pavelasd

Дата: Четверг, 01.05.2014, 22:57 |
Сообщение № 4

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

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

Сообщений: 28


Репутация:

0

±

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


Excel 2010

что-то не получается у меня с этим макросом.

Может делаю что-то не так?

Вот, что я делаю.

Создаю следующий макрос:
[vba]

Код

Option Explicit
Option Compare Text

Sub ertert()
Dim x, i&: Application.ScreenUpdating = False
With Sheets(«Incident Management»)
x = .Range(«E1:G» & .Cells(Rows.Count, 5).End(xlUp).Row).Value
End With
With CreateObject(«Scripting.Dictionary»)
.CompareMode = 1
For i = 2 To UBound(x)
.Item(x(i, 1)) = x(i, 3)
Next i

With Sheets(«Open Incidents»)
With .Range(«D1:G» & .Cells(Rows.Count, 4).End(xlUp).Row)
x = .Value
.Columns(4).Offset(1).Interior.Color = xlNone
End With
.Activate
End With

For i = 2 To UBound(x)
If .Exists(x(i, 1)) Then
If .Item(x(i, 1)) <> x(i, 4) Then Cells(i, 7).Interior.ColorIndex = 45
End If
Next i
End With
Application.ScreenUpdating = True
End Sub

[/vba]

Потом, чтоб я не выделил и когда б я не попытался выполнить его, получаю следующее сообщение:

Run-time error ‘9’:

Subscript out of range

Contnue End Debug Help

При чём кнопка «Continue» не активна.

Сообщение отредактировал Serge_007Четверг, 01.05.2014, 23:00

 

Ответить

Hugo

Дата: Четверг, 01.05.2014, 23:55 |
Сообщение № 5

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

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

Сообщений: 3140


Репутация:

670

±

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


2010, теперь уже с PQ

У всех получается, у Вас нет. Значит явно что-то делаете не так…


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

pavelasd

Дата: Четверг, 01.05.2014, 23:56 |
Сообщение № 6

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

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

Сообщений: 28


Репутация:

0

±

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


Excel 2010

так что же всё таки не так? Я вот написал, как я делаю.
Да и вообще, как там таблицы то определить, которые я собираюсь сравнить?

Сообщение отредактировал pavelasdЧетверг, 01.05.2014, 23:57

 

Ответить

Hugo

Дата: Пятница, 02.05.2014, 00:06 |
Сообщение № 7

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

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

Сообщений: 3140


Репутация:

670

±

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


2010, теперь уже с PQ

Покажете таблицы — расскажем как.
А так — по данным таблиц, как же иначе…
Ну разве что явно указать — обрабатываем вот конкретно эти диапазоны.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

pavelasd

Дата: Пятница, 02.05.2014, 02:44 |
Сообщение № 8

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

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

Сообщений: 28


Репутация:

0

±

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


Excel 2010

итак, показываю лист, в нём уже обе таблицы.

Мой второй вопрос ещё. Что не так у меня с формулой ВПР? Как-то ни в какую не хочет работать. Посмотрите, пожалуйста, ячейку F2. Не смотря на то, что этот номер инвойса во второй таблице есть, всё равно пишет #Н/А.
И ещё не пойму, почему у номеров инвойсов второй таблицы зелёненький уголок в верхнем левом углу ячейки. Ведь формат ячейки и информация в них такая же, как и в первой таблице у номеров инвойсов, но там нет этой зелёной штучки. Собственно в причине этого, наверное, таится и причина неправильного отображения результата формулы, так как стоит только два раза кликнуть по номеру инвойса во второй таблице, как он тут же исчезает и результат формулы становится правильным (да). Но, как понимаете при десятках тысяч позиций вариант нажатия на каждый номер — не вариант.

Сообщение отредактировал pavelasdПятница, 02.05.2014, 02:44

 

Ответить

ShAM

Дата: Пятница, 02.05.2014, 04:58 |
Сообщение № 9

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

Ранг: Старожил

Сообщений: 1347


Репутация:

249

±

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


Excel 2010

почему у номеров инвойсов второй таблицы зелёненький уголок в верхнем левом углу ячейки.

А сообщение прочитать, которое в квадратике с восклицательным знаком?

Что не так у меня с формулой ВПР? Как-то ни в какую не хочет работать.

В столбце H у Вас текст, а в В числа. Можно ВПР так использовать:

ЗЫ: А макрос, видимо, по дороге потерялся :(

Сообщение отредактировал ShAMПятница, 02.05.2014, 04:59

 

Ответить

pavelasd

Дата: Пятница, 02.05.2014, 10:44 |
Сообщение № 10

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

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

Сообщений: 28


Репутация:

0

±

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


Excel 2010

Да уж прочёл, и, выделив, весь столбец формат ячеек менял на общий, да и не только на общий, да и формат даже отдельной ячейки потом посмотреть, стоит общий. Плюс я ещё пробовал в первой таблице формат ячеек с номерами инвойсов на текстовый менять, менялось, но формула не действовала :(.

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

 

Ответить

Hugo

Дата: Пятница, 02.05.2014, 10:57 |
Сообщение № 11

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

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

Сообщений: 3140


Репутация:

670

±

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


2010, теперь уже с PQ

Точно такой же? Ну тогда ясно — нет листов
Sheets(«Incident Management»)
и
Sheets(«Open Incidents»)
Вот когда они будут — тогда и поговорим.

По поводу макросов — они «живут» и не теряются пожалуй во всех других форматах файлов Экселя. Но вот в xlsx ну никак…


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

pavelasd

Дата: Пятница, 02.05.2014, 11:34 |
Сообщение № 12

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

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

Сообщений: 28


Репутация:

0

±

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


Excel 2010

а в какое место скрипта их вписать то надо? И как мне избавиться от зелёных штучек в ячейках?

 

Ответить

Hugo

Дата: Пятница, 02.05.2014, 11:49 |
Сообщение № 13

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

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

Сообщений: 3140


Репутация:

670

±

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


2010, теперь уже с PQ

Они уже вписаны в код — такие листы нужно добавить в файл :)
Ну в общем код и файл должны подходить друг к другу!
Как убрать зелёные метки — хороший метод «текст по столбцам — готово» этому столбцу.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

ShAM

Дата: Пятница, 02.05.2014, 12:07 |
Сообщение № 14

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

Ранг: Старожил

Сообщений: 1347


Репутация:

249

±

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


Excel 2010

И как мне избавиться от зелёных штучек в ячейках?

Копируете любую ПУСТУЮ ячейку, выделяете диапазон с Вашими «зелеными человечками», Правой кнопкой мыши по диапазону — специальная вставка — сложить — ОК.

 

Ответить

pavelasd

Дата: Пятница, 02.05.2014, 13:34 |
Сообщение № 15

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

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

Сообщений: 28


Репутация:

0

±

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


Excel 2010

ShAM, это как такой метод в действие привести, я, к сожалению, таких команд не нашёл :(

 

Ответить

Hugo

Дата: Пятница, 02.05.2014, 13:50 |
Сообщение № 16

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

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

Сообщений: 3140


Репутация:

670

±

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


2010, теперь уже с PQ

Каких именно команд, и где не нашли?
Копируете, выделяете, правой кнопкой, диапазон, спецвставка, сложить… Что именно незнакомо?
А вообще мой метод проще :)


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

pavelasd

Дата: Суббота, 03.05.2014, 03:57 |
Сообщение № 17

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

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

Сообщений: 28


Репутация:

0

±

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


Excel 2010

эх, вновь проблема с функцией ВПР. Некоторые номера инвойсов, которые есть во второй таблице отмечаются в первой таблице как #Н/А, не знаю, быть может это потому, что в первой таблице этот номер инвойса встречается несколько раз, а во второй меньше раз и в первой отмечается этот номер инвойса только столько же раз, сколько он встречается во второй? как же этого избежать? Например, номер инвойса в ячейке B137403. Функция ВПР в столбце F.
К сожалению, файл весит больше 100 Kb, поэтому закинул его на файлообменник.

А вот уж нет уж. У Правил есть исключения, но только с разрешения админа. Урезайте файл. Ссылка удалена.
Кстати, вы что, хотите кинуть сюда 137 ТЫСЯЧ строк? Да еще с ВПРом? С вами все в порядке?

 

Ответить

ShAM

Дата: Суббота, 03.05.2014, 05:33 |
Сообщение № 18

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

Ранг: Старожил

Сообщений: 1347


Репутация:

249

±

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


Excel 2010

А вообще мой метод проще :)

Действительно, на пару»тырков» меньше :)
И, Игорь, спасибо, не знал этот метод. Век живи, век учись…

 

Ответить

pavelasd

Дата: Суббота, 03.05.2014, 14:26 |
Сообщение № 19

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

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

Сообщений: 28


Репутация:

0

±

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


Excel 2010

как я только не пробовал урезать так, чтоб сохранилась данная ошибка, ничего не получается. При поднятии соответствующих строк вверх, функция работает нормально. Может можно мне хотя бы на видео снять проблему и выложить здесь ссылку на видео? Или подскажите, пожалуйста, как с админом связаться, что-то я не нашёл этой возможности :(

 

Ответить

Hugo

Дата: Суббота, 03.05.2014, 16:44 |
Сообщение № 20

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

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

Сообщений: 3140


Репутация:

670

±

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


2010, теперь уже с PQ

Функция ВПР() всегда работает нормально!
Если она даёт #Н/А — значит такого значения не найдено. Разбирайтесь с своими данными — тип данных, лишние пробелы, ну или не там ищите (диапазоны).
Ну а от видео толку не будет. Ну разве что если заснимите, как обнаружили причину ошибки :)


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Хитрости »

15 Май 2011              512024 просмотров


Как найти значение в другой таблице или сила ВПР

  • Задача и её решение при помощи ВПР
  • Описание аргументов ВПР
  • Что важно всегда помнить при работе с ВПР
  • Как избежать ошибки #Н/Д(#N/A) в ВПР?
  • Как при помощи ВПР искать значение по строке, а не столбцу?
  • Решение при помощи ПОИСКПОЗ
  • Работа с критериями длиннее 255 символов
Задача и её решение при помощи ВПР

 
Если в двух словах, то ВПР позволяет сравнить данные двух таблиц на основании значений из одного столбца.
Чтобы чуть лучше понять принцип работы ВПР лучше начать с некоего практического примера. Возьмем две таблицы:
Таблицы

рис.1

На картинке выше для удобства они показаны рядом, но на самом деле могут быть расположены на разных листах и даже в разных книгах. Таблицы по сути одинаковые, но фамилии в них расположены в разном порядке, и к тому же в одной заполнены все столбцы, а во второй столбцы ФИО и Отдел. И из первой таблицы необходимо подставить во вторую дату для каждой фамилии. Для трех записей это не проблема и руками сделать — все очевидно. Но в жизни это таблицы на тысячи записей и поиск с подстановкой данных вручную может занять не один час. Вот где ВПР(VLOOKUP) будет весьма кстати. Все, что необходимо — записать в ячейку

C2

второй таблицы(туда, куда необходимо подставить даты из первой таблицы) такую формулу:

=ВПР($A2;Лист1!$A$1:$C$4;3;0)
=VLOOKUP($A2,Лист1!$A$1:$C$4,3,0)

Записать формулу можно либо непосредственно в ячейку, либо воспользовавшись диспетчером функций, выбрав в категории Ссылки и массивы(References & Arrays) функцию ВПР(VLOOKUP) и по отдельности указав нужные критерии. Теперь копируем(

Ctrl

+

C

) ячейку с формулой(С2), выделяем все ячейки столбца

С

до конца данных и вставляем(

Ctrl

+

V

).

Теперь разберем поподробнее саму функцию, её аргументы и некоторые особенности.
ВПР ищет заданное нами значение(аргумент искомое_значение) в первом столбце указанного диапазона(аргумент таблица). Поиск значения всегда происходит сверху вниз(собственно, поэтому функция и называется ВПР: Вертикальный ПРосмотр). Как только функция находит заданное значение — поиск прекращается, ВПР берет строку с найденным значением и смотрит на аргумент номер_столбца. Именно из этого столбца берётся значение, которое мы и видим как итог работы функции. Т.е. в нашем конкретном случае, для ячейки С2 второй таблицы, функция берет фамилию «Петров С.А.»(ячейка $A2 второй таблицы) и ищет её в первом столбце указанной таблицы(Лист1!$A$1:$C$4), т.е. в столбце А. Как только находит(это ячейка А3)

ВПР может вернуть только одно значений — первое, подходящее под критерий. Если искомое значение не найдено(отсутствует в таблице), то результатом функции будет ошибка #Н/Д(#N/A). Не надо этого бояться — это даже полезно. Вы точно будете знать, каких записей нет и таким образом можете сравнивать две таблицы друг с другом. Иногда получается так, что Вы видите: данные есть в обеих таблицах, но ВПР выдает #Н/Д. Значит данные в Ваших таблицах не идентичны. В какой-то из них есть лишние неприметные пробелы(обычно перед значением или после), либо знаки кириллицы перемешаны со знаками латиницы. Так же #Н/Д будет, если критерии числа и в искомой таблице они записаны как текст(как правило в левом верхнем углу такой ячейки появляется зеленый треугольничек), а в итоговой — как числа. Или наоборот.


Описание аргументов ВПР

  • Искомое_значение($A2) — это то значение из одной таблицы, которые мы ищем в другой таблице. Т.е. для первой записи второй таблицы это будет Петров С.А.. Здесь можно указать либо непосредственно текст критерия(в этом случае он должен быть в кавычках — =ВПР(«Петров С.А»;Лист1!$A$1:$C$4;3;0), либо ссылку на ячейку, с данным текстом(как в примере функции). Есть небольшой нюанс: так же можно применять символы подстановки: «*» и «?». Это очень удобно, если необходимо найти значения лишь по части строки. Например, можно не вводить полностью «Петров С.А», а ввести лишь фамилию и знак звездочки — «Петров*». Тогда будет выведена любая запись, которая начинается на «Петров». Если же надо найти запись, в которой в любом месте строки встречается фамилия «Петров», то можно указать так: «*петров*». Если хотите найти фамилию Петров и неважно какие инициалы будут у имени-отчества(если ФИО записаны в виде Иванов И.И.), то здесь в самый раз такой вид: «Иванов ?.?.».
    Часто необходимо для каждой строки указать свое значение(в столбце А Фамилии и надо их все найти). В таком случае всегда указываются ссылки на ячейки столбца А. Например, в ячейке A2 записано: Иванов. Так же известно, что Иванов есть в другой таблице, но после фамилии могут быть записаны и имя и отчество(или еще что-то). Но нам нужно найти только строку, которая начинается на фамилию. Тогда необходимо записать следующим образом: A2&»*». Эта запись будет равнозначна «Иванов*». В A2 записано Иванов, амперсанд(&) используется для объединения в одну строку двух текстовых значений. Звездочка в кавычках (как и положено быть тексту внутри формулы). Таким образом и получаем:
    A2&»*» =>
    «Иванов»&»*» =>
    «Иванов*»
    А полная формула в итоге будет выглядеть так: =ВПР(A2&»*»;Лист1!$A$1:$C$4;3;0)
    Очень удобно, если значений для поиска много.
    Если надо определить есть ли хоть где-то слово в строке, то звездочки ставим с обеих сторон: «*»&A1&»*»
  • Таблица(Лист1!$A$1:$C$4) — указывается диапазон ячеек, в первом столбце которых будет просматриваться аргумент Искомое_значение. Диапазон должен содержать данные от первой ячейки с данными до самой последней. Это не обязательно должен быть указанный в примере диапазон. Если строк 100, то Лист1!$A$2:$C$100. Диапазон в аргументе таблица всегда должен быть «закреплен», т.е. содержать знаки доллара($) перед названием столбцов и перед номерами строк(Лист1!$A$1:$C$4).
  • Номер_столбца(3) — указывается номер столбца в аргументе Таблица, значения из которого нам необходимо записать в итоговую ячейку в качестве результата. В примере это Дата принятия — т.е. столбец №3. Если бы нужен был отдел, то необходимо было бы указать номер столбца 2, а если бы нам понадобилось просто сравнить есть ли фамилии одной таблицы в другой, то можно было бы указать и 1. Номер столбца всегда указывается числом и не должен быть больше числа столбцов в аргументе Таблица.

    если аргумент Таблица имеет слишком большое кол-во столбцов и необходимо вернуть результат из последнего столбца, то совсем необязательно высчитывать их количество. Можно использовать формулу, которая подсчитывает количество столбцов в указанном диапазоне:  =ВПР($A2;Лист1!$A$1:$C$4;ЧИСЛСТОЛБ(Лист1!$A$1:$C$4);0). К слову в данном случае Лист1! тоже можно убрать, т.к. функция ЧИСЛОСТОЛБ просто подсчитывает количество столбцов в переданном ей диапазоне и неважно на каком он листе: =ВПР($A2;Лист1!$A$1:$C$4;ЧИСЛСТОЛБ($A$1:$C$4);0).

  • Интервальный_просмотр(0) — очень интересный аргумент. Может быть равен либо ИСТИНА либо ЛОЖЬ. Так же допускается указать 1 или 0. 1 = ИСТИНА, 0 = ЛОЖЬ. Если в ВПР указать данный параметр равный 0 или ЛОЖЬ, то будет происходить поиск точного соответствия заданному Искомому_значению. Это не имеет никакого отношения к знакам подстановки(«*» и «?»). Если же использовать 1 или ИСТИНА, то…Совсем в двух словах не объяснить. Если вкратце — ВПР будет искать наиболее похожее значение, подходящее под Искомомое_значение. Иногда очень полезно. Правда, если использовать данный параметр, то необходимо, чтобы список в аргументе Таблица был отсортирован по возрастанию. Обращаю внимание на то, что сортировка необходима только в том случае, если аргумент Интервальный_просмотр равен ИСТИНА или 1. Если же 0 или ЛОЖЬ — сортировка не нужна. Этот аргумент необходимо использовать осторожно — не стоит указывать 1 или ИСТИНА, если нужно найти точное соответствие и уж тем более не стоит использовать, если не понимаете принцип его работы.
    Подробнее про работу ВПР с интервальным просмотром, равным 1 или ИСТИНА можно ознакомиться в статье ВПР и интервальный просмотр(range_lookup)

При работе с ВПР всегда важно помнить три вещи:
  • Таблица всегда должна начинаться с того столбца, в котором ищем Искомое_значение. Т.е. ВПР не умеет искать значение во втором столбце таблицы, а значение возвращать из первого. В лучшем случае ничего найдено не будет и получим ошибку #Н/Д(#N/A), а в худшем результат будет совсем не тот, который должен быть
  • аргумент Таблица должен быть «закреплен», т.е. содержать знаки доллара($) перед названием столбцов и перед номерами строк(Лист1!$A$1:$C$4). Это и есть закрепление(если точнее, то это называется абсолютной ссылкой на диапазон). Как это делается. Выделяете текст ссылки и жмете клавишу F4 до тех пор, пока не увидите, что и перед обозначением имени столбца и перед номером строки не появились доллары. Если этого не сделать, то при копировании формулы из одной ячейки в остальные аргумент Таблица будет «съезжать» и результат может быть совсем не таким, какой ожидался(в лучшем случае получите ошибку #Н/Д(#N/A)
  • номер_столбца не должен превышать общее кол-во столбцов в аргументе таблица, а сама Таблица соответственно должна содержать столбцы от первого(в котором ищем) до последнего(из которого необходимо возвращать значения). В примере указана Лист1!$A$1:$C$4 — всего 3 столбца(A, B, C). Значит не получится вернуть значение из столбца D(4), т.к. в таблице только три столбца. Т.е. если мы запишем формулу так: =ВПР($A2;Лист1!$A$1:$C$4;4;0) — мы получим ошибку #ССЫЛКА!(#REF!).
    Если аргументом Таблица указан диапазон $B$1:$C$4 и необходимо вернуть данные из столбца С, то правильно будет указать номер столбца 2. Т.к. аргумент Таблица($B$1:$C$4) содержит только два столбца — В и С. Если же попытаться указать номер столбца 3(каким по счету он является на листе), то получим ошибку #ССЫЛКА!(#REF!), т.к. третьего столбца в указанном диапазоне просто нет.

Многие наверняка заметили, что на картинке у меня попутаны отделы для ФИО(в обеих таблицах ФИО относятся к разным отделам). Это не ошибка записи. В прилагаемом к статье примере показано, как можно одной формулой подставить и отделы и даты, не меняя вручную аргумент Номер_столбца: =ВПР($A2;Лист1!$A$1:$C$4;СТОЛБЕЦ();0). Такой подход сработает, если в обеих таблицах одинаковый порядок столбцов.


Как избежать ошибки #Н/Д(#N/A) в ВПР?

 
Еще частая проблема — многие не хотят видеть #Н/Д результатом, если совпадение не найдено. Это можно обойти при помощи специальных функций.
Для пользователей Excel 2003 и старше:

=ЕСЛИ(ЕНД(ВПР($A2;Лист1!$A$1:$C$4;3;0));»»;ВПР($A2;Лист1!$A$1:$C$4;3;0))
=IF(ISNA(VLOOKUP($A2,Лист1!$A$1:$C$4,3,0)),»»,VLOOKUP($A2,Лист1!$A$1:$C$4,3,0))

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

ЕСЛИОШИБКА(IFERROR)

:

=ЕСЛИОШИБКА(ВПР($A2;Лист1!$A$1:$C$4;3;0);»»)
=IFERROR(VLOOKUP($A2,Лист1!$A$1:$C$4,3,0);»»)

Подробнее про различие между использованием ЕСЛИ(ЕНД и ЕСЛИОШИБКА я разбирал в статье: Как в ячейке с формулой вместо ошибки показать 0
Но я бы не рекомендовал использовать

ЕСЛИОШИБКА(IFERROR)

, не убедившись, что ошибки появляются только для реально отсутствующих значений. Иногда ВПР может вернуть #Н/Д и в других ситуациях:

  • искомое значение состоит более чем из 255 символов(решение этой проблемы приведено ниже в этой статье: Работа с критериями длиннее 255 символов)
  • искомое значение является числом с большим кол-вом знаков после запятой. Excel не может правильно воспринимать такие числа и в итоге ВПР может вернуть ошибку. Правильным решением здесь будет округлить искомое значение хотя бы до 4-х или 5-ти знаков после запятой(конечно, если это допустимо):
    =ВПР(ОКРУГЛ($A2;5);Лист1!$A$1:$C$4;3;0)
    =VLOOKUP(ROUND($A2,2),Лист1!$A$1:$C$4,3,0)
  • искомое значение содержит специальные или непечатаемые символы.
    В этом случае придется либо избавиться от непечатаемых символов в искомом аргументе:
    =ВПР(ПЕЧСИМВ($A2);Лист1!$A$1:$C$4;3;0)
    =VLOOKUP(CLEAN($A2),Лист1!$A$1:$C$4,3,0)
    либо добавить перед всеми специальными символами(такими как звездочка или вопр.знак) знак тильды(~), чтобы сделать эти знаки просто знаками, а не знаками специального значения(так же работа со специальными(служебными) символами описывалась в статье: Как заменить/удалить/найти звездочку). Добавить символ перед знаком той же тильды можно при помощи функции ПОДСТАВИТЬ(SUBSTITUTE):
    =ВПР(ПОДСТАВИТЬ($A2;»~»;»~~»);Лист1!$A$1:$C$4;3;0)
    =VLOOKUP(SUBSTITUTE(A2,»~»,»~~»),Лист1!$A$1:$C$4,3,0)
    Если необходимо добавить тильду сразу перед несколькими знаками, то делает это обычно так(на примере подстановки одновременно для тильды и звездочки):
    =ВПР(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A2;»~»;»~~»);»*»;»~*»);Лист1!$A$1:$C$4;3;0)
    =VLOOKUP(SUBSTITUTE(SUBSTITUTE(A2,»~»,»~~»),»*»,»~*»),Лист1!$A$1:$C$4,3,0)

Как при помощи ВПР искать значение по строке, а не столбцу?

 
На самом деле ответ будет коротким — ВПР всегда ищет сверху вниз. Слева направо она не умеет. Но зато слева направо умеет искать её сестра ГПР(HLookup) — Горизонтальный

ПР

осмотр.
ГПР ищет заданное значение(аргумент

искомое_значение

) в первой строке указанного диапазона(аргумент

таблица

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

#Н/Д(#N/A)

.
Если надо найти значение «Иванов» в строке 2 и вернуть значение из строки 5 в таблице

A2:H10

, то формула будет выглядеть так:

=ГПР(«Иванов»;$A$2:$H$10;5;0)
=HLOOKUP(«Иванов»,$A$2:$H$10,5,0)

Все правила и синтаксис функции точно такие же, как у ВПР:
-в искомом значении можно применять символы астерикса(*) и вопр.знака(?) — «Иванов*»;
-таблица должна быть закреплена —

$A$2:$H$10

;
-интервальный просмотр работает по тому же принципу(0 или ЛОЖЬ точный просмотр слева-направо, 1 или ИСТИНА — интервальный).


Решение при помощи ПОИСКПОЗ

 
Общий принцип работы

ПОИСКПОЗ(MATCH)

очень похож на ВПР — функция ищет заданное значение в массиве (в столбце или строке) и возвращает его позицию(порядковый номер в заданном массиве). Т.е. ищет

Искомое_значение

в аргументе

Просматриваемый_массив

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

Просматриваемом_массиве

. Именно номер позиции, а не само значение. Если бы мы хотели применить её для таблицы выше, то она была бы такой:

=ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0)
=MATCH($A2,Лист1!$A$1:$A$4,0)

  • Искомое_значение($A2) — непосредственно значение или ссылка на ячейку с искомым значением. Если опираться на пример выше — то это ФИО. Здесь все ровно так же, как и с ВПР. Так же допустимы символы подстановки * и ? и ровно в таком же исполнении.
  • Просматриваемый_массив(Лист1!$A$1:$A$4) — указывается ссылка на столбец, в котором необходимо найти искомое значение. В отличии от той же ВПР, где указывается целая таблица, это должен быть именно один столбец, в котором мы собираемся искать Искомое_значение. Если попытаться указать более одного столбца, то функция вернет ошибку.Справедливости ради надо отметить, что можно указать либо столбец, либо строку
  • Тип_сопоставления(0) — то же самое, что и Интервальный_просмотр в ВПР. С теми же особенностями. Отличается разве что возможностью поиска наименьшего от искомого или наибольшего.

С основным разобрались. Но ведь нам надо вернуть не номер позиции, а само значение. Значит ПОИСКПОЗ в чистом виде нам не подходит. По крайней мере одна, сама по себе. Но если её использовать вместе с функцией ИНДЕКС(INDEX)(которая возвращает из указанного диапазона значение на пересечении заданных строки и столбца) — то это то, что нам нужно и даже больше.
=ИНДЕКС(Лист1!$A$1:$C$4;ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0);2)
Такая формула результатом вернет то же, что и ВПР.

Аргументы функции ИНДЕКС
Массив(Лист1!$A$2:$C$4). В качестве этого аргумента мы указываем диапазон, из которого хотим получить значения. Может быть как один столбец, так и несколько. В случае, если столбец один, то последний аргумент функции указывать не обязательно или он всегда будет равен 1(столбец-то всего один). К слову — данный аргумент может совершенно не совпадать с тем, который мы указываем в аргументе Просматриваемый_массив функции ПОИСКПОЗ.

Далее идут Номер_строки и Номер_столбца. Именно в качестве Номера_строки мы и подставляем ПОИСКПОЗ, которая возвращает нам номер позиции в массиве. На этом все и строится. ИНДЕКС возвращает значение из Массива, которое находится в указанной строке(Номер_строки) Массива и указанном столбце(Номер_столбца), если столбцов более одного. Важно знать, что в данной связке кол-во строк в аргументе Массив функции ИНДЕКС и кол-во строк в аргументе Просматриваемый_массив функции ПОИСКПОЗ должно совпадать. И начинаться с одной и той же строки. Это в обычных случаях, если не преследуются иные цели.
Так же как и в случае с ВПР, ИНДЕКС в случае не нахождения искомого значения возвращает #Н/Д. И обойти подобные ошибки можно так же:
Для всех версий Excel(включая 2003 и раньше):
=ЕСЛИ(ЕНД(ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0));»»;ИНДЕКС(Лист1!$A$1:$C$4;ПОИСКПОЗ($A2;Лист1!$A$2:$A$4;0);2))
Для версий 2007 и выше:
=ЕСЛИОШИБКА(ИНДЕКС(Лист1!$A$1:$C$4;ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0);2);»»)


Работа с критериями длиннее 255 символов

 
Есть у ИНДЕКС-ПОИСКПОЗ и еще одно преимущество перед ВПР. Дело в том, что ВПР не может искать значения, длина строки которых содержит более 255 символов. Это случается редко, но случается. Можно, конечно, обмануть ВПР и урезать критерий:

=ВПР(ПСТР($A2;1;255);ПСТР(Лист1!$A$1:$C$4;1;255);3;0)

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

Поэтому лучше использовать такую хитрую формулу:
=ИНДЕКС(Лист1!$A$1:$C$4;СУММПРОИЗВ(ПОИСКПОЗ(ИСТИНА;Лист1!$A$1:$A$4=$A2;0));2)
Здесь я в формулах использовал одинаковые диапазоны для удобочитаемости, но в примере для скачивания они различаются от указанных здесь.
Сама формула построена на возможности функции СУММПРОИЗВ преобразовывать в массивные вычисления некоторых функций внутри неё. В данном случае ПОИСКПОЗ ищет позицию строки, в которой критерий равен значению в строке. Подстановочные символы здесь применить уже не получится.


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

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

Скачать пример

  Tips_All_VLookUp.xls (26,0 KiB, 17 435 скачиваний)

Так же см.:
ВПР и интервальный просмотр(range_lookup)
ВПР по двум и более критериям
ВПР с возвратом всех значений
ВПР с поиском по нескольким листам
ВПР_МН
ВПР_ВСЕ_КНИГИ
Как заменить/удалить/найти звездочку?


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Описание

В этой статье приведены пошаговые инструкции по поиску данных в таблице (или диапазоне ячеек) с помощью различных встроенных функций Microsoft Excel. Для получения одного и того же результата можно использовать разные формулы.

Создание образца листа

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

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

A

B

C

D

E

1

Имя

Правитель

Возраст

Поиск значения

2

Анри

501

Плот

Иванов

3

Стэн

201

19

4

Иванов

101

максималь

5

Ларри

301

составляет

Определения терминов

В этой статье для описания встроенных функций Excel используются указанные ниже условия.

Термин

Определение

Пример

Массив таблиц

Вся таблица подстановки

A2: C5

Превышающ

Значение, которое будет найдено в первом столбце аргумента «инфо_таблица».

E2

Просматриваемый_массив
-или-
Лукуп_вектор

Диапазон ячеек, которые содержат возможные значения подстановки.

A2: A5

Номер_столбца

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

3 (третий столбец в инфо_таблица)

Ресулт_аррай
-или-
Ресулт_вектор

Диапазон, содержащий только одну строку или один столбец. Он должен быть такого же размера, что и просматриваемый_массив или Лукуп_вектор.

C2: C5

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

Логическое значение (истина или ложь). Если указано значение истина или опущено, возвращается приближенное соответствие. Если задано значение FALSE, оно будет искать точное совпадение.

ЛОЖЬ

Топ_целл

Это ссылка, на основе которой вы хотите основать смещение. Топ_целл должен ссылаться на ячейку или диапазон смежных ячеек. В противном случае функция СМЕЩ возвращает #VALUE! значение ошибки #ИМЯ?.

Оффсет_кол

Число столбцов, находящегося слева или справа от которых должна указываться верхняя левая ячейка результата. Например, значение «5» в качестве аргумента Оффсет_кол указывает на то, что верхняя левая ячейка ссылки состоит из пяти столбцов справа от ссылки. Оффсет_кол может быть положительным (то есть справа от начальной ссылки) или отрицательным (то есть слева от начальной ссылки).

Функции

LOOKUP ()

Функция Просмотр находит значение в одной строке или столбце и сопоставляет его со значением в той же позицией в другой строке или столбце.

Ниже приведен пример синтаксиса формулы подСТАНОВКи.

   = Просмотр (искомое_значение; Лукуп_вектор; Ресулт_вектор)


Следующая формула находит возраст Марии на листе «образец».

   = ПРОСМОТР (E2; A2: A5; C2: C5)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в векторе подстановки (столбец A). Формула затем соответствует значению в той же строке в векторе результатов (столбец C). Так как «Мария» находится в строке 4, функция Просмотр возвращает значение из строки 4 в столбце C (22).

Примечание. Для функции Просмотр необходимо, чтобы таблица была отсортирована.

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

Использование функции Просмотр в Excel

ВПР ()

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

Ниже приведен пример синтаксиса формулы ВПР :

    = ВПР (искомое_значение; инфо_таблица; номер_столбца; интервальный_просмотр)

Следующая формула находит возраст Марии на листе «образец».

   = ВПР (E2; A2: C5; 3; ЛОЖЬ)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в левом столбце (столбец A). Формула затем совпадет со значением в той же строке в Колумн_индекс. В этом примере используется «3» в качестве Колумн_индекс (столбец C). Так как «Мария» находится в строке 4, функция ВПР возвращает значение из строки 4 В столбце C (22).

Чтобы получить дополнительные сведения о функции ВПР , щелкните следующий номер статьи базы знаний Майкрософт:
 

Как найти точное совпадение с помощью функций ВПР или ГПР

INDEX () и MATCH ()

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

Ниже приведен пример синтаксиса, объединяющего индекс и Match для получения одинаковых результатов поиска и ВПР в предыдущих примерах:

    = Индекс (инфо_таблица; MATCH (искомое_значение; просматриваемый_массив; 0); номер_столбца)

Следующая формула находит возраст Марии на листе «образец».


= ИНДЕКС (A2: C5; MATCH (E2; A2: A5; 0); 3)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Затем он будет соответствовать значению в той же строке в столбце C. Так как «Мария» находится в строке 4, формула возвращает значение из строки 4 в столбце C (22).

Обратите внимание Если ни одна из ячеек в аргументе «число» не соответствует искомому значению («Мария»), эта формула будет возвращать #N/А.
Чтобы получить дополнительные сведения о функции индекс , щелкните следующий номер статьи базы знаний Майкрософт:

Поиск данных в таблице с помощью функции индекс

СМЕЩ () и MATCH ()

Функции СМЕЩ и ПОИСКПОЗ можно использовать вместе, чтобы получить те же результаты, что и функции в предыдущем примере.

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

   = СМЕЩЕНИЕ (топ_целл, MATCH (искомое_значение; просматриваемый_массив; 0); Оффсет_кол)

Эта формула находит возраст Марии на листе «образец».

   = СМЕЩЕНИЕ (A1; MATCH (E2; A2: A5; 0); 2)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Формула затем соответствует значению в той же строке, но двум столбцам справа (столбец C). Так как «Мария» находится в столбце A, формула возвращает значение в строке 4 в столбце C (22).

Чтобы получить дополнительные сведения о функции СМЕЩ , щелкните следующий номер статьи базы знаний Майкрософт:
 

Использование функции СМЕЩ

Нужна дополнительная помощь?

Найти недостающие значения

На чтение 2 мин. Просмотров 6.5k.

= ЕСЛИ( СЧЕТЕСЛИ ( список ; значение ); «OK» ; «Отсутствует» )

Если вы хотите выяснить, какие значения в одном списке отсутствуют из другого списка, вы можете использовать простую формулу, основанную на функции СЧЕТЕСЛИ.

Функция СЧЕТЕСЛИ подсчитывает ячейки, которые отвечают критериям, возвращая число найденных вхождений. Если такие ячейки не найдены, СЧЕТЕСЛИ возвращает ноль.

Найти недостающие значения

В показанном примере, формула в G5 является:

=ЕСЛИ(СЧЁТЕСЛИ($B$5:$B$10;F5);»ОК»; «Отсутствует»)

Где «список» является именованный диапазон, что соответствует диапазону B6: B11.

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

Количество пропущенных значений

=СУММПРОИЗВ(—(СЧЁТЕСЛИ(B5:B10;F5:F7)=0))

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

Количество пропущенных значений

Функции СЧЕТЕСЛИ проверяет значения в диапазоне от критериев. Часто, только один критерий подается, но в этом случае мы поставляем больше чем один критерий.

Для диапазона, мы даем СЧЕТЕСЛИ именованному диапазону лист1 (B6: B11) и критериям мы обеспечиваем именованный диапазон лист2 (F6: F8).

Потому что мы даем СЧЕТЕСЛИ более чем один критерий, мы получим более одного результата в массиве, который выглядит следующим образом: {2; 1; 0}

Мы хотим, чтобы рассчитывались только те значения, которые отсутствуют, которые по определению имеют счетчик, равный нулю, поэтому мы преобразуем эти значения ИСТИНА и ЛОЖЬ с «= 0» заявлением, что дает: {ЛОЖЬ; ЛОЖЬ; ИСТИНА}

Тогда мы изменим значения ИСТИНА/ЛОЖЬ в 1 и 0 с двойным отрицательным оператором (-), который производит: {0, 0, 1}

Наконец, мы используем СУММПРОИЗВ, чтобы сложить элементы в массиве и получить общее количество пропущенных значений.

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

Все секреты Excel-функции ВПР (VLOOKUP) для поиска данных в таблице и извлечения их в другую

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

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

Даже если вы годами используете функцию ВПР, то с высокой долей вероятности эта статья будет вам полезна и не оставит равнодушным. Я, например, будучи IT-специалистом, а потом и руководителем в IT, пользовался VLOOKUP 15 лет, но разобраться со всеми нюансами довелось только сейчас, когда я на профессиональной основе стал обучать людей Excel.

ВПР — это аббревиатура от вертикального просмотра. Аналогично и VLOOKUP — Vertical LOOKUP. Уже само название функции намекает нам, что она производит поиск в строках таблицы (по вертикали — перебирая строки и фиксируя столбец), а не в столбцах (по горизонтали — перебирая столбцы и фиксируя строку). Надо заметить, что у ВПР есть сестра — гадкий утёнок, которая никогда не станет лебедем, — это функция ГПР (HLOOKUP). ГПР, в противоположность ВПР, производит горизонтальный поиск, однако концепция Excel (да и вообще концепция организации данных) подразумевает, что ваши таблицы имеют небольшое количество столбцов и гораздо большее количество строк. Именно поэтому поиск по строкам нам требуется во много раз чаще, чем по столбцам. Если вы в Excel слишком часто пользуетесь функцией ГПР, то, вполне вероятно, что вы чего-то не поняли в этой жизни.

Синтаксис

Функция ВПР имеет четыре параметра:

=ВПР( <ЧТО> ; <ГДЕ> ; <НОМЕР_СТОЛБЦА> [;<ОТСОРТИРОВАНО>] ), тут:

<ЧТО> — искомое значение (редко) или ссылка на ячейку, содержащую искомое значение (подавляющее большинство случаев);

<ГДЕ> — ссылка на диапазон ячеек (двумерный массив), в ПЕРВОМ (!) столбце которого будет осуществляться поиск значения параметра <ЧТО>;

<НОМЕР_СТОЛБЦА> — номер столбца в диапазоне, из которого будет возвращено значение;

<ОТСОРТИРОВАНО> — это очень важный параметр, который отвечает на вопрос, а отсортирован ли по возрастанию первый столбец диапазона <ГДЕ>. В случае, если массив отсортирован, мы указываем значение ИСТИНА (TRUE) или 1, в противном случае — ЛОЖЬ (FALSE) или 0. В случае, если данный параметр опущен, он по умолчанию становится равным 1.

Держу пари, что многие из тех, кто знает функцию ВПР как облупленную, прочитав описание четвёртого параметра, могут почувствовать себя неуютно, так как они привыкли видеть его в несколько ином виде: обычно там идёт речь о точном соответствии при поиске (ЛОЖЬ или 0) либо же о диапазонном просмотре (ИСТИНА или 1).

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

Как же конкретно работает формула ВПР

  • Вид формулы I. Если последний параметр опущен или указан равным 1, то ВПР предполагает, что первый столбец отсортирован по возрастанию, поэтому поиск останавливается на той строке, которая непосредственно предшествует строке, в которой находится значение, превышающее искомое. Если такой строки не найдено, то возвращается последняя строка диапазона.
  • Вид формулы II. Если последний параметр указан равным 0, то ВПР последовательно просматривает первый столбец массива и сразу останавливает поиск, когда найдено первое точное соответствие с параметром <ЧТО>, в противном случае возвращается код ошибки #Н/Д (#N/A).

Схемы работы формул

ВПР тип I

ВПР тип II

Следствия для формул вида I

  1. Формулы можно использовать для распределения значений по диапазонам.
  2. Если первый столбец <ГДЕ> содержит повторяющиеся значения и правильно отсортирован, то будет возвращена последняя из строк с повторяющимися значениями.
  3. Если искать значение заведомо большее, чем может содержать первый столбец, то можно легко находить последнюю строку таблицы, что бывает довольно ценно.
  4. Данный вид вернёт ошибку #Н/Д, только если не найдёт значения меньше или равное искомому.
  5. Понять, что формула возвращает неправильные значения, в случае если ваш массив не отсортирован, довольно затруднительно.

Следствия для формул вида II

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

Производительность работы функции ВПР

Вы добрались до кульминационного места статьи. Казалось бы, ну какая разница, укажу ли я в качестве последнего параметра ноль или единицу? В основном все указывают, конечно же, ноль, так как это довольно практично: не надо заботиться о сортировке первого столбца массива, сразу видно, найдено значение или нет. Но если у вас на листе несколько тысяч формул ВПР (VLOOKUP), то вы заметите, что ВПР вида II работает медленно. При этом обычно все начинают думать:

  • мне нужен более мощный компьютер;
  • мне нужна более быстрая формула, например, многие знают про ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH), которая якобы быстрее на жалкие 5–10%.

И мало кто думает, что стоит только начать использовать ВПР вида I и обеспечить любыми способами сортировку первого столбца, как скорость работы ВПР возрастёт в 57 раз. Пишу прописью — В ПЯТЬДЕСЯТ СЕМЬ РАЗ! Не на 57%, а на 5 700%. Данный факт я проверил вполне надёжно.

Секрет такой быстрой работы кроется в том, что на отсортированном массиве можно применять чрезвычайно эффективный алгоритм поиска, который носит название бинарного поиска (метод деления пополам, метод дихотомии). Так вот ВПР вида I его применяет, а ВПР вида II ищет без какой-либо оптимизации вообще. То же самое относится и к функции ПОИСКПОЗ (MATCH), которая включает в себя аналогичный параметр, а также и к функции ПРОСМОТР (LOOKUP), которая работает только на отсортированных массивах и включена в Excel ради совместимости с Lotus 1-2-3.

Недостатки формулы

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

Некоторые аспекты применения формулы в реальной жизни

Диапазонный поиск

Классическая иллюстрация к диапазонному поиску — задача определения скидки по размеру заказа.

Поиск текстовых строк

Безусловно, ВПР ищет не только числа, но и текст. При этом надо принимать во внимание, что регистр символов формула не различает. Если использовать символы подстановки, то можно организовать нечёткий поиск. Есть два символа подстановки: «?» — заменяет один любой символ в текстовой строке, «*» — заменяет любое количество любых символов.

Борьба с пробелами

Часто поднимается вопрос, как решить проблему лишних пробелов при поиске. Если справочную таблицу ещё можно вычистить от них, то первый параметр формулы ВПР не всегда зависит от вас. Поэтому если риск засорения ячеек лишними пробелами присутствует, то можно применять для очистки функции СЖПРОБЕЛЫ (TRIM).

Разный формат данных

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

=ВПР(−−D7; Продукты!$A$2:$C$5; 3; 0) — если D7 содержит текст, а таблица — числа;

=ВПР(D7 & «»); Продукты!$A$2:$C$5; 3; 0) — и наоборот.

Кстати, перевести текст в число можно сразу несколькими способами, выбирайте:

  • Двойное отрицание —D7.
  • Умножение на единицу D7*1.
  • Сложение с нулём D7+0.
  • Возведение в первую степень D7^1.

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

Как подавить выдачу #Н/Д

Это очень удобно делать при помощи функции ЕСЛИОШИБКА (IFERROR).

Например: =ЕСЛИОШИБКА( ВПР(D7; Продукты!$A$2:$C$5; 3; 0); «»).

Если ВПР вернёт код ошибки #Н/Д, то ЕСЛИОШИБКА его перехватит и подставит параметр 2 (в данном случае пустая строка), а если ошибки не произошло, то эта функция сделает вид, что её вообще нет, а есть только ВПР, вернувший нормальный результат.

Массив <ГДЕ>

Часто забывают ссылку массива сделать абсолютной, и при протягивании массив «плывёт». Помните, что вместо A2:C5 следует использовать $A$2:$C$5.

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

Ещё более хорошей идеей будет объявление этого массива в виде именованного диапазона.

Многие пользователи при указании массива используют конструкцию вида A:C, указывая столбцы целиком. Этот подход имеет право на существование, так как вы избавлены от необходимости отслеживать тот факт, что ваш массив включает все необходимые строки. Если вы добавите строки на лист с первоначальным массивом, то диапазон, указанный как A:C, не придётся корректировать. Безусловно, эта синтаксическая конструкция заставляет Excel проводить несколько большую работу, чем при точном указании диапазона, но данными накладными расходами можно пренебречь. Речь идёт о сотых долях секунды.

Ну и на грани гениальности — оформить массив в виде умной таблицы.

Использование функции СТОЛБЕЦ для указания колонки извлечения

Если таблица, в которую вы извлекаете данные при помощи ВПР, имеет ту же самую структуру, что и справочная таблица, но просто содержит меньшее количество строк, то в ВПР можно использовать функцию СТОЛБЕЦ() для автоматического расчёта номеров извлекаемых столбцов. При этом все ВПР-формулы будут одинаковыми (с поправкой на первый параметр, который меняется автоматически)! Обратите внимание, что у первого параметра координата столбца абсолютная.

Создание составного ключа через &»|»&

Если возникает необходимость искать по нескольким столбцам одновременно, то необходимо делать составной ключ для поиска. Если бы возвращаемое значение было не текстовым (как тут в случае с полем «Код»), а числовым, то для этого подошла бы более удобная формула СУММЕСЛИМН (SUMIFS) и составной ключ столбца не потребовался бы вовсе.

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

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. Я надеюсь, что наши примеры формул окажутся полезными для вас.

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

 

Batherd

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

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

Есть два столбца

http://c2n.me/3frzj6S

1 Столбик — 2514 строк
2 Столбик — 384 строк
Мне нужно чтобы ексель взял за основу первый столбик и сказал какие позиции отсутствую в втором столбике.
Брал за основу формулу =IF(ISERROR(MATCH(A1,$C$1:$C$5,0)),»»,A1) но она не работает у меня уже подгорает я не знаю что делать, я бы вручную это сделал бы быстрее.

Изменено: Batherd03.04.2015 16:02:53

 

ВПР? Зайти по ссылке не могу…навскидку написал.

Изменено: alexthegreat03.04.2015 15:40:19

 

Batherd

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

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

#3

03.04.2015 15:45:12

Там скриншот

Скрытый текст

Изменено: Batherd03.04.2015 15:51:12

 

vikttur

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

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

Форум по Excel, а Вы гоняете людей картинки смотреть!
Выложить пример сюда — трудно? Файл Excel! Не рисунок.

 

Batherd

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

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

 

vikttur

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

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

Представьте.
Вы приходите в ателье костюм заказать. Но не на Вас — для брата, который находится в другом городе, и предлагаете закройщику прокатиться туда…
Костюм закройщику нужен?

 

Batherd

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

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

#7

03.04.2015 16:00:34

Цитата
vikttur написал:
Представьте.
Вы приходите в ателье костюм заказать. Но не на Вас — для брата, который находится в другом городе, и предлагаете закройщику прокатиться туда…
Костюм закройщику нужен?

Представил
ситуация не из приятных

Изменено: Batherd03.04.2015 16:01:05

 

vikttur

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

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

Хорошо. Теперь зайдите в правила и почитайте.
И о примере, и о цитировании. После этого прошу исправить сообщение.

 

Batherd

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

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

#9

03.04.2015 16:02:51

Цитата
vikttur написал:
Хорошо. Теперь зайдите в правила и почитайте.
И о примере, и о цитировании. После этого прошу исправить сообщение.

я понял тут также напряжнокак и в самом екселе …

 

арех

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

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

Знаки препинания.
С ними тоже напряжно ?

п.с. Вам уже советовали ВПР —
Открывайте файл эксель (любой) жмите F1 — в поиске пишите ВПР ( или VLOOKUP ) — Совершенствуйтесь !

Кажется все забыли про сводные :)

 

МВТ

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

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

Попробуйте так: =ЕСЛИОШИБКА(ПОИСКПОЗ(B1;Столбец2);»Отсутствует») и протяните вдоль Столбца1. Потом отфильтруйте по «Отсутствует»

 

Юрий М

Модератор

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

Контакты см. в профиле

Batherd

, Вам же сделали уже замечание — не цитируйте без необходимости.

 

Hugo

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

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

#13

04.04.2015 00:51:43

Цитата
Batherd написал: сказал какие позиции отсутствую в втором столбике

ещё вариант — COUNTIF()/СЧЁТЕСЛИ() — у каких будет 0, те отсутсвуют.

 

TheBestOfTheBest

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

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

Excel 2010 +PLEX +SaveToDB +PowerQuery

Решение на SQL запросе к листу Sheet1. На листе «Нет справа» перечень артикулов, которых нет в правой колонке
Файл д.б. расположен в папке C:1

Неизлечимых болезней нет, есть неизлечимые люди.

 

JeyCi

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

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

#15

05.04.2015 15:36:29

все варианты не пробовала, но по файлу (пост#14) — есть расхождения по сравнению с таким макросом:
(- пока не могу понять почему…)

Код
Sub dic_REMOVE()
'Сравнение столбцов и выборка невстречающихся строк (>100 000 строк)
'http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=8&TID=25265&TITLE_SEO=25265&MID=221593&tags=&q=d.remove&DATE_CHANGE=0&order=relevance&s=%D0%9D%D0%B0%D0%B9%D1%82%D0%B8#message221593
'nilem 21 Апр 2011 13:52:41

Dim x, i&
With CreateObject("Scripting.Dictionary")
 .CompareMode = 0
 
 x = Sheets("Sheet1").Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
 For i = 1 To UBound(x): .Item(x(i, 1)) = i: Next
 
 x = Sheets("Sheet1").Range("C1:C" & Cells(Rows.Count, 3).End(xlUp).Row).Value
 For i = 1 To UBound(x)
 If .Exists(x(i, 1)) Then .Remove (x(i, 1))
 Next 

'выгрузка в столбец F
If .Count > 0 Then Sheets("Sheet1").[F1].Resize(.Count) = Application.Transpose(.Keys)
End With
End Sub

может ТС внесёт ясность по своим данным (проверив их самостоятельно и опубликовав верный ответ)

Изменено: JeyCi05.04.2015 18:07:14

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

The_Prist

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

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

Профессиональная разработка приложений для MS Office

Тут макросы лишние. Просто человеку лень выложить нормально файл и прочесть справку :-) Плюс слова «не работает» никак не описывают проблему. Что именно не работает? С чего решили, что не работает? Ошибка появляется или все подтягивается или еще что…

Если опираться на то, что есть:
MATCH(A1,$C$1:$C$5,0)
будет искать только в 5-ти сроках. Надо увеличить диапазон: MATCH(A1,$C$1:$C$500,0)
Думаю тогда все заработает.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

JeyCi

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

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

#17

05.04.2015 15:58:06

Цитата
The_Prist написал:Тут макросы лишние.

согласна, просто SQL-подход понравился — захотелось проверить — пока в задумчивости…
пост#14 отличился элегантностью (в моём понимании)… неравнодушная я стала к SQL :oops:
хотя, конечно, формулы в ячейках тоже заслуживают уважения по сравнению с многословием макросов…
а формулы запросов — это отдельная история…

Изменено: JeyCi05.04.2015 15:59:44

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

TheBestOfTheBest

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

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

Excel 2010 +PLEX +SaveToDB +PowerQuery

#18

05.04.2015 16:11:41

Цитата
The_Prist написал: Просто человеку лень … прочесть справку

Вопрос философский и одновременно личного характера. Кто-то ловит рыбу сам, кто-то покупает в магазине…

Неизлечимых болезней нет, есть неизлечимые люди.

 

JeyCi

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

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

нашла ошибку в макросе, адаптированном, — исправила свой пост выше
— беглым взглядом результат идентичен запросу SQL (пост#14)
sorry — поспешила с выводом — начало совпадает — но если прокрутить страницу вниз —
разница в каких-то 12 значений: sql — общей сложностью строк 1741 (с шапкой), макрос 1729 (с шапкой)
ОШИБКА ВСКРЫТА 8):
есть дубли в исходной таблице (в словарь они попадают как одно значение),
а sql их подгребает задвоенными как есть
(с одним так точно такая проблема — все не искала)

Изменено: JeyCi05.04.2015 17:32:47

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

TheBestOfTheBest

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

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

Excel 2010 +PLEX +SaveToDB +PowerQuery

#20

05.04.2015 17:44:48

Цитата
JeyCi написал:
есть дубли в исходной таблице (в словарь они попадают как одно значение),

Почему вы решили, что AT-

X

610-24-BDL-NCBP1 и AT-

x

610-24-BDL-NCBP1 — одно и тоже? Менеджер старался, вбивал дважды, а вы говорите «одно и тоже»! )

Неизлечимых болезней нет, есть неизлечимые люди.

 

JeyCi

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

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

#21

05.04.2015 18:12:44

Цитата
TheBestOfTheBest написал: Почему вы решили…

потому что

Цитата
The_Prist: Просто человеку лень выложить нормально файл и прочесть справку Приёмы и Правила форума) Плюс слова «не работает» никак не описывают проблему.

p.s. да, если поставить .CompareMode = 0 — отрабатывает как sql
(изменения внесены в макрос выше)

Изменено: JeyCi05.04.2015 18:17:22

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

У меня есть два столбца в Excel, и я хочу найти (желательно выделить) элементы, которые находятся в столбце B, но не в столбце A.

Какой самый быстрый способ сделать это?

  1. Выберите список в столбце A
  2. Щелкните правой кнопкой мыши и выберите Name a Range …
  3. Введите «ColumnToSearch»
  4. Нажмите ячейку C1
  5. Введите эту формулу: =MATCH(B1,ColumnToSearch,0)
  6. Перетащите формулу вниз для всех элементов в B

Если формуле не удается найти совпадение, она будет помечена # N/A, в противном случае это будет число.

Если вы хотите, чтобы оно было ИСТИНА для совпадения и ЛОЖЬ для отсутствия совпадения, используйте эту формулу:

=ISNUMBER(MATCH(B1,ColumnToSearch,0))

Если вы хотите вернуть необнаруженное значение и вернуть пустую строку для найденных значений

=IF(ISNUMBER(MATCH(B1,ColumnToSearch,0)),"",B1)

Вот быстрый и грязный метод.

Выделите столбец B и откройте условное форматирование.

Выбор Используйте формулу, чтобы определить, какие ячейки выделить.

Введите следующую формулу, а затем установите предпочитаемый формат.

=countif(A:A,B1)=0

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

Взял меня навсегда, чтобы понять это, но это очень просто. Предполагая, что данные начинаются с A2 и B2 (для заголовков), введите эту формулу в C2:

=MATCH(B2,$A$2:$A$287,0)

Затем нажмите и перетащите вниз.

Ячейка с #N/A означает, что значение непосредственно рядом с ней в столбце B не отображается нигде во всем столбце A.

Обратите внимание, что вам нужно изменить 287 долларов США, чтобы соответствовать всему поисковому массиву в столбце А. Например, если ваши данные в столбце А уменьшаются на 1000 записей, это должно быть 1000 долларов США.

Смотрите мой ответ по формуле массива на листинг A, который не найден в B здесь:

= ЕСЛИОШИБКА (ИНДЕКС ($ A $ 2:$ A $ 1999, MATCH (0, ЕСЛИОШИБКА (ПОИСКПОЗ ($ A $ 2:$ A $ 1999, $ B $ 2:$ B $ 399,0), СЧЕТЕСЛИ ($ C $ 1:$ С1, $ A $ 2:$ A $ 1999)), 0)), «»)

Сравнение двух столбцов имен и возвращение пропущенных имен

Мои требования состояли не в том, чтобы выделить, а в том, чтобы показать все значения, кроме дубликатов в двух столбцах. Я воспользовался решением @ brenton и улучшил его, чтобы показать значения, чтобы я мог использовать данные напрямую:

=IF(ISNA(MATCH(B2,$A$2:$A$2642,0)), A2, "")

Скопируйте его в первую ячейку 3-го столбца и примените формулу по всему столбцу, чтобы в нем были перечислены все элементы из столбца B, которые не перечислены в столбце A.

Спасибо тем, кто поделился своими ответами. Благодаря вашим решениям я смог сделать свой собственный путь.

В моей версии этого вопроса у меня было две колонки для сравнения — полный выпускной класс (Col A) и подмножество этого выпускного класса (Col B). Я хотел быть в состоянии выделить в полном выпускном классе тех студентов, которые были членами подмножества.

Я поместил следующую формулу в третий столбец:

=if(A2=LOOKUP(A2,$B$2:$B$91),1100,0)

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

ответ дан Drew McAllister11

в C1 напишите =if(A1=B1 , 0, 1) . Затем в Conditional formatting выберите Data bars или Color scales . Это самый простой способ.

ответ дан A.Ramin walyar1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками microsoft-excel microsoft-excel-2007 conditional-formatting.

Самый быстрый ВПР

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

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

Когда я писал свою первую книжку пять лет назад, то уже делал сравнительный скоростной тест различных способов поиска и подстановки данных функциями ВПР, ИНДЕКС+ПОИСКПОЗ, СУММЕСЛИ и др. С тех пор сменилось три версии Office, появились надстройки Power Query и Power Pivot, кардинально изменившие весь процесс работы с данными. А в прошлом году ещё и обновился вычислительный движок Excel, получив поддержку динамических массивов и новые функции ПРОСМОТРХ, ФИЛЬТР и т.п.

Так что пришла пора снова взяться за секундомер и выяснить — кто же самый быстрый. Ну и, заодно, проверить — какие способы поиска и подстановки данных в Excel вы знаете 🙂

Подопытный кролик

Тест будем проводить на следующем примере:

Исходный пример

Это книга Excel с одним листом, где расположены две таблицы: отгрузки (500 000 строк) и прайс-лист (600 строк). Наша задача — подставить цены из прайс-листа в таблицу отгрузок. Для каждого способа будем вводить формулу в ячейку С2 и копировать вниз на весь столбец, замеряя время, которое потребуется Excel, чтобы просчитать весь столбец из полумиллиона ячеек. Полученные значения, безусловно, зависят от множества факторов (поколение процессора, объем оперативной памяти, текущая загрузка системы, версия Office и т.д.), но нам важны не конкретные цифры, а, скорее, их сравнение друг с другом. Важно понимать прожорливость каждого способа и их ограничения.

Способ 1. ВПР

Сначала — классика 🙂 Легендарная функция вертикального просмотра — ВПР (VLOOKUP) , которая приходит в голову первой в подобных ситуациях:

ВПР

  • B2 — искомое значение, т.е. название товара, который мы хотим найти в прайс-листе
  • $G$2:$H$600 — закреплённая знаками доллара (чтобы не сползала при копировании формулы вниз) абсолютная ссылка на прайс
  • 2 — номер столбца в прайс-листе, откуда мы хотим взять цену
  • 0 или ЛОЖЬ — переключение в режим поиска точного соответствия, когда любое некорректное название товара (например, ФОНЕРА) в столбце B в таблице отгрузок приведёт к появлению ошибки #Н/Д как результата работы функции.

Время вычисления = 4,3 сек.

Способ 2. ВПР с выделением столбцов целиком

Многие пользователи, применяя ВПР, во втором аргументе этой функции, где нужно задать поисковую таблицу (прайс), выделяют не ограниченный диапазон ( $G$2:$H$600 ), а сразу столбцы G:H целиком. Это проще, быстрее, позволяет не думать про F4 и то, что завтра прайс-лист может быть на несколько строк больше. Формула в этом случае выглядит тоже компактнее:

ВПР с выделением столбцов целиком

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

Время вычисления = 14,5 сек.

Способ 3. ИНДЕКС и ПОИСКПОЗ

Следующей после ВПР ступенью эволюции для многих пользователей Microsoft Excel обычно является переход на использование связки функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH) . Выглядит эта формула так:

ИНДЕКС и ПОИСКПОЗ

Функция ИНДЕКС извлекает из заданного в первом аргументе диапазона (столбца $H$2:$H$600 с ценами в прайс-листе) содержимое ячейки с заданным номером. А номер этот, в свою очередь, определяется функцией ПОИСКПОЗ, у которой три аргумента:

  • Что нужно найти — название товара из B2
  • Где мы это ищем — столбец с названиями товаров в прайсе ( $G$2:$G$600 )
  • Режим поиска: 0 — точный, 1 или -1 — приблизительный с округлением в меньшую или большую сторону, соответственно.

Формула выходит чуть сложнее, но, при этом имеет несколько ощутимых преимуществ перед классической ВПР, а именно:

  • Не нужно отсчитывать номер столбца (как в третьем аргументе ВПР).
  • Можно извлекать данные, которые находятся левее столбца, где просходит поиск.

По скорости, однако же, этот способ проигрывает ВПР почти в два раза:

Время вычисления = 7,8 сек.

Если же, вдобавок, полениться и выделять не ограниченные диапазоны, а столбцы целиком:

ИНДЕКС и ПОИСКПОЗ с выделением столбцов целиком

. то результат получается совсем печальный:

Время вычисления = 28,5 сек.

28 секунд, Карл! В 6 раз медленнее ВПР!

Способ 4. СУММЕСЛИ

Если нужно найти не текстовые, а именно числовые данные (как в нашем случае — цену), то вместо ВПР вполне можно использовать функцию СУММЕСЛИ (SUMIF) . Изначально она задумывалась как инструмент для выборочного суммирования данных по условию (найди и сложи мне все продажи кабелей, например), но можно заставить её искать нужный нам товар и в прайс-листе. Если грузы в нём не повторяются, то суммировать будет не с чем и эта функция просто выведет искомое значение:

СУММЕСЛИ

  • Первый аргумент СУММЕСЛИ — это диапазон проверяемых ячеек, т.е. названия товаров в прайсе ( $G$2:$G$600 ).
  • Второй аргумент ( B2 ) — что мы ищем.
  • Третий аргумент — диапазон ячеек с ценами $H$2:$H$600 , числа из которых мы хотим просуммировать, если в соседних ячейках проверяемого диапазона есть искомое значение.

Очевидным минусом такого подхода является то, что он работает только с числами. Также этот способ не удобен, если прайс-лист находится в отдельном файле — придется всё время держать его открытым, т.к. функция СУММЕСЛИ не умеет брать данные из закрытых книг, в отличие от ВПР, для которой это не проблема.

В плюсы же можно записать удобство при поиске сразу по нескольким столбцам — для этого идеально подходит более продвинутая версия этой функции — СУММЕСЛИМН (SUMIFS) . Скорость вычислений же, при этом, весьма посредственная:

Время вычисления = 12,8 сек.

При выделении столбцов целиком, т.е. использовании формулы вида =СУММЕСЛИ( G:G ; B2 ; H:H ) всё ещё хуже:

Время вычисления = 41,7 сек.

Это самый плохой результат в нашем тесте.

Способ 5. СУММПРОИЗВ

Этот подход сейчас встречается не часто, но всё ещё достаточно регулярно. Обычно так любят извращаться пользователи старой школы, ещё хорошо помнящие те времена, когда в Excel было всего 255 столбцов и 56 цветов 🙂

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

СУММПРОИЗВ

Выражение ($G$2:$G$600=B2) , по сути, проверяет каждое название груза в прайс-листе на предмет соответствия искомому значению (ФАНЕРА ПР). Результатом каждого сравнения будет логическое значение ИСТИНА (TRUE ) или ЛОЖЬ (FALSE) , что в Excel интерпретируется как 1 и 0, соответственно. Последующее умножение этих нулей и единиц на цены оставит в живых цену только того товара, который нам, в данном случае, и нужен.

Эта формула является, по сути, формулой массива, но не требует нажатия обычного для них сочетания клавиш Ctrl + Shift + Enter , т.к. функция СУММПРОИЗВ поддерживает массивы уже сама по себе. Возможно, по этой же причине (формулы массива всегда медленнее, чем обычные) такой скорость пересчёта такой формулы — не очень:

Время вычисления = 11,8 сек.

  • Совместимость с любыми, самыми древними версиями Excel.
  • Возможность задавать сложные условия (и несколько)
  • Способность этой формулы работать с данными из закрытых файлов, если добавить перед ней двойное бинарное отрицание (два подряд знака «минус»). СУММЕСЛИМН таким похвастаться не может.

Способ 6. ПРОСМОТР

Ещё один относительно экзотический способ поиска и подстановки данных, наравне с ВПР — это использование функции ПРОСМОТР (LOOKUP) . Только не перепутайте её с новой, буквально, на днях появившейся функцией ПРОСМОТРХ (XLOOKUP) — про неё мы поговорим дальше особо. Функция ПРОСМОТР существовала в Excel начиная с самых ранних версий и тоже вполне может решить нашу задачу:

ПРОСМОТР

  • B2 — название груза, которое мы ищем
  • $G$2:$G$600 — одномерный диапазон-вектор (столбец или строка), где мы ищем совпадение
  • $H$2:$H$600 — такого же размера диапазон, откуда нужно вернуть найденный результат (цену)

На первый взгляд всё выглядит очень удобно и логично, но всю картину портят два неочевидных момента:

  • Эта функция требует обязательной сортировки прайс-листа по возрастанию (алфавиту) и без этого не работает.
  • Если в таблице отгрузок искомое значение будет написано с опечаткой (например, АГ Е ДОЛ вместо АГИДОЛ), то функция ПРОСМОТР выдаст не ошибку #Н/Д, а цену для ближайшего предыдущего товара:

При работе с неидеальными данными в реальном мире это гарантированно создаст проблемы, как вы понимаете.

Скорость же вычислений у функции ПРОСМОТР (LOOKUP) весьма приличная:

Время вычисления = 7,6 сек.

Способ 7. Новая функция ПРОСМОТРХ

Эта функция пришла с одним из недавних обновлений пока только пользователям Office 365 и пока отсутствует во всех остальных версиях (Excel 2010, 2013, 2016, 2019). По сравнению с классической ВПР у этой функции есть масса преимуществ (упрощенный синтаксис, возможность искать не только сверху-вниз, возможность сразу задать значение вместо #Н/Д и т.д.) Формула для решения нашей задачи будет выглядеть в этом случае так:

ПРОСМОТРХ

Если не брать в расчёт необязательные 4,5,6 аргументы, то синтаксис этой функции полностью совпадает с её предшественником — функцией ПРОСМОТР (LOOKUP) . Скорость вычислений при тестировании на наши 500000 строк тоже оказалась аналогичной:

Время вычисления = 7,6 сек.

Почти в два раза медленнее, чем у ВПР, вместо которой Microsoft предлагает теперь использовать ПРОСМОТРХ. Жаль.

И, опять же, если полениться и выделить диапазоны в прайс-листе целыми столбцами:

ПРОСМОТРХ и выделение столбцов целиком

. то скорость падает до совершенно неприличных уже значений:

Время вычисления = 28,3 сек.

А если на динамических массивах?

Прошлогоднее (осень 2019) обновление вычислительного движка Microsoft Excel добавило ему поддержку динамических массивов (Dynamic Arrays), о которых я уже писал. Это принципиально новый подход к работе с данными, который можно использовать почти с любыми классическими функциями Excel. На примере ВПР это будет выглядеть так:

ВПР на динамических массивах

Разница с классическим вариантом в том, что первым аргументом ВПР здесь выступает не одно искомое значение (а формулу потом нужно копировать вниз на остальные строки), а сразу весь массив из полумиллиона грузов B2:B500000, цены для которых мы хотим найти. Формула при этом сама распространяется вниз, занимая требуемое количество ячеек.

Скорость пересчета в таком варианте меня, откровенно говоря, ошеломила — пауза между нажатием на Enter после ввода формулы и получением результатов почти отсутствовала.

Время вычисления = 1 сек.

Что интересно, и новая ПРОСМОТРХ, и старая ПРОСМОТР, и связка ИНДЕКС+ПОИСКПОЗ в таком режиме тоже были очень быстрыми — время вычислений не больше 1 секунды! Фантастика.

А вот олдскульные подходы на основе СУММПРОИЗВ и СУММЕСЛИ(МН) с динамическими массивами работать отказались 🙁

Что с умными таблицами?

Обрадовавшись фантастическим результатам, полученным на динамических массивах, я решил вдогон попробовать протестировать разницу в скорости при работе с обычными и «умными» таблицами. Я имею ввиду те самые «красивые таблицы», в которые вы можете преобразовать ваш диапазон с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl + T .

Если предварительно превратить наши отгрузки и прайс в «умные» (по умолчанию они получат имена Таблица1 и Таблица2, соответственно), то формула с той же ВПР будет выглядеть как:

ВПР на умных таблицах

  • [@Груз] — ссылка на ячейку B2, означающая, в данном случае, что нужно взять значение из той же строки из столбца Груз текущей умной таблицы.
  • Таблица2 — ссылка на прайс-лист

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

Скорость же, как выяснилось, тоже вырастает очень значительно и примерно равна скорости работы на динамических массивах:

Время вычисления = 1 сек.

У меня есть подозрение, что дело тут не в самих «умных» таблицах, а всё в том же обновлении вычислительного движка, т.к. на старых версиях Excel такого прироста в скорости на умных таблицах я не помню.

Бонус. Запрос Power Query

Замерять, так замерять! Давайте, для полноты картины, сравним наши перечисленные способы еще и с запросом Power Query, который тоже может решить нашу задачу. Кто-то скажет, что некорректно сравнивать пересчёт формул с механизмом обновления запроса, но мне, откровенно говоря, просто самому было интересно — кто быстрее?

  1. Превращаем обе наши таблицы в «умные» с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl + T .
  2. По очереди загружаем таблицы в Power Query с помощью команды Данные — Из таблицы / диапазона (Data — From Table/Range) .
  3. После загрузки в Power Query возвращаемся обратно в Excel, оставляя загруженные данные как подключение. Для этого в окне Power Query выбираем Главная — Закрыть и загрузить — Закрыть и загрузить в. — Только создать подключение (Home — Close&Load — Close&Load to. — Only create connection) .
  4. После того, как обе исходные таблицы будут загружены как подключения, создадим ещё один, третий запрос, который будет объединять их между собой, подставляя цены из прайса в отгрузки. Для этого на вкладке Данные выберем Получить данные / Создать запрос — Объединить запросы — Объединить (Get Data / New Query — Merge queries — Merge) :

Объединяем запросы

Настройки объединения

Разворачиваем вложенные таблицы после объединения

В отличие от формул, запросы Power Query не обновляются автоматически «на лету», а требуют щелчка правой кнопкой мыши по таблице (или запросу в правой панели) и выбору команды Обновить (Refresh) . Также можно воспользоваться командой Обновить все (Refresh All) на вкладке Данные (Data) .

Время обновления = 8,2 сек.

Итоговая таблица и выводы

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

Итоговая таблица результатов

Само-собой, у каждого из нас свои предпочтения, задачи и тараканы, но для себя я сформулировал выводы после этого тестирования так:

ВПР с несколькими условиями: 5 примеров.

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

Мы предложим вам несколько вариантов решения проблемы поиска по нескольким условиям.

ВПР по нескольким условиям с использованием дополнительного столбца.

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

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

Сразу по трем столбцам функция ВПР искать не может. Поэтому нам нужно объединить их в один. И, поскольку поиск производится всегда в крайнем левом (первом) столбце, то нужно добавить его в нашу таблицу тоже слева.

Вставляем перед таблицей с данными дополнительный столбец A. Затем при помощи оператора & объединяем в нем содержимое B,C и D. Записываем в А7

и копируем в находящиеся ниже ячейки.

Формула поиска в D4 будет выглядеть:

В диапазон поиска включаем и наш дополнительный столбец. Критерий поиска – также объединение 3 значений. И извлекаем результат из 5 колонки.

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

Вид станет приятнее, а на результаты это никак не повлияет.

ВПР по двум условиям при помощи формулы массива.

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

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

Формула в B3 выглядит следующим образом:

Обратите внимание на фигурные скобки, которые означают, что это формула массива. То есть наша функция ВПР работает не с отдельными значениями, а разу с массивами данных.

Разберем процесс подробно.

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

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

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

Как видите, строки, в которых ранее был «Магазин 1», заменены на пустые. И теперь искать нужную дату мы будем только среди информации по «Магазин 2». И извлекать значения выручки из третьей колонки.

С такой работой функция ВПР вполне справится.

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

И затем нажимаете комбинацию клавиш CTRL+Shift+Enter. При этом Excel поймет, что вы хотите ввести формулу массива и сам подставит скобки.

Таким образом, функция ВПР поиск по двум столбцам производит в 2 этапа: сначала мы очищаем диапазон данных от строк, не соответствующих одному из условий, при помощи функции ЕСЛИ и формулы массива. А затем уже в этой откорректированной информации производим обычный поиск по одному только второму критерию при помощи ВПР.

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

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

ВПР по нескольким критериям с применением массивов — способ 2.

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

Условия возьмем те же, что и в предыдущем примере.

Формулу в С4 введем такую:

Естественно, не забываем нажать CTRL+Shift+Enter.

Теперь давайте пошагово разберем, как это работает.

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

Как и в предыдущем примере, мы ищем текст из объединенных в одно целое условий поиска.

Далее определяем данные, среди которых будем искать.

Конструкция вида A7:A20&B7:B20&C7:C20;D7:D20 создает 2 элемента. Первый – это объединение колонок A, B и C из исходных данных. Если помните, то же самое мы делали в нашем дополнительном столбце. Второй D7:D20 – это значения, одно из которых нужно в итоге выбрать.

Функция ВЫБОР позволяет из этих элементов создать массив. как раз и означает, что нужно взять сначала первый элемент, затем второй, и объединить их в виртуальную таблицу – массив.

В первой колонке этой виртуальной таблицы мы будем искать, а из второй – извлекать результат.

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

Двойной ВПР при помощи ИНДЕКС + ПОИСКПОЗ

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

Формула в С4 теперь выглядит так:

И не забываем при вводе нажать CTRL+Shift+Enter! Это формула массива.

Теперь давайте разбираться, как это работает.

Функция ИНДЕКС в нашем случае позволяет извлечь элемент из списка по его порядковому номеру. Список – это диапазон D7:D20, где записаны суммы выручки. А вот порядковый номер, который нужно извлечь, мы определяем при помощи ПОИСКПОЗ.

Синтаксис здесь следующий:

ПОИСКПОЗ(что_ищем; где_ищем; тип_поиска)

Тип поиска ставим 0, то есть точное совпадение. В нашем случае мы будем искать 1. Далее мы определим массив, в котором будем работать.

Выражение (A7:A20=C1)*(B7:B20=C2)*(C7:C20=C3) позволит создать виртуальную таблицу примерно такого вида:

Как видите, первоначально мы последовательно сравниваем каждое значение с нашим критерием отбора. В столбце А у нас записаны месяцы – сравниваем их с месяцем-критерием из ячейки C1. В случае совпадения получаем ИСТИНА, иначе – ЛОЖЬ. Аналогично последовательно проверяем год и название магазина. А затем просто перемножаем значения. Поскольку логические переменные для Excel – это либо 0, либо 1, то произведение их может быть равно 1 только в том случае, если мы имеем по каждой колонке ИСТИНА (то есть,1). Во всех остальных случаях получаем 0.

Убеждаемся, что цифра 1 встречается только единожды.

При помощи ПОИСКПОЗ определяем, на какой позиции она находится. На какой позиции находится 1, на той же позиции находится в массиве и искомая сумма выручки. В нашем случае это 10-я.

Далее при помощи ИНДЕКС извлекаем 10-ю по счету выручку.

Таким образом мы выбрали значение по нескольким условиям без использования функции ВПР.

Достойная замена – функция СУММПРОИЗВ.

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

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

Последовательно по каждой строке диапазона от 2-й до 27-й она проверяет совпадение каждого соответствующего значения с критерием поиска. Эти результаты перемножаются между собой и в итоге еще умножаются на сумму выручки. Если среди трех условий будет хотя бы одно несовпадение, то итогом будет 0. В случае совпадения сумма выручки трижды умножится на 1.

Затем все эти 27 произведений складываются, и результатом будет выручка нужного менеджера в каком-то регионе за определенную дату.

В качестве бонуса можно продолжить этот пример и рассчитать общую сумму продаж менеджера в определенном регионе.

Для этого из формулы просто уберем сравнение по дате.

Кстати, возможен и другой вариант расчета с этой же функцией:

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

Примеры использования функции ВПР:

Как объединить две или несколько таблиц в Excel — В этом руководстве вы найдете некоторые приемы объединения таблиц Excel путем сопоставления данных в одном или нескольких столбцах. Как часто при анализе в Excel вся необходимая информация собирается на одном…

ВПР с несколькими таблицами

2 способа извлечь данные из разных таблиц при помощи ВПР. — Задача: Данные, которые нужно найти и извлечь при помощи функции ВПР, находятся в нескольких таблицах. Эти таблицы имеют одинаковую структуру (то есть, одни и те же столбцы, расположенные в одном…
/> Вычисление номера столбца для извлечения данных в ВПР — Задача: Наиболее простым способом научиться указывать тот столбец, из которого функция ВПР будет извлекать данные. При этом мы не будем изменять саму формулу, поскольку это может привести в случайным ошибкам.…
4 способа, как сделать левый ВПР в Excel. — Функция ВПР – одна из самых популярных, когда нужно найти и извлечь из таблицы какие-либо данные. Но при этом она имеет один существенный недостаток. Поиск она производит в крайнем левом…
Формула ВПР в Excel для сравнения двух таблиц — 4 способа — Сравнение таблиц – это задача, которую в Excel приходится довольно часто решать. Например, у нас есть старый прайс-лист и его новая версия. Нужно просмотреть, цены на какие товары изменились и…
Почему не работает ВПР в Excel? — Функция ВПР – это очень мощный инструмент поиска. Но если он по каким-то причинам завершился неудачно, то вы получите сообщение об ошибке #Н/Д (#N/A в английском варианте). Давайте постараемся вместе…
Функция ВПР в Excel: пошаговая инструкция с 5 примерами — ВПР — это функция Excel для поиска и извлечения данных из определенного столбца в таблице. Она поддерживает приблизительное и точное сопоставление, а также подстановочные знаки (* и ?). Значения поиска…
Формула ВПР в Excel — 22 факта, которые нужно знать. — В процессе работы в Excel часто возникает задача извлечения нужных данных из рабочих таблиц. Для этой цели в Excel предусмотрена формула ВПР (VLOOKUP в английском варианте). И хотя ВПР относительно…

Суть запроса на выборку – выбрать из исходной таблицы строки, удовлетворяющие определенным критериям (подобно применению стандартного Фильтра ). Произведем отбор значений из исходной таблицы с помощью формул массива . В отличие от применения Фильтра ( CTRL+SHIFT+L или Данные/ Сортировка и фильтр/ Фильтр ) отобранные строки будут помещены в отдельную таблицу.

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

1. Один числовой критерий (Выбрать те Товары, у которых цена выше минимальной)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист Один критерий — число ).

Необходимо отобразить в отдельной таблице только те записи (строки) из Исходной таблицы, у которых цена выше 25.

Решить эту и последующие задачи можно легко с помощью стандартного фильтра . Для этого выделите заголовки Исходной таблицы и нажмите CTRL+SHIFT+L . Через выпадающий список у заголовка Цены выберите Числовые фильтры. , затем задайте необходимые условия фильтрации и нажмите ОК.

Будут отображены записи удовлетворяющие условиям отбора.

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

Критерий (минимальную цену) разместим в ячейке Е6 , таблицу для отфильтрованных данных — в диапазоне D10:E19 .

Теперь выделим диапазон D11:D19 (столбец Товар) и в Строке формул введем формулу массива :

Вместо ENTER нажмите сочетание клавиш CTRL+SHIFT+ENTER .

Те же манипуляции произведем с диапазоном E11:E19 куда и введем аналогичную формулу массива :

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

Чтобы показать динамизм полученного Отчета (Запроса на выборку) введем в Е6 значение 65. В новую таблицу будет добавлена еще одна запись из Исходной таблицы, удовлетворяющая новому критерию.

Если в Исходную таблицу добавить новый товар с Ценой в диапазоне от 25 до 65, то в новую таблицу будет добавлена новая запись.

В файле примера также содержатся формулы массива с обработкой ошибок, когда в столбце Цена содержится значение ошибки, например #ДЕЛ/0! (см. лист Обработка ошибок ).

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

3. Один критерий Дата (Выбрать те Товары, у которых Дата поставки совпадает заданной)

Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист Один критерий — Дата ).

Для отбора строк используются формулы массива, аналогичные Задаче1 (вместо критерия =$B$12:$B$20)*(СТРОКА($B$12:$B$20)-СТРОКА($B$11));$J$12-СТРОКА(A12)+СТРОКА($B$11)+1))

Примечание : После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER. Это сочетание клавиш используется для ввода формул массива.

Скопируйте формулу массива вниз на нужное количество ячеек. Формула вернет только те значения Товаров, которые были поставлены в диапазоне указанных дат. В остальных ячейках будут содержаться ошибки #ЧИСЛО! Ошибки в файле примера (Лист 4.Диапазон Дат) скрыты с помощью Условного форматирования .

Аналогичную формулу нужно ввести и для дат в столбец E.

В ячейке J12 вычислено количество строк исходной таблицы, удовлетворяющих критериям:

Решение2 : Для отбора строк можно использовать формулы массива, аналогичные Задаче2 (т.е. формулы массива, возвращающие несколько значений ):

Для ввода первой формулы выделите диапазон ячеек G12:G20 . После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER.

Решение3 : Если столбец Дат СОРТИРОВАН, то можно не использовать формулы массива.

Сначала необходимо вычислить первую и последнюю позиции строк, которые удовлетворяют критериям. Затем вывести строки с помощью функции СМЕЩ() .

Этот пример еще раз наглядно демонстрирует насколько предварительная сортировка данных облегчает написание формул.

5. Один критерий Дата (Выбрать те Товары, у которых Дата поставки не раньше/ не позже заданной)

Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист Один критерий — Дата (не позже) ).

Для отбора строк, дата которых не раньше (включая саму дату), используется формула массива:

= ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ($E$7 C15;И($B$7>=B15;$B$7 =$B$13:$B$21)*($B$13:$B$21>0);СТРОКА($B$13:$B$21);»»);СТРОКА($B$13:$B$21)-СТРОКА($B$12)) -СТРОКА($B$12))

Условие $E$7=$A$13:$A$21 гарантирует, что будут отобраны товары только определенного типа. Условие $E$8>=$B$13:$B$21 гарантирует, что будут отобраны даты не позже заданной (включая). Условие $B$13:$B$21>0 необходимо, если в диапазоне дат имеются пустые ячейки. Знак * (умножение) используется для задания Условия И (все 3 критерия должны выполняться для строки одновременно).

Примечание . Случай, когда список несортирован, рассмотрен в статье Поиск ДАТЫ (ЧИСЛА) ближайшей к заданной, с условием в MS EXCEL. Несортированный список .

7. Один Текстовый критерий (Выбрать Товары определенного вида)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист Один критерий — Текст ).

Задача решается аналогично Задачам 1 и 3. Более подробное решение см. в статье Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть1. Обычный поиск .

8. Два Текстовых критерия (Выбрать Товары определенного вида, поставленные в заданный месяц)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист 2 критерия — текст (И) ).

Для отбора строк используется формула массива:

Выражение ($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19) задает оба условия (Товар и Месяц).

Выражение СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК($A$11:$A$19))) формирует массив последовательных чисел , т.е. номера строк в таблице.

9. Два Текстовых критерия (Выбрать Товары определенных видов)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист 2 критерия — текст (ИЛИ) ).

В отличие от Задачи 7 отберем строки с товарами 2-х видов ( Условие ИЛИ ).

Для отбора строк используется формула массива:

= ИНДЕКС(A$11:A$19; НАИБОЛЬШИЙ((($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19))*(СТРОКА($A$11:$A$19)-СТРОКА($A$10)); СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1))

Условие ($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19) гарантирует, что будут отобраны товары только заданных видов из желтых ячеек (Товар2 и Товар3). Знак + (сложение) используется для задания Условие ИЛИ (должен быть выполнен хотя бы 1 критерий).

Вышеуказанное выражение вернет массив . Умножив его на выражение СТРОКА($A$11:$A$19)-СТРОКА($A$10) , т.е. на массив последовательных чисел , получим массив позиций (номеров строк таблицы), удовлетворяющих критериям. В нашем случае это будет массив .

С помощью функции НАИБОЛЬШИЙ() выведем 3 значения из позиции 5 (строка 15 листа), 6 (16) и 7 (17), т.е. значения Товар2, Товар2 и Товар3. Для этого используем выражение СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1 , которое последовательно (начиная со строки 11) будет возвращать числа 3; 2; 1; 0; -1; -2; . Формула НАИБОЛЬШИЙ(. ;3) вернет число 5, НАИБОЛЬШИЙ(. ;2) вернет число 6, НАИБОЛЬШИЙ(. ;1) вернет число 7, а НАИБОЛЬШИЙ(. ;0) и далее вернет ошибку, которую мы скроем условным форматированием .

И наконец, с помощью функции ИНДЕКС() последовательно выведем наши значения из соответствующих позиций: = ИНДЕКС(A$11:A$19;5) вернет Товар2, = ИНДЕКС(A$11:A$19;6) вернет Товар2, = ИНДЕКС(A$11:A$19;7) вернет Товар3.

10. Отбор значений с учетом повторов

В разделе Отбор на основании повторяемости собраны статьи о запросах с группировкой данных. Из повторяющихся данных сначала отбираются уникальные значения, а соответствующие им значения в других столбцах — группируются (складываются, усредняются и пр.).

Наиболее популярные статьи из этого раздела:

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

В качестве исходной возьмем таблицу партий товаров.

Предположим, что нас интересует сколько и каких партий товаров поставлялось по цене от 1000р. до 2000р. (критерий 1). Причем, партий с одинаковой ценой должно быть минимум 3 (критерий 2).

Решением является формула массива:

Эта формула возвращает номера строк, которые удовлетворяют обоим критериям.

Формула =СУММПРОИЗВ(($C$14:$C$27>=$B$7)*($C$14:$C$27 =$B$10)) подсчитывает количество строк, которые удовлетворяют критериям.

В файле примера на листе «10.Критерий — колич-во повторов» настроено Условное форматирование , которое позволяет визуально определить строки удовлетворяющие критериям, а также скрыть ячейки, в которых формула массива возвращает ошибку #ЧИСЛО!

11. Используем значение критерия (Любой) или (Все)

В фильтре Сводных таблиц MS EXCEL используется значение (Все), чтобы вывести все значения столбца. Другими словами, в выпадающем списке значений критерия содержится особое значение, которое отменяет сам критерий (см. статью Отчеты в MS EXCEL , Отчет №3).

В файле примера на листе «11. Критерий Любой или (Все)» реализован данный вариант критерия.

Формула в этом случае должна содержать функцию ЕСЛИ() . Если выбрано значение (Все), то используется формула для вывода значений без учета данного критерия. Если выбрано любое другое значение, то критерий работает обычным образом.

Остальная часть формулы аналогична рассмотренным выше.

12. Актуальная цена

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

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

2) определяем последнюю (максимальную) дату для каждого товара с помощью формулы массива =МАКС((Таблица1[товар]=E8)*Таблица1[дата])

3) наконец, выводим актуальную цену =СУММЕСЛИМН(Таблица1[цена];Таблица1[товар];E8;Таблица1[дата];F8)

Для товара не должно быть повторов дат, иначе цены будут суммироваться (если повторяется последняя дата).

Поиск в программе Microsoft Excel

Поиск в Microsoft Excel

​Смотрите также​=ПСТР(A3;1;НАЙТИ(» №»;A3;1)-1)​К языкам, поддерживающим БДЦС,​/​ на листе​ искать,0))​Результат: Beijing​ВПР+СУММ​A1:C10​(номер_строки) и​ быть упорядочен по​(массив) – это​ «объем.»​, с которого следует​ будут отображены все​ написание этого слова​ виде списка в​

​В документах Microsoft Excel,​Выделяет текст от позиции​

Поисковая функция в Excel

​ относятся японский, китайский​ПОИСКПОЗ​Lookup table​=ИНДЕКС(Ваша таблица,(MATCH(значение для вертикального​2.​. Дело в том,​, и требуется извлечь​column_num​ убыванию, то есть​

Способ 1: простой поиск

​ диапазон ячеек, из​Доход: объем​ начать поиск.​ ячейки, в которых​ с большой буквы,​ нижней части поискового​ которые состоят из​ 1 до знака​ (упрощенное письмо), китайский​

  1. ​сообщает об ошибке​​расположены в произвольном​​ поиска,столбец, в котором​​MIN​​ что проверка каждого​ данные из столбца​(номер_столбца) функции​​ от большего к​​ которого необходимо извлечь​=ПСТР(A3;ПОИСК(» «;A3)+1,4)​​Функции​​ находятся данные слова​ как это было​ окна. В этом​ большого количества полей,​​ «№» в ячейке​​ (традиционное письмо) и​

    Переход к поиску в Microsoft Excel

  2. ​#N/A​ порядке.​ искать,0)),(MATCH(значение для горизонтального​(МИН). Формула находит​ значения в массиве​B​​MATCH​​ меньшему.​​ значение.​​Возвращает первые четыре знака,​ПОИСК​​ в любом порядке.​​ бы по умолчанию,​ списке находятся информация​ часто требуется найти​ А3 («Медная пружина»)​ корейский.​​(#Н/Д) или​​Вот такая формула​​ поиска,строка в которой​​ минимум в столбце​

    Обычный поиск в Microsoft Excel

  3. ​ требует отдельного вызова​​, то нужно задать​​(ПОИСКПОЗ). Иначе результат​На первый взгляд, польза​row_num​ которые следуют за​и​

    ​Как только настройки поиска​ уже не попадут.​ о содержимом ячеек​ определенные данные, наименование​Медная пружина​НАЙТИ(искомый_текст;просматриваемый_текст;[нач_позиция])​#VALUE!​ИНДЕКС​ искать,0))​D​ функции​

    ​ значение​ формулы будет ошибочным.​ от функции​(номер_строки) – это​ первым пробелом в​ПОИСКБ​ установлены, следует нажать​ Кроме того, если​ с данными, удовлетворяющими​ строки, и т.д.​=ПСТР(A4;1;НАЙТИ(» №»;A4;1)-1)​НАЙТИБ(искомый_текст;просматриваемый_текст;[нач_позиция])​(#ЗНАЧ!). Если Вы​/​Обратите внимание, что для​и возвращает значение​ВПР​2​Стоп, стоп… почему мы​ПОИСКПОЗ​

    ​ номер строки в​ строке «Доход: маржа»​не учитывают регистр.​​ на кнопку​​ включена функция​

    Результат обычного поиска в Microsoft Excel

    ​ запросу поиска, указан​ Очень неудобно, когда​Выделяет текст от позиции​Аргументы функций НАЙТИ и​ хотите заменить такое​

  4. ​ПОИСКПОЗ​ двумерного поиска нужно​ из столбца​. Поэтому, чем больше​​для аргумента​​ не можем просто​вызывает сомнение. Кому​ массиве, из которой​ (ячейка A3).​ Если требуется учитывать​«Найти всё»​«Ячейки целиком»​ их адрес расположения,​ приходится просматривать огромное​ 1 до знака​ НАЙТИБ описаны ниже.​ сообщение на что-то​решает задачу:​ указать всю таблицу​C​ значений содержит массив​col_index_num​ использовать функцию​ нужно знать положение​ нужно извлечь значение.​марж​ регистр, используйте функции​или​, то в выдачу​

Найти всё в Microsoft Excel

Способ 2: поиск по указанному интервалу ячеек

​ а также лист​ количество строк, чтобы​ «№» в ячейке​Искомый_текст​ более понятное, то​{=INDEX(‘Lookup table’!$A$2:$C$13,MATCH(1,(A2=’Lookup table’!$A$2:$A$13)*​ в аргументе​той же строки:​ и чем больше​(номер_столбца) функции​VLOOKUP​ элемента в диапазоне?​ Если не указан,​=ПОИСК(«»»»;A5)​

  1. ​НАЙТИ​«Найти далее»​ будут добавляться только​

    Выделение интервала в Microsoft Excel

  2. ​ и книга, к​ найти нужное слово​​ А4 («Переменный резистор»)​​    — обязательный аргумент. Текст,​ можете вставить формулу​(B2=’Lookup table’!$B$2:$B$13),0),3)}​​array​​=INDEX($C$2:$C$10,MATCH(MIN($D$2:I$10),$D$2:D$10,0))​ формул массива содержит​ВПР​(ВПР)? Есть ли​ Мы хотим знать​ то обязательно требуется​Позиция первой двойной кавычки​и​

Поиск по интервалу в Microsoft Excel

Способ 3: Расширенный поиск

​, чтобы перейти к​ элементы, содержащие точное​ которым они относятся.​ или выражение. Сэкономить​Переменный резистор​ который необходимо найти.​ с​{=ИНДЕКС(‘Lookup table’!$A$2:$C$13;ПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13)*​(массив) функции​

​=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МИН($D$2:I$10);$D$2:D$10;0))​ Ваша таблица, тем​, вот так:​ смысл тратить время,​ значение этого элемента!​ аргумент​ («) в ячейке​НАЙТИБ​ поисковой выдаче.​ наименование. Например, если​ Для того, чтобы​ время и нервы​Иван леконтцев​Просматриваемый_текст​ИНДЕКС​(B2=’Lookup table’!$B$2:$B$13);0);3)}​INDEX​Результат: Lima​ медленнее работает Excel.​=VLOOKUP(«lookup value»,A1:C10,2)​ пытаясь разобраться в​Позвольте напомнить, что относительное​column_num​ A5.​.​Как видим, программа Excel​ вы зададите поисковый​ перейти к любому​ поможет встроенный поиск​: можно сделать фильтр​

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

​    — обязательный аргумент. Текст,​и​Эта формула сложнее других,​(ИНДЕКС).​3.​С другой стороны, формула​

  1. ​=ВПР(«lookup value»;A1:C10;2)​​ лабиринтах​​ положение искомого значения​(номер_столбца).​​5​​В аргументе​

    Переход в параметры поиска в Microsoft Excel

  2. ​ представляет собой довольно​ запрос «Николаев», то​ из результатов выдачи,​ Microsoft Excel. Давайте​ (автофильтр) и используя​ в котором нужно​ПОИСКПОЗ​ которые мы обсуждали​А теперь давайте испытаем​

    Параметры поиска по умолчанию в Microsoft Excel

    ​AVERAGE​​ с функциями​​Если позднее Вы вставите​​ПОИСКПОЗ​​ (т.е. номер строки​column_num​=ПСТР(A5;ПОИСК(«»»»;A5)+1;ПОИСК(«»»»;A5;ПОИСК(«»»»;A5)+1)-ПОИСК(«»»»;A5)-1)​искомый_текст​ простой, но вместе​ ячейки, содержащие текст​ достаточно просто кликнуть​ разберемся, как он​ его выводить только​ найти искомый текст.​в функцию​ ранее, но вооруженные​ этот шаблон на​(СРЗНАЧ). Формула вычисляет​ПОИСКПОЗ​ новый столбец между​и​ и/или столбца) –​(номер_столбца) – это​​Возвращает из ячейки A5​​можно использовать подстановочные​ с тем очень​ «Николаев А. Д.»,​ по нему левой​ работает, и как​ необходимые значения.​Начальная_позиция​ЕСЛИОШИБКА​ знанием функций​ практике. Ниже Вы​

    Настройки поиска в Microsoft Excel

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

    Область поиска в Microsoft Excel

    ​ им пользоваться.​​видео как сделать​​    — необязательный аргумент. Знак,​.​ИНДЕКС​ видите список самых​D2:D10​ИНДЕКС​A​​?​​ то, что мы​ массиве, из которого​ в двойные кавычки.​ (​

    Содержимое поиска в Microsoft Excel

    ​ поиска. Для того,​​ добавлены не будут.​​ этого курсор перейдет​Скачать последнюю версию​ автофильтр.​ с которого нужно​Синтаксис функции​и​ населённых стран мира.​, затем находит ближайшее​просто совершает поиск​и​=VLOOKUP(«Japan»,$B$2:$D$2,3)​ должны указать для​ нужно извлечь значение.​босс​?​ чтобы произвести простейший​По умолчанию, поиск производится​ на ту ячейку​ Excel​_______________​ начать поиск. Первый​ЕСЛИОШИБКА​ПОИСКПОЗ​ Предположим, наша задача​ к нему и​​ и возвращает результат,​​B​​=ВПР(«Japan»;$B$2:$D$2;3)​​ аргументов​ Если не указан,​Этот учебник рассказывает о​) и звездочку (​ писк, достаточно вызвать​​ только на активном​​ Excel, по записи​

    Область поиска в программе Microsoft Excel

    ​Поисковая функция в программе​в вопросах о​ знак в тексте​​очень прост:​​Вы одолеете ее.​

    Переход к формату поиска в Microsoft Excel

    ​ узнать население США​ возвращает значение из​ выполняя аналогичную работу​, то значение аргумента​В данном случае –​row_num​ то обязательно требуется​ главных преимуществах функций​*​ поисковое окно, ввести​ листе Excel. Но,​ которой пользователь сделал​ Microsoft Excel предлагает​

    Формат поиска в Microsoft Excel

    ​ офисных продуктах неплохо​ «просматриваемый_текст» имеет номер​IFERROR(value,value_if_error)​ Самая сложная часть​ в 2015 году.​​ столбца​​ заметно быстрее.​

    Переход к выбору ячейки для установки формата в Microsoft Excel

    ​ придется изменить с​ смысла нет! Цель​(номер_строки) и/или​ аргумент​ИНДЕКС​). Вопросительный знак соответствует​

    Выбор ячейки для установки формата в Microsoft Excel

    ​ в него запрос,​ если параметр​ щелчок.​​ возможность найти нужные​​ было бы указывать​

    Установка формата поиска в Microsoft Excel

    ​ 1. Если номер​ЕСЛИОШИБКА(значение;значение_если_ошибка)​ – это функция​Хорошо, давайте запишем формулу.​C​Теперь, когда Вы понимаете​2​ этого примера –​column_num​row_num​и​ любому знаку, звездочка —​ и нажать на​«Искать»​Если у вас довольно​ текстовые или числовые​ какой версией пользуйтесь.​ опущен, он полагается​

    Поиск по отдельным словам в Microsoft Excel

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

Запуск расширенного поиска в Microsoft Excel

​(номер_строки)​ПОИСКПОЗ​ любой последовательности знаков.​ кнопку. Но, в​вы переведете в​ масштабная таблица, то​ значения через окно​Сергей харин​ равным 1.​value​, думаю, её нужно​ создать сложную формулу​=INDEX($C$2:$C$10,MATCH(AVERAGE($D$2:D$10),$D$2:D$10,1))​ стоит изучать функции​3​ Вы могли понять,​INDEX​Если указаны оба аргумента,​

​в Excel, которые​

lumpics.ru

ПОИСК, ПОИСКБ (функции ПОИСК, ПОИСКБ)

​ Если требуется найти​ то же время,​ позицию​​ в таком случае​​ «Найти и заменить».​​: Ctrl+F​​Функции НАЙТИ и НАЙТИБ​

Описание

​(значение) – это​​ объяснить первой.​​ в Excel с​​=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(СРЗНАЧ($D$2:D$10);$D$2:D$10;1))​​ПОИСКПОЗ​, иначе формула возвратит​ как функции​(ИНДЕКС). Как Вы​ то функция​ делают их более​ вопросительный знак или​ существует возможность настройки​«В книге»​ не всегда удобно​ Кроме того, в​

​Ввести условие поиска​

​ работают с учетом​​ значение, проверяемое на​​MATCH(1,(A2=’Lookup table’!$A$2:$A$13),0)*(B2=’Lookup table’!$B$2:$B$13)​ вложенными функциями, то​Результат: Moscow​

​и​ результат из только​ПОИСКПОЗ​

​ помните, функция​

​ИНДЕКС​​ привлекательными по сравнению​​ звездочку, введите перед​ индивидуального поиска с​, то поиск будет​ производить поиск по​ приложении имеется возможность​​Enter​​ регистра и не​​ предмет наличия ошибки​​ПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13);0)*(B2=’Lookup table’!$B$2:$B$13)​ я сначала каждую​Используя функцию​ИНДЕКС​ что вставленного столбца.​и​​ИНДЕКС​​возвращает значение из​​ с​​ ним тильду (​ большим количеством различных​​ производиться по всем​​ всему листу, ведь​​ расширенного поиска данных.​​Inga zayonts​ позволяют использовать подстановочные​ (в нашем случае​

​В формуле, показанной выше,​​ вложенную записываю отдельно.​

  • ​СРЗНАЧ​, давайте перейдём к​Используя​

  • ​ИНДЕКС​может возвратить значение,​ ячейки, находящейся на​ВПР​~​ параметров и дополнительных​ листам открытого файла.​ в поисковой выдаче​Простой поиск данных в​: У вас не​ знаки. Если необходимо​ – результат формулы​ искомое значение –​

​Итак, начнём с двух​в комбинации с​ самому интересному и​ПОИСКПОЗ​работают в паре.​

Синтаксис

​ находящееся на пересечении​

​ пересечении указанных строки​

​. Вы увидите несколько​).​

  • ​ настроек.​​В параметре​ может оказаться огромное​

  • ​ программе Excel позволяет​​ полный вопрос…​ выполнить поиск без​ИНДЕКС​​ это​​ функций​

  • ​ИНДЕКС​​ увидим, как можно​/​​ Последующие примеры покажут​​ заданных строки и​ и столбца.​

Замечание

  • ​ примеров формул, которые​​Если​​Автор: Максим Тютюшев​​«Просматривать»​​ количество результатов, которые​ найти все ячейки,​С таким же​​ учета регистра или​​/​​1​​ПОИСКПОЗ​

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

  • ​ПОИСКПОЗ​​ на практике.​​, Вы можете удалять​ связки​

  • ​ не может определить,​​INDEX​​ справиться со многими​не найден, возвращается​

  • ​ синтаксис формулы и​​ поиска. По умолчанию,​​ не нужны. Существует​ введенный в поисковое​ : » где​​ воспользуйтесь функцией ПОИСК​​); а аргумент​ – это результат​

  • ​ номера строки и​​, в качестве третьего​​Любой учебник по​ или добавлять столбцы​ИНДЕКС​ какие именно строка​​(ИНДЕКС):​​ сложными задачами, перед​ значение ошибки #ЗНАЧ!.​ использование функций​ как уже говорилось​ способ ограничить поисковое​ окно набор символов​ находится переулок» и​​ или ПОИСКБ.​​value_if_error​ умножения. Хорошо, что​ столбца для функции​ аргумента функции​ВПР​ к исследуемому диапазону,​и​​ и столбец нас​​=INDEX(A1:C10,2,3)​ которыми функция​Если аргумент​ПОИСК​​ выше, поиск ведется​​ пространство только определенным​ (буквы, цифры, слова,​ не указать какой​​Если в качестве аргумента​​(значение_если_ошибка) – это​ же мы должны​ИНДЕКС​​ПОИСКПОЗ​​твердит, что эта​ не искажая результат,​ПОИСКПОЗ​​ интересуют.​​=ИНДЕКС(A1:C10;2;3)​

Примеры

​ВПР​начальная_позиция​и​ по порядку построчно.​ диапазоном ячеек.​ и т.д.) без​ именно.​ «искомый_текст» задана пустая​ значение, которое нужно​ перемножить и почему?​:​чаще всего нужно​ функция не может​

​ так как определен​

​, которая легко справляется​

​Теперь, когда Вам известна​

​Формула выполняет поиск в​

​бессильна.​

​опущен, то он​

​ПОИСКБ​

​ Переставив переключатель в​

​Выделяем область ячеек, в​

​ учета регистра.​Сергей Харин предложил​ строка («»), функция​ возвратить, если формула​

​ Давайте разберем все​

​ПОИСКПОЗ для столбца​

​ будет указывать​ смотреть влево. Т.е.​ непосредственно столбец, содержащий​ с многими сложными​ базовая информация об​ диапазоне​

​В нескольких недавних статьях​

​ полагается равным 1.​

​в Microsoft Excel.​ позицию​ которой хотим произвести​Находясь во вкладке​ универсальный поиск.​ НАЙТИ выводит значение,​ выдаст ошибку.​ по порядку:​

​– мы ищем​

​1​

​ если просматриваемый столбец​ нужное значение. Действительно,​ ситуациями, когда​ этих двух функциях,​A1:C10​

​ мы приложили все​

​Если аргумент​

​Функции​«По столбцам»​ поиск.​

​«Главная»​

​Но учитывая что​

​ равное первому знаку​Например, Вы можете вставить​Берем первое значение в​

​ в столбце​

support.office.com

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

​или​ не является крайним​​ это большое преимущество,​​ВПР​​ полагаю, что уже​​и возвращает значение​ усилия, чтобы разъяснить​начальная_позиция​ПОИСК​​, можно задать порядок​​Набираем на клавиатуре комбинацию​, кликаем по кнопке​ у вас лист​ в строке поиска​ формулу из предыдущего​ столбце​​B​​-1​

​ левым в диапазоне​ особенно когда работать​оказывается в тупике.​ становится понятно, как​ ячейки во​​ начинающим пользователям основы​​не больше 0​И​ формирования результатов выдачи,​ клавиш​«Найти и выделить»​ большогог размера, то​​ (знак с номером,​​ примера в функцию​A​, а точнее в​в случае, если​

​ поиска, то нет​ приходится с большими​Решая, какую формулу использовать​​ функции​​2-й​ функции​ или больше, чем​ПОИСКБ​ начиная с первого​Ctrl+F​, которая расположена на​ это не самый​ соответствующим аргументу «нач_позиция»​​ЕСЛИОШИБКА​​(Customer) на листе​​ диапазоне​​ Вы не уверены,​ шансов получить от​ объёмами данных. Вы​ для вертикального поиска,​ПОИСКПОЗ​​строке и​​ВПР​

ИНДЕКС и ПОИСКПОЗ в Excel

  • ​ длина​находят одну текстовую​
  • ​ столбца.​, после чего запуститься​
  • ​ ленте в блоке​ удобный вариант.​
  • ​ или 1).​вот таким образом:​
    • ​Main table​B2:B11​
    • ​ что просматриваемый диапазон​ВПР​
    • ​ можете добавлять и​ большинство гуру Excel​
    • ​и​
    • ​3-м​и показать примеры​

Базовая информация об ИНДЕКС и ПОИСКПОЗ

​просматриваемого текста​ строку в другой​В графе​​ знакомое нам уже​​ инструментов​​Машину можно заставить​​Искомый_текст не может содержать​=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),​и сравниваем его​, значение, которое указано​ содержит значение, равное​

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

ИНДЕКС – синтаксис и применение функции

​ подстановочные знаки.​​»Совпадений не найдено.​​ со всеми именами​ в ячейке​ среднему. Если же​Функции​ беспокоясь о том,​ИНДЕКС​

​могут работать вместе.​
​ из ячейки​

​ для продвинутых пользователей.​ #ЗНАЧ!.​

  • ​ позицию первой текстовой​​определяется, среди каких​«Найти и заменить»​. В появившемся меню​ нужную информацию в​
  • ​Если «искомый_текст» отсутствует в​​ Попробуйте еще раз!»)​ покупателей в таблице​H2​ Вы уверены, что​ПОИСКПОЗ​ что нужно будет​/​​ПОИСКПОЗ​​C2​
  • ​ Теперь мы попытаемся,​​Аргумент​ строки (считая от​ конкретно элементов производится​. Дальнейшие действия точно​ выбираем пункт​ удобном для вас​ тексте «просматриваемый_текст», функции​​=ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0));​​ на листе​

​(USA). Функция будет​ такое значение есть,​​и​​ исправлять каждую используемую​ПОИСКПОЗ​определяет относительную позицию​.​

​ если не отговорить​​начальная_позиция​​ первого символа второй​

​ поиск. По умолчанию,​
​ такие же, что​

​«Найти…»​ месте, так же​​ НАЙТИ и НАЙТИБ​​»Совпадений не найдено.​Lookup table​​ выглядеть так:​​ – ставьте​​ИНДЕКС​​ функцию​намного лучше, чем​​ искомого значения в​​Очень просто, правда? Однако,​

​ Вас от использования​можно использовать, чтобы​ текстовой строки). Например,​ это формулы, то​ и при предыдущем​. Вместо этих действий​ можно искать по​​ возвращают значение ошибки​​ Попробуйте еще раз!»)​

ПОИСКПОЗ – синтаксис и применение функции

​(A2:A13).​​=MATCH($H$2,$B$1:$B$11,0)​​0​в Excel гораздо​ВПР​ВПР​ заданном диапазоне ячеек,​ на практике Вы​

​ВПР​​ пропустить определенное количество​​ чтобы найти позицию​ есть те данные,​ способе. Единственное отличие​ можно просто набрать​​ индексу/артикулу/номеру тлф и​​ #ЗНАЧ!.​И теперь, если кто-нибудь​Если совпадение найдено, уравнение​

​=ПОИСКПОЗ($H$2;$B$1:$B$11;0)​
​для поиска точного​

​ более гибкие, и​​.​​. Однако, многие пользователи​ а​

​ далеко не всегда​
​, то хотя бы​

  • ​ знаков. Допустим, что​​ буквы «n» в​ которые при клике​ будет состоять в​ на клавиатуре сочетание​ т. д.​Если «нач_позиция» не больше​ введет ошибочное значение,​
  • ​ возвращает​​Результатом этой формулы будет​ совпадения.​ им все-равно, где​
  • ​3. Нет ограничения на​​ Excel по-прежнему прибегают​ИНДЕКС​​ знаете, какие строка​​ показать альтернативные способы​ функцию​ слове «printer», можно​
    • ​ по ячейке отображаются​​ том, что поиск​​ клавиш​​Компьютер может «дописывить»​ нуля, функции НАЙТИ​ формула выдаст вот​1​4​Если указываете​ находится столбец со​
    • ​ размер искомого значения.​​ к использованию​использует это число​ и столбец Вам​​ реализации вертикального поиска​​ПОИСК​​ использовать следующую функцию:​​ в строке формул.​ выполняется только в​Ctrl+F​​ строку по введенноу​​ и НАЙТИБ возвращают​​ такой результат:​​(ИСТИНА), а если​
    • ​, поскольку «USA» –​​1​ значением, которое нужно​Используя​ВПР​ (или числа) и​ нужны, и поэтому​ в Excel.​нужно использовать для​

​=ПОИСК(«н»;»принтер»)​ Это может быть​​ указанном интервале ячеек.​​.​ слову​ значение ошибки #ЗНАЧ!.​Если Вы предпочитаете в​ нет –​

​ это 4-ый элемент​, значения в столбце​ извлечь. Для примера,​ВПР​, т.к. эта функция​ возвращает результат из​ требуется помощь функции​Зачем нам это? –​​ работы с текстовой​​Эта функция возвращает​​ слово, число или​​Как уже говорилось выше,​​После того, как вы​​можно найти и​Если «нач_позиция» больше, чем​​ случае ошибки оставить​​0​ списка в столбце​ поиска должны быть​ снова вернёмся к​, помните об ограничении​ гораздо проще. Так​ соответствующей ячейки.​ПОИСКПОЗ​

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

​ спросите Вы. Да,​ строкой «МДС0093.МужскаяОдежда». Чтобы​4​ ссылка на ячейку.​ при обычном поиске​ перешли по соответствующим​​ вывести на экран​​ длина аргумента «просматриваемый_текст»,​​ ячейку пустой, то​​(ЛОЖЬ).​​B​​ упорядочены по возрастанию,​ таблице со столицами​ на длину искомого​ происходит, потому что​​Ещё не совсем понятно?​​.​ потому что​ найти первое вхождение​, так как «н»​

​ При этом, программа,​ в результаты выдачи​​ пунктам на ленте,​​ все что имеет​​ функции НАЙТИ и​​ можете использовать кавычки​

​Далее, мы делаем то​(включая заголовок).​ а формула вернёт​
​ государств и населением.​ значения в 255​ очень немногие люди​

​ Представьте функции​Функция​ВПР​ «М» в описательной​ является четвертым символом​

ИНДЕКС и ПОИСКПОЗ в Excel

​ выполняя поиск, видит​ попадают абсолютно все​ или нажали комбинацию​ определенный цвет и/или​

​ НАЙТИБ, то возвращается​
​ («»), как значение​

​ же самое для​ПОИСКПОЗ для строки​ максимальное значение, меньшее​

  • ​ На этот раз​​ символов, иначе рискуете​​ до конца понимают​ИНДЕКС​​MATCH​​– это не​ части текстовой строки,​​ в слове «принтер».​​ только ссылку, а​​ ячейки, содержащие последовательный​​ «горячих клавиш», откроется​ размер не превышает​ значение ошибки #ЗНАЧ!.​
  • ​ второго аргумента функции​​ значений столбца​​– мы ищем​​ или равное среднему.​​ запишем формулу​​ получить ошибку​​ все преимущества перехода​и​(ПОИСКПОЗ) в Excel​ единственная функция поиска​ задайте для аргумента​

    ​Можно также находить слова​
    ​ не результат. Об​

    ​ набор поисковых символов​ окно​ L*H​​Аргумент «нач_позиция» можно использовать,​​ЕСЛИОШИБКА​​B​​ значение ячейки​Если указываете​ПОИСКПОЗ​#VALUE!​​ с​​ПОИСКПОЗ​ ищет указанное значение​ в Excel, и​

​начальная_позиция​ в других словах.​

ИНДЕКС и ПОИСКПОЗ в Excel

​ этом эффекте велась​ в любом виде​«Найти и заменить»​​Но для этого​​ чтобы пропустить нужное​. Вот так:​​(Product).​​H3​​-1​​/​​(#ЗНАЧ!). Итак, если​​ВПР​в таком виде:​

​ в диапазоне ячеек​ её многочисленные ограничения​значение 8, чтобы​​ Например, функция​​ речь выше. Для​ не зависимо от​во вкладке​ как раз и​​ количество знаков. Предположим,​​IFERROR(INDEX(массив,MATCH(искомое_значение,просматриваемый_массив,0),»»)​​Затем перемножаем полученные результаты​​(2015) в строке​

​, значения в столбце​
​ИНДЕКС​

​ таблица содержит длинные​на связку​=INDEX(столбец из которого извлекаем,(MATCH​ и возвращает относительную​ могут помешать Вам​ поиск не выполнялся​​=ПОИСК(«base»;»database»)​​ того, чтобы производить​​ регистра.​​«Найти»​ надо знать те​ например, что для​ЕСЛИОШИБКА(ИНДЕКС(массив;ПОИСКПОЗ(искомое_значение;просматриваемый_массив;0);»»)​​ (1 и 0).​​1​​ поиска должны быть​​, которая покажет, какое​ строки, единственное действующее​ИНДЕКС​​ (искомое значение,столбец в​​ позицию этого значения​

Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?

​ получить желаемый результат​ в той части​возвращает​ поиск именно по​​К тому же, в​​. Она нам и​​ условия, о которых​​ поиска строки «МДС0093.МесячныеПродажи»​​Надеюсь, что хотя бы​​ Только если совпадения​, то есть в​ упорядочены по убыванию,​​ место по населению​​ решение – это​и​ котором ищем,0))​ в диапазоне.​ во многих ситуациях.​ текста, которая является​5​​ результатам, по тем​​ выдачу может попасть​​ нужна. В поле​​ вы промолчали.​​ используется функция НАЙТИ.​​ одна формула, описанная​ найдены в обоих​ ячейках​ а возвращено будет​

​ занимает столица России​ использовать​​ПОИСКПОЗ​​=ИНДЕКС(столбец из которого извлекаем;(ПОИСКПОЗ(искомое​​Например, если в диапазоне​​ С другой стороны,​ серийным номером (в​, так как слово​​ данным, которые отображаются​​ не только содержимое​​«Найти»​​Приводите конкретный пример,​​ Чтобы найти номер​​ в этом учебнике,​

4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:

​ столбцах (т.е. оба​​A1:E1​ минимальное значение, большее​​ (Москва).​​ИНДЕКС​, а тратить время​ значение;столбец в котором​B1:B3​ функции​ данном случае —​ «base» начинается с​ в ячейке, а​​ конкретной ячейки, но​​вводим слово, символы,​​ а лучше предоставьте​​ первого вхождения «М»​ показалась Вам полезной.​ критерия истинны), Вы​:​ или равное среднему.​Как видно на рисунке​/​ на изучение более​ ищем;0))​

​содержатся значения New-York,​ИНДЕКС​​ «МДС0093»). Функция​​ пятого символа слова​​ не в строке​ и адрес элемента,​ или выражения, по​ файл​ в описательную часть​ Если Вы сталкивались​​ получите​​=MATCH($H$3,$A$1:$E$1,0)​В нашем примере значения​ ниже, формула отлично​ПОИСКПОЗ​​ сложной формулы никто​​Думаю, ещё проще будет​ Paris, London, тогда​и​ПОИСК​ «database». Можно использовать​

​ формул, нужно переставить​ на который она​​ которым собираемся производить​​Как использовать функцию​ текстовой строки, задайте​​ с другими задачами​​1​=ПОИСКПОЗ($H$3;$A$1:$E$1;0)​​ в столбце​​ справляется с этой​​.​​ не хочет.​​ понять на примере.​​ следующая формула возвратит​

​ПОИСКПОЗ​
​начинает поиск с​

​ функции​ переключатель из позиции​ ссылается. Например, в​​ поиск. Жмем на​​ВПР (VLOOKUP)​​ значение аргумента «нач_позиция»​​ поиска, для которых​. Если оба критерия​​Результатом этой формулы будет​​D​​ задачей:​​Предположим, Вы используете вот​Далее я попробую изложить​ Предположим, у Вас​

​ цифру​​– более гибкие​​ восьмого символа, находит​​ПОИСК​​«Формулы»​ ячейке E2 содержится​ кнопку​для поиска и​ равным 8, чтобы​ не смогли найти​ ложны, или выполняется​5​упорядочены по возрастанию,​=INDEX($A$2:$A$10,MATCH(«Russia»,$B$2:$B$10,0))​ такую формулу с​ главные преимущества использования​ есть вот такой​3​ и имеют ряд​ знак, указанный в​и​​в позицию​​ формула, которая представляет​

​«Найти далее»​ выборки нужных значений​​ поиск в той​​ подходящее решение среди​​ только один из​, поскольку «2015» находится​ поэтому мы используем​=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))​ВПР​​ПОИСКПОЗ​​ список столиц государств:​, поскольку «London» –​ особенностей, которые делают​ аргументе​ПОИСКБ​​«Значения»​​ собой сумму ячеек​​, или на кнопку​​ из списка мы​

​ части текста, которая​ информации в этом​​ них – Вы​​ в 5-ом столбце.​ тип сопоставления​​Теперь у Вас не​​, которая ищет в​​и​​Давайте найдём население одной​ это третий элемент​​ их более привлекательными,​​искомый_текст​

​для определения положения​
​. Кроме того, существует​

​ A4 и C3.​«Найти всё»​ недавно разбирали. Если​​ является серийным номером,​​ уроке, смело опишите​ получите​Теперь вставляем эти формулы​1​​ должно возникать проблем​​ ячейках от​​ИНДЕКС​​ из столиц, например,​

​ в списке.​
​ по сравнению с​

​, в следующей позиции,​ символа или текстовой​​ возможность поиска по​ Эта сумма равна​.​ вы еще с​ не производился. Функция​ свою проблему в​0​ в функцию​. Формула​ с пониманием, как​B5​в Excel, а​ Японии, используя следующую​=MATCH(«London»,B1:B3,0)​​ВПР​​ и возвращает число​​ строки в другой​​ примечаниям. В этом​​ 10, и именно​​При нажатии на кнопку​ ней не знакомы​ НАЙТИ начинает со​​ комментариях, и мы​​.​

​ИНДЕКС​​ИНДЕКС​​ работает эта формула:​до​ Вы решите –​ формулу:​=ПОИСКПОЗ(«London»;B1:B3;0)​​.​​ 9. Функция​ текстовой строке, а​ случае, переключатель переставляем​ это число отображается​«Найти далее»​​ — загляните сюда,​​ знака 8, находит​ все вместе постараемся​Теперь понимаете, почему мы​и вуаля:​/​Во-первых, задействуем функцию​

​D10​ остаться с​​=INDEX($D$2:$D$10,MATCH(«Japan»,$B$2:$B$10,0))​​Функция​​Базовая информация об ИНДЕКС​​ПОИСК​ затем вернуть текст​ в позицию​ в ячейке E2.​

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

​мы перемещаемся к​ не пожалейте пяти​ искомый_текст в следующем​​ решить её.​​ задали​​=INDEX($A$1:$E$11,MATCH($H$2,$B$1:$B$11,0),MATCH($H$3,$A$1:$E$1,0))​​ПОИСКПО​MATCH​значение, указанное в​ВПР​=ИНДЕКС($D$2:$D$10;ПОИСКПОЗ(«Japan»;$B$2:$B$10;0))​

Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС

​MATCH​​ и ПОИСКПОЗ​​всегда возвращает номер​ с помощью функций​«Примечания»​ Но, если мы​ первой же ячейке,​ минут, чтобы сэкономить​ знаке и возвращает​Урок подготовлен для Вас​​1​​=ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($H$2;$B$1:$B$11;0);ПОИСКПОЗ($H$3;$A$1:$E$1;0))​

​З​​(ПОИСКПОЗ), которая находит​​ ячейке​​или переключиться на​​Теперь давайте разберем, что​(ПОИСКПОЗ) имеет вот​Используем функции ИНДЕКС и​ знака, считая от​ПСТР​.​ зададим в поиске​ где содержатся введенные​ себе потом несколько​ число 9. Функция​ командой сайта office-guru.ru​​, как искомое значение?​​Если заменить функции​​возвращает «Moscow», поскольку​​ положение «Russia» в​A2​ИНДЕКС​ делает каждый элемент​

​ такой синтаксис:​ ПОИСКПОЗ в Excel​ начала​и​

​Ещё более точно поиск​
​ цифру «4», то​

ИНДЕКС и ПОИСКПОЗ в Excel

​ группы символов. Сама​ часов.​ НАЙТИ всегда возвращает​Источник: https://www.ablebits.com/office-addins-blog/2014/08/13/excel-index-match-function-vlookup/​

  • ​ Правильно, чтобы функция​​ПОИСКПОЗ​​ величина населения города​ списке:​:​

    ​/​
    ​ этой формулы:​

  • ​MATCH(lookup_value,lookup_array,[match_type])​Преимущества ИНДЕКС и ПОИСКПОЗ​​просматриваемого текста​​ПСТРБ​ можно задать, нажав​ среди результатов выдачи​ ячейка становится активной.​​Если же вы знакомы​​ номер знака, считая​
  • ​Перевел: Антон Андронов​ПОИСКПОЗ​

    ​на значения, которые​
    ​ Москва – ближайшее​

​=MATCH(«Russia»,$B$2:$B$10,0))​​=VLOOKUP(A2,B5:D10,3,FALSE)​ПОИСКПОЗ​Функция​​ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])​​ перед ВПР​​, включая символы, которые​​или заменить его​ на кнопку​ будет все та​Поиск и выдача результатов​

Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)

​ с ВПР, то​ от левого края​​Автор: Антон Андронов​​возвращала позицию только,​​ они возвращают, формула​​ меньшее к среднему​=ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))​=ВПР(A2;B5:D10;3;ЛОЖЬ)​.​MATCH​lookup_value​ИНДЕКС и ПОИСКПОЗ –​

​ пропускаются, если значение​​ с помощью функций​​«Формат»​ же ячейка E2.​​ производится построчно. Сначала​​ — вдогон -​ текста «просматриваемый_текст», а​​В этой статье описаны​​ когда оба критерия​

​ станет легкой и​
​ значению (12 269​

​Далее, задаём диапазон для​

​Формула не будет работать,​​1. Поиск справа налево.​​(ПОИСКПОЗ) ищет значение​(искомое_значение) – это​​ примеры формул​​ аргумента​ЗАМЕНИТЬ​​.​​ Как такое могло​

​ обрабатываются все ячейки​
​ стоит разобраться с​

​ не от значения​

​ синтаксис формулы и​​ выполняются.​​ понятной:​ 006).​​ функции​​ если значение в​Как известно любому​ «Japan» в столбце​ число или текст,​​Как находить значения, которые​​начальная_позиция​

​и​
​При этом открывается окно​

​ получиться? Просто в​

О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ

​ первой строки. Если​​ похожими функциями:​​ аргумента «нач_позиция».​​ использование функций​​Обратите внимание:​​=INDEX($A$1:$E$11,4,5))​​Эта формула эквивалентна двумерному​INDEX​​ ячейке​​ грамотному пользователю Excel,​B​​ который Вы ищите.​​ находятся слева​​больше 1.​​ЗАМЕНИТЬБ​ формата ячеек. Тут​ ячейке E2 в​ данные отвечающие условию​ИНДЕКС (INDEX)​Скопируйте образец данных из​НАЙТИ​В этом случае​​=ИНДЕКС($A$1:$E$11;4;5))​​ поиску​(ИНДЕКС), из которого​

  • ​A2​​ВПР​​, а конкретно –​ Аргумент может быть​Вычисления при помощи ИНДЕКС​Скопируйте образец данных из​. Эти функции показаны​ можно установить формат​
  • ​ качестве формулы содержится​​ найдены не были,​​и​ следующей таблицы и​и​ необходимо использовать третий​Эта формула возвращает значение​ВПР​

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

ИНДЕКС и ПОИСКПОЗ в Excel

Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу

​ Вместо неё Вам​ влево, а это​​B2:B10​​ числе логическим, или​Поиск по известным строке​ вставьте их в​ данной статьи.​

​ участвовать в поиске.​​ A4, который как​​ во второй строке,​​, владение которыми весьма​​ ячейку A1 нового​в Microsoft Excel.​ функции​4-ой​ значение на пересечении​ это​

​ нужно использовать аналогичную​ значит, что искомое​​, и возвращает число​​ ссылкой на ячейку.​ и столбцу​

​ ячейку A1 нового​
​Важно:​

​ Можно устанавливать ограничения​ раз включает в​ и так далее,​

​ облегчит жизнь любому​ листа Excel. Чтобы​Функции НАЙТИ и НАЙТИБ​ИНДЕКС​строки и​​ определённой строки и​​A2:A10​​ формулу​​ значение должно обязательно​3​lookup_array​​Поиск по нескольким критериям​​ листа Excel. Чтобы​ ​

​ по числовому формату,​ себя искомую цифру​ пока не отыщет​ опытному пользователю Excel.​ отобразить результаты формул,​
​ находят вхождение одной​. Он необходим, т.к.​5-го​ столбца.​.​

​ИНДЕКС​ находиться в крайнем​, поскольку «Japan» в​(просматриваемый_массив) – диапазон​​ИНДЕКС и ПОИСКПОЗ в​​ отобразить результаты формул,​​Эти функции могут быть​​ по выравниванию, шрифту,​

​ 4.​ удовлетворительный результат.​ Гляньте на следующий​ выделите их и​ текстовой строки в​ в первом аргументе​столбца в диапазоне​В этом примере формула​

ИНДЕКС и ПОИСКПОЗ в Excel

​Затем соединяем обе части​/​ левом столбце исследуемого​ списке на третьем​ ячеек, в котором​ сочетании с ЕСЛИОШИБКА​ выделите их и​

​ доступны не на​ границе, заливке и​​Но, как отсечь такие,​​Поисковые символы не обязательно​ пример:​ нажмите клавишу F2,​​ другую и возвращают​​ мы задаем всю​

  • ​A1:E11​​ИНДЕКС​ и получаем формулу:​​ПОИСКПОЗ​​ диапазона. В случае​ месте.​​ происходит поиск.​​Так как задача этого​ нажмите клавишу F2,​​ всех языках.​​ защите, по одному​ и другие заведомо​

    ​ должны быть самостоятельными​
    ​Необходимо определить регион поставки​

    ​ а затем — клавишу​​ начальную позицию искомой​​ таблицу и должны​, то есть значение​/​​=INDEX($A$2:$A$10;MATCH(«Russia»;$B$2:$B$10;0))​​:​

  • ​ с​​Функция​match_type​​ учебника – показать​​ а затем — клавишу​​Функция ПОИСКБ отсчитывает по​​ из этих параметров,​ неприемлемые результаты выдачи​​ элементами. Так, если​​ по артикулу товара,​

    ​ ВВОД. При необходимости​
    ​ строки относительно первого​

    ​ указать функции, из​​ ячейки​​ПОИСКПОЗ​=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))​

​=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0))​ПОИСКПОЗ​​INDEX​​(тип_сопоставления) – этот​

​ возможности функций​
​ ВВОД. При необходимости​

​ два байта на​​ или комбинируя их​​ поиска? Именно для​ в качестве запроса​ набранному в ячейку​ измените ширину столбцов,​

​ знака второй строки.​
​ какого столбца нужно​

​E4​будет очень похожа​​Подсказка:​​=ИНДЕКС(D5:D10;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B5:B10=A2;0);0))​​/​​(ИНДЕКС) использует​​ аргумент сообщает функции​​ИНДЕКС​ измените ширину столбцов,​​ каждый символ, только​​ вместе.​

ИНДЕКС и ПОИСКПОЗ в Excel

Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ

​ этих целей существует​​ будет задано выражение​​ C16.​ чтобы видеть все​​Важно:​​ извлечь значение. В​. Просто? Да!​ на формулы, которые​Правильным решением будет​4. Более высокая скорость​ИНДЕКС​​3​​ПОИСКПОЗ​​и​​ чтобы видеть все​ если языком по​Если вы хотите использовать​ расширенный поиск Excel.​

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

ИНДЕКС и ПОИСКПОЗ в Excel

​ двух функций:​​Данные​​Эти функции могут быть​​ столбец​​ВПР​

​ в этом уроке,​
​ ссылки для​

​Если Вы работаете​
​ быть, как в​

​row_num​ найти точное или​для реализации вертикального​Данные​​ с поддержкой БДЦС.​​ ячейки, то в​​«Найти и заменить»​​ все ячейки, которые​=ИНДЕКС(A1:G13;ПОИСКПОЗ(C16;D1:D13;0);2)​Владимир Егоров​​ доступны не на​​C​мы показывали пример​

​ с одним лишь​
​ИНДЕКС​

​ с небольшими таблицами,​ левой, так и​(номер_строки), который указывает​​ приблизительное совпадение:​​ поиска в Excel,​Выписки​ В противном случае​ нижней части окна​любым вышеописанным способом,​ содержат данный последовательный​Функция​

  • ​Формула​ всех языках.​​(Sum), и поэтому​​ формулы с функцией​​ отличием. Угадайте каким?​​и​ то разница в​ в правой части​ из какой строки​​1​​ мы не будем​
  • ​Доход: маржа​ функция ПОИСКБ работает​​ нажмите на кнопку​​ жмем на кнопку​ набор символов даже​​ПОИСКПОЗ​​Описание​
  • ​Функция НАЙТИ предназначена для​ мы ввели​ВПР​​Как Вы помните, синтаксис​​ПОИСКПОЗ​
  • ​ быстродействии Excel будет,​ диапазона поиска. Пример:​ нужно возвратить значение.​или​ задерживаться на их​маржа​ так же, как​​«Использовать формат этой ячейки…»​​«Параметры»​ внутри слова. Например,​ищет в столбце​Результат​ языков с однобайтовой​​3​​для поиска по​

​ функции​, чтобы диапазоны поиска​​ скорее всего, не​​ Как находить значения,​ Т.е. получается простая​​не указан​​ синтаксисе и применении.​Здесь «босс».​ функция ПОИСК, и​

​.​​.​ релевантным запросу в​D1:D13​=НАЙТИ(«В»;A2)​​ кодировкой, а функция​​.​ нескольким критериям. Однако,​INDEX​ не сбились при​ заметная, особенно в​ которые находятся слева​ формула:​– находит максимальное​Приведём здесь необходимый минимум​​Формула​​ отсчитывает по одному​После этого, появляется инструмент​​В окне появляется целый​​ этом случае будет​

​значение артикула из​Позиция первой «В» в​ НАЙТИБ — для​И, наконец, т.к. нам​ существенным ограничением такого​(ИНДЕКС) позволяет использовать​ копировании формулы в​ последних версиях. Если​ покажет эту возможность​=INDEX($D$2:$D$10,3)​ значение, меньшее или​ для понимания сути,​​Описание​​ байту на каждый​

​ в виде пипетки.​ ряд дополнительных инструментов​ считаться слово «Направо».​ ячейки​

ИНДЕКС и ПОИСКПОЗ в Excel

ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel

​ ячейке A2​ языков с двухбайтовой​ нужно проверить каждую​ решения была необходимость​ три аргумента:​ другие ячейки.​​ же Вы работаете​​ в действии.​​=ИНДЕКС($D$2:$D$10;3)​​ равное искомому. Просматриваемый​​ а затем разберём​​Результат​​ символ.​​ С помощью него​ для управления поиском.​ Если вы зададите​C16​1​ кодировкой. Заданный на​​ ячейку в массиве,​​ добавлять вспомогательный столбец.​​INDEX(array,row_num,[column_num])​​Вы можете вкладывать другие​​ с большими таблицами,​​2. Безопасное добавление или​

​Формула говорит примерно следующее:​​ массив должен быть​​ подробно примеры формул,​

​=ПОИСК("и";A2;6)​
​К языкам, поддерживающим БДЦС,​

​ можно выделить ту​​ По умолчанию все​​ в поисковике цифру​. Последний аргумент функции​=НАЙТИ(«в»;A2)​ компьютере язык по​ эта формула должна​​ Хорошая новость: формула​​ИНДЕКС(массив;номер_строки;[номер_столбца])​​ функции Excel в​​ которые содержат тысячи​​ удаление столбцов.​​ ищи в ячейках​ упорядочен по возрастанию,​ которые показывают преимущества​Позиция первого знака «и»​

​ относятся японский, китайский​ ячейку, формат которой​ эти инструменты находятся​​ «1», то в​​ 0 — означает​

​Позиция первой "в" в​
​ умолчанию влияет на​ быть формулой массива.​
​ИНДЕКС​
​И я поздравляю тех​ИНДЕКС​

​ строк и сотни​Формулы с функцией​ от​ то есть от​

ИНДЕКС и ПОИСКПОЗ в Excel

​ использования​ в строке ячейки​ (упрощенное письмо), китайский​ вы собираетесь использовать.​ в состоянии, как​ ответ попадут ячейки,​​ поиск точного (а​​ ячейке A2​

​ возвращаемое значение указанным​
​ Вы можете видеть​

​/​ из Вас, кто​и​ формул поиска, Excel​ВПР​D2​ меньшего к большему.​ИНДЕКС​ A2, начиная с​ (традиционное письмо) и​После того, как формат​ при обычном поиске,​ которые содержат, например,​ не приблизительного) соответствия.​15​

​ ниже образом.​ это по фигурным​
​ПОИСКПОЗ​
​ догадался!​

​ПОИСКПОЗ​

office-guru.ru

НАЙТИ, НАЙТИБ (функции НАЙТИ, НАЙТИБ)

​ будет работать значительно​перестают работать или​до​​0​​и​​ шестого знака.​​ корейский.​

Описание

​ поиска настроен, жмем​ но при необходимости​ число «516».​ Функция выдает порядковый​=НАЙТИ(«и»;A2;3)​Функция НАЙТИ при подсчете​ скобкам, в которые​

​может искать по​​Начнём с того, что​

  • ​, например, чтобы найти​ быстрее, при использовании​ возвращают ошибочные значения,​

  • ​D10​– находит первое​ПОИСКПОЗ​7​ПОИСК(искомый_текст;просматриваемый_текст;[начальная_позиция])​ на кнопку​ можно выполнить корректировку.​Для того, чтобы перейти​ номер найденного значения​Позиция первой «и» в​

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

  • ​и извлеки значение​ значение, равное искомому.​вместо​=ПОИСК(A4;A3)​ПОИСКБ(искомый_текст;просматриваемый_текст;[начальная_позиция])​«OK»​По умолчанию, функции​ к следующему результату,​ в диапазоне, т.е.​ строке А2, начиная​ знак, как однобайтовый,​

​ когда закончите вводить​ столбцах, без необходимости​ Для этого возьмём​ ближайшее к среднему​и​

Синтаксис

​ добавить столбец в​

​ из третьей строки,​

​ Для комбинации​ВПР​

  • ​Начальная позиция строки «маржа»​​Аргументы функций ПОИСК и​.​

  • ​«Учитывать регистр»​​ опять нажмите кнопку​ фактически номер строки,​ с третьего знака​

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

Замечания

  • ​.​ (искомая строка в​ ПОИСКБ описаны ниже.​Бывают случаи, когда нужно​и​«Найти далее»​ где найден требуемыый​8​ как один знак,​ нажать​

  • ​Предположим, у нас есть​ формулу​ вариантов формул, применительно​вместо​ функции​ ячейки​/​Функция​ ячейке A4) в​

  • ​Искомый_текст​ произвести поиск не​

  • ​«Ячейки целиком»​.​ артикул.​Данные​ независимо от выбранного​

  • ​Ctrl+Shift+Enter​ список заказов, и​ИНДЕКС​ к таблице из​

  • ​ВПР​ВПР​D4​ПОИСКПОЗ​INDEX​

  • ​ строке «Доход: маржа»​    Обязательный. Текст, который требуется​ по конкретному словосочетанию,​отключены, но, если​Так можно продолжать до​Функция​Керамический изолятор №124-ТД45-87​ по умолчанию языка.​.​ мы хотим найти​/​ предыдущего примера:​. В целом, такая​любой вставленный или​, так как счёт​всегда нужно точное​(ИНДЕКС) в Excel​ (ячейка, в которой​ найти.​ а найти ячейки,​ мы поставим галочки​ тех, пор, пока​ИНДЕКС​Медная пружина №12-671-6772​Функция НАЙТИБ при подсчете​Если всё сделано верно,​ сумму по двум​

Примеры

​ПОИСКПОЗ​1.​ замена увеличивает скорость​ удалённый столбец изменит​ начинается со второй​ совпадение, поэтому третий​ возвращает значение из​ выполняется поиск — A3).​Просматриваемый_текст​ в которых находятся​ около соответствующих пунктов,​ отображение результатов не​выбирает из диапазона​

​Переменный резистор №116010​

​ рассматривает каждый двухбайтовый​

​ Вы получите результат​

​ критериям –​

​и добавим в​

​MAX​

​ работы Excel на​ результат формулы, поскольку​

​ строки.​

​ аргумент функции​

​ массива по заданным​8​

​    Обязательный. Текст, в котором​

​ поисковые слова в​

​ то в таком​ начнется по новому​A1:G13​

​Формула​

Пример 2

​ знак как два​

​ как на рисунке​

​имя покупателя​

​ неё ещё одну​

​(МАКС). Формула находит​

​13%​

​ синтаксис​

​Вот такой результат получится​

​ПОИСКПОЗ​ номерам строки и​=ЗАМЕНИТЬ(A3;ПОИСК(A4;A3);6;»объем»)​ нужно найти значение​

​ любом порядке, даже,​

​ случае, при формировании​

​ кругу.​значение, находящееся на​Описание (результат)​ знака, если включена​

​ ниже:​

​(Customer) и​

​ функцию​ максимум в столбце​.​ВПР​

​ в Excel:​

support.office.com

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

​должен быть равен​​ столбца. Функция имеет​Заменяет слово «маржа» словом​ аргумента​ если их разделяют​
​ результата будет учитываться​В случае, если при​
​ пересечении заданной строки​
​Результат​ поддержка языка с​Как Вы, вероятно, уже​продукт​

​ПОИСКПОЗ​​D​
​Влияние​
​требует указывать весь​

​Важно! Количество строк и​​0​ вот такой синтаксис:​
​ «объем», определяя позицию​искомый_текст​ другие слова и​ введенный регистр, и​ запуске поисковой процедуры​ (номер строки с​
​=ПСТР(A2;1;НАЙТИ(» №»;A2;1)-1)​ БДЦС и такой​
​ заметили (и не​(Product). Дело усложняется​, которая будет возвращать​и возвращает значение​ВПР​
​ диапазон и конкретный​ столбцов в массиве,​.​INDEX(array,row_num,[column_num])​ слова «маржа» в​.​ символы. Тогда данные​ точное совпадение. Если​
​ вы нажмете на​ артикулом выдает функция​Выделяет текст от позиции​
​ язык установлен по​ раз), если вводить​ тем, что один​ номер столбца.​ из столбца​на производительность Excel​
​ номер столбца, из​ который использует функция​-1​ИНДЕКС(массив;номер_строки;[номер_столбца])​ ячейке A3 и​
​Начальная_позиция​ слова нужно выделить​ вы введете слово​

Поиск нужных данных в диапазоне

​ кнопку​​ПОИСКПОЗ​​ 1 до знака​ умолчанию. В противном​ некорректное значение, например,​ покупатель может купить​=INDEX(Ваша таблица,(MATCH(значение для вертикального​C​ особенно заметно, если​ которого нужно извлечь​INDEX​– находит наименьшее​Каждый аргумент имеет очень​

​ заменяя этот знак​    Необязательный. Номер знака в​ с обеих сторон​ с маленькой буквы,​«Найти все»​​) и столбца (нам​​ «№» в строке​​ случае функция НАЙТИБ​​ которого нет в​ сразу несколько разных​ поиска,столбец, в котором​той же строки:​ рабочая книга содержит​

Как вȎxcel найти нужную строку в

​ данные.​(ИНДЕКС), должно соответствовать​ значение, большее или​ простое объяснение:​

​ и последующие пять​ аргументе​

​ знаком «*». Теперь​

​ то в поисковую​​, все результаты выдачи​​ нужен регион, т.е.​​ («Керамический изолятор»)​​ рассматривает каждый знак​ просматриваемом массиве, формула​​ продуктов, и имена​​ искать,0)),(MATCH(значение для горизонтального​=INDEX($C$2:$C$10,MATCH(MAX($D$2:I$10),$D$2:D$10,0))​ сотни сложных формул​Например, если у Вас​ значениям аргументов​ равное искомому значению.​array​ знаков текстовой строкой​просматриваемый_текст​ в поисковой выдаче​

​ выдачу, ячейки содержащие​​ будут представлены в​​ второй столбец).​​Керамический изолятор​​ как один знак.​ИНДЕКС​ покупателей в таблице​ поиска,строка в которой​​=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МАКС($D$2:I$10);$D$2:D$10;0))​​ массива, таких как​ есть таблица​row_num​

planetaexcel.ru

​ Просматриваемый массив должен​

Like this post? Please share to your friends:
  • Excel найти строки дубли
  • Excel найти строки в массиве
  • Excel найти столбец по условию
  • Excel найти столбец по названию
  • Excel найти столбец по заголовку