Excel получить номер строки по условию

 

Bravo9

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

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

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

 

Z

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

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

Win 10, MSO 2013 SP1

#2

31.07.2016 18:28:22

Цитата
Bravo9 написал: Подскажите плиз формулу…

Как вариант… ;)

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

  • Image 122.png (42.18 КБ)

«Ctrl+S» — достойное завершение ваших гениальных мыслей!.. ;)

 

Bravo9

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

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

Читал, тут чуть другое, «Москва» не участвует в расчетах, а только цифры.

 

Z

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

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

Win 10, MSO 2013 SP1

#4

31.07.2016 19:00:16

Цитата
Bravo9 написал: «Москва» не участвует в расчетах

А Пермь вас устроит?!
ps Со строкой, думаю, разберетесь — она вам в диапозоне нужна или на листе…
См.

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

  • Image 123.png (23.16 КБ)

«Ctrl+S» — достойное завершение ваших гениальных мыслей!.. ;)

 

Kuzmich

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

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

#5

31.07.2016 19:09:03

Для Санкт-Петербурга

Код
Sub LastStroka()
Dim Stroka As Long
  Stroka =Columns("A").Find("Санкт-Петербург", Range("A1"), xlValues, xlWhole, xlByRows, xlPrevious).Row
End Sub

 

Bravo9

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

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

Спасибо за макрос. А формулой никак? Специально для Z! Это совсем другое! Мне нужно определить номер строки последнего из много раз повторяющегося наименования.

 

gling

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

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

#7

31.07.2016 19:36:59

Здравствуйте. Можно и формулой.

Код
=СУММПРОИЗВ(МАКС(($A$1:$A$17=C1)*СТРОКА($A$1:$A$17)))
 

Bravo9

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

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

 

Z

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

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

Win 10, MSO 2013 SP1

#9

01.08.2016 08:38:03

Цитата
1 — 31 Июл 2016 18:24:02 — для нахождения номера строки последнего встречающегося в столбце наименования.
2 — 31 Июл 2016 19:31:55 — совсем другое! Мне нужно определить номер строки последнего из много раз повторяющегося наименования.

Ну совсем никакой разницы!
А если еще подумать, то хотелка еще более прояснится?!. ;)

«Ctrl+S» — достойное завершение ваших гениальных мыслей!.. ;)

Skip to content

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функция СТРОКА в Excel используется для возвращения номера строки для ссылки на диапазон ячеек или же одну ячейку. К примеру, формула =СТРОКА(D11) возвращает значение 11, поскольку D11 — это 11-я строка. Рассматриваемую функцию удобно использовать также для автоматической нумерации любого вертикального диапазона, если же предполагается частое добавление или удаление новых строк. В данном случае строки всегда будут иметь правильный номер.

Пример как получить номер строки листа по значению ячейки Excel

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

перечень столиц.

Необходимо вычислить, в какой строке находится столица с максимальным населением.

Введем в ячейку С2 формулу:

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

столица Москва 4.

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



Нумерация ячеек в таблице относительно номеров строк листа Excel

Пример 2. Дан список сотрудников компании:

Пример 2.

Необходимо, используя функцию СТРОКА, создать столбец «№п/п».

Стоит отметить, что используя в первом столбце данную функцию, при удалении строки таблицы значения столбца № п/п будет автоматически исправлен для правильной нумерации ячеек в таблице.

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

=номера строк листа для текущей ячейки таблицы — 1

используя функцию СТРОКА.

В данной формуле ссылка А2 отображает ячейку, где определяется номер строки.

Заметим, что в формуле слагаемое «-1» уменьшает значение строки на 1, поскольку в первой строке таблицы находится заголовок. Скопируем перетаскиванием данную формулу с ячейки А2 к ячейке А6. В результате получим:

определяется номер строки.

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

нумерация автоматически обновилась.

Как видно, указанная строка была удалена, а нумерация сама автоматически обновилась.

Стоит отметить, что аналогичным образом мы можем нумеровать ячейки и по столбцам таблицы. Для этого просто нужно вместо функции СТРОКА использовать функцию СТОЛБЕЦ по горизонтали.

Как удалить повторяющиеся значения в Excel

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

перечень имен.

Необходимо с помощью функции СТРОКА, определить не повторяющиеся имена из указанного перечня имен студентов.

Для этого в ячейку В2 введем формулу:

В данном случае функция СТРОКА используется без параметров, то есть, она будет возвращать номер строки, в которой записана данная формула.

В результате, скопировав формулу в ячейку В8, получим:

В результате введем формулу.

То есть, показан перечень имен, которые не повторяются.

Особенности использования функции СТРОКА в Excel

Существуют несколько нюансов, при которых применяется функция СТРОКА во избежание возникновения самых разнообразных ошибок:

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

Вывод номера строки ячейки по условию

commax83

Дата: Среда, 23.02.2022, 22:30 |
Сообщение № 1

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

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

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


Приветствую. Подскажите, как реализовать такую логику. Есть столбец с числами по возрастанию. Во втором столбце нужно вывести номер строки ячейки первого столбца по условию. Например в первой ячейке число 3, значит в первых трех ячейках второго столбца должно быть значение «1» (номер строки первой ячейки). Во второй ячейке число 5, значит в четвертой и пятой ячейке второго столбца должно быть значение «2» (номер строки второй ячейки) и.т.д.

К сообщению приложен файл:

5918373.png
(10.1 Kb)

 

Ответить

commax83

Дата: Среда, 23.02.2022, 22:40 |
Сообщение № 2

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

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

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


По сути надо как-то сравнивать текущий номер строки ячеек второго столбца с массивом чисел из первого. Никак не пойму как это сделать. Какое условие задавать и через какие функции?

 

Ответить

Egyptian

Дата: Четверг, 24.02.2022, 06:46 |
Сообщение № 3

Группа: Проверенные

Ранг: Обитатель

Сообщений: 473


Репутация:

162

±

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


Excel 2013/2016

Если правильно понял логику то как-то так:

Код

=INDEX(ROW($B$1:$B$100);MATCH(0;—(COUNTIF($C$1:C1;ROW($B$1:$B$100))=($B$2:$B$19-$B$1:$B$18));0))

Формула массива.

В ячейке В1 должен быть 0.
[p.s.]В следующий раз прикладывайте файл Excel а не картинку.

 

Ответить

commax83

Дата: Четверг, 24.02.2022, 20:16 |
Сообщение № 4

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

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

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


Спасибо огромное! То, что надо hands

 

Ответить

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

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

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

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

  • Базовая информация об ИНДЕКС и ПОИСКПОЗ
  • Используем функции ИНДЕКС и ПОИСКПОЗ в Excel
  • Преимущества ИНДЕКС и ПОИСКПОЗ перед ВПР
  • ИНДЕКС и ПОИСКПОЗ – примеры формул
    • Как находить значения, которые находятся слева
    • Вычисления при помощи ИНДЕКС и ПОИСКПОЗ
    • Поиск по известным строке и столбцу
    • Поиск по нескольким критериям
    • ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА

Содержание

  1. Базовая информация об ИНДЕКС и ПОИСКПОЗ
  2. ИНДЕКС – синтаксис и применение функции
  3. ПОИСКПОЗ – синтаксис и применение функции
  4. Как использовать ИНДЕКС и ПОИСКПОЗ в Excel
  5. Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?
  6. 4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:
  7. ИНДЕКС и ПОИСКПОЗ – примеры формул
  8. Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС
  9. Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)
  10. О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ
  11. Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу
  12. Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ
  13. ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel

Базовая информация об ИНДЕКС и ПОИСКПОЗ

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

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

ИНДЕКС – синтаксис и применение функции

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

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

Каждый аргумент имеет очень простое объяснение:

  • array (массив) – это диапазон ячеек, из которого необходимо извлечь значение.
  • row_num (номер_строки) – это номер строки в массиве, из которой нужно извлечь значение. Если не указан, то обязательно требуется аргумент column_num (номер_столбца).
  • column_num (номер_столбца) – это номер столбца в массиве, из которого нужно извлечь значение. Если не указан, то обязательно требуется аргумент row_num (номер_строки)

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

Вот простейший пример функции INDEX (ИНДЕКС):

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

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

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

ПОИСКПОЗ – синтаксис и применение функции

Функция MATCH (ПОИСКПОЗ) в Excel ищет указанное значение в диапазоне ячеек и возвращает относительную позицию этого значения в диапазоне.

Например, если в диапазоне B1:B3 содержатся значения New-York, Paris, London, тогда следующая формула возвратит цифру 3, поскольку «London» – это третий элемент в списке.

=MATCH("London",B1:B3,0)
=ПОИСКПОЗ("London";B1:B3;0)

Функция MATCH (ПОИСКПОЗ) имеет вот такой синтаксис:

MATCH(lookup_value,lookup_array,[match_type])
ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])

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

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

Позвольте напомнить, что относительное положение искомого значения (т.е. номер строки и/или столбца) – это как раз то, что мы должны указать для аргументов row_num (номер_строки) и/или column_num (номер_столбца) функции INDEX (ИНДЕКС). Как Вы помните, функция ИНДЕКС может возвратить значение, находящееся на пересечении заданных строки и столбца, но она не может определить, какие именно строка и столбец нас интересуют.

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

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

Ещё не совсем понятно? Представьте функции ИНДЕКС и ПОИСКПОЗ в таком виде:

=INDEX(столбец из которого извлекаем,(MATCH (искомое значение,столбец в котором ищем,0))
=ИНДЕКС(столбец из которого извлекаем;(ПОИСКПОЗ(искомое значение;столбец в котором ищем;0))

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

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

Давайте найдём население одной из столиц, например, Японии, используя следующую формулу:

=INDEX($D$2:$D$10,MATCH("Japan",$B$2:$B$10,0))
=ИНДЕКС($D$2:$D$10;ПОИСКПОЗ("Japan";$B$2:$B$10;0))

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

  • Функция MATCH (ПОИСКПОЗ) ищет значение «Japan» в столбце B, а конкретно – в ячейках B2:B10, и возвращает число 3, поскольку «Japan» в списке на третьем месте.
  • Функция INDEX (ИНДЕКС) использует 3 для аргумента row_num (номер_строки), который указывает из какой строки нужно возвратить значение. Т.е. получается простая формула:

    =INDEX($D$2:$D$10,3)
    =ИНДЕКС($D$2:$D$10;3)

    Формула говорит примерно следующее: ищи в ячейках от D2 до D10 и извлеки значение из третьей строки, то есть из ячейки D4, так как счёт начинается со второй строки.

Вот такой результат получится в Excel:

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

Важно! Количество строк и столбцов в массиве, который использует функция INDEX (ИНДЕКС), должно соответствовать значениям аргументов row_num (номер_строки) и column_num (номер_столбца) функции MATCH (ПОИСКПОЗ). Иначе результат формулы будет ошибочным.

Стоп, стоп… почему мы не можем просто использовать функцию VLOOKUP (ВПР)? Есть ли смысл тратить время, пытаясь разобраться в лабиринтах ПОИСКПОЗ и ИНДЕКС?

=VLOOKUP("Japan",$B$2:$D$2,3)
=ВПР("Japan";$B$2:$D$2;3)

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

Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?

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

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

4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:

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

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

Например, если у Вас есть таблица A1:C10, и требуется извлечь данные из столбца B, то нужно задать значение 2 для аргумента col_index_num (номер_столбца) функции ВПР, вот так:

=VLOOKUP("lookup value",A1:C10,2)
=ВПР("lookup value";A1:C10;2)

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

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

3. Нет ограничения на размер искомого значения. Используя ВПР, помните об ограничении на длину искомого значения в 255 символов, иначе рискуете получить ошибку #VALUE! (#ЗНАЧ!). Итак, если таблица содержит длинные строки, единственное действующее решение – это использовать ИНДЕКС/ПОИСКПОЗ.

Предположим, Вы используете вот такую формулу с ВПР, которая ищет в ячейках от B5 до D10 значение, указанное в ячейке A2:

=VLOOKUP(A2,B5:D10,3,FALSE)
=ВПР(A2;B5:D10;3;ЛОЖЬ)

Формула не будет работать, если значение в ячейке A2 длиннее 255 символов. Вместо неё Вам нужно использовать аналогичную формулу ИНДЕКС/ПОИСКПОЗ:

=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0))
=ИНДЕКС(D5:D10;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B5:B10=A2;0);0))

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

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

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

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

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

Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС

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

Функции ПОИСКПОЗ и ИНДЕКС в Excel гораздо более гибкие, и им все-равно, где находится столбец со значением, которое нужно извлечь. Для примера, снова вернёмся к таблице со столицами государств и населением. На этот раз запишем формулу ПОИСКПОЗ/ИНДЕКС, которая покажет, какое место по населению занимает столица России (Москва).

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

=INDEX($A$2:$A$10,MATCH("Russia",$B$2:$B$10,0))
=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ("Russia";$B$2:$B$10;0))

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

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

  • Во-первых, задействуем функцию MATCH (ПОИСКПОЗ), которая находит положение «Russia» в списке:

    =MATCH("Russia",$B$2:$B$10,0))
    =ПОИСКПОЗ("Russia";$B$2:$B$10;0))

  • Далее, задаём диапазон для функции INDEX (ИНДЕКС), из которого нужно извлечь значение. В нашем случае это A2:A10.
  • Затем соединяем обе части и получаем формулу:

    =INDEX($A$2:$A$10;MATCH("Russia";$B$2:$B$10;0))
    =ИНДЕКС($A$2:$A$10;ПОИСКПОЗ("Russia";$B$2:$B$10;0))

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

Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)

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

1. MAX (МАКС). Формула находит максимум в столбце D и возвращает значение из столбца C той же строки:

=INDEX($C$2:$C$10,MATCH(MAX($D$2:I$10),$D$2:D$10,0))
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МАКС($D$2:I$10);$D$2:D$10;0))

Результат: Beijing

2. MIN (МИН). Формула находит минимум в столбце D и возвращает значение из столбца C той же строки:

=INDEX($C$2:$C$10,MATCH(MIN($D$2:I$10),$D$2:D$10,0))
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МИН($D$2:I$10);$D$2:D$10;0))

Результат: Lima

3. AVERAGE (СРЗНАЧ). Формула вычисляет среднее в диапазоне D2:D10, затем находит ближайшее к нему и возвращает значение из столбца C той же строки:

=INDEX($C$2:$C$10,MATCH(AVERAGE($D$2:D$10),$D$2:D$10,1))
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(СРЗНАЧ($D$2:D$10);$D$2:D$10;1))

Результат: Moscow

О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ

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

  • Если указываете 1, значения в столбце поиска должны быть упорядочены по возрастанию, а формула вернёт максимальное значение, меньшее или равное среднему.
  • Если указываете -1, значения в столбце поиска должны быть упорядочены по убыванию, а возвращено будет минимальное значение, большее или равное среднему.

В нашем примере значения в столбце D упорядочены по возрастанию, поэтому мы используем тип сопоставления 1. Формула ИНДЕКС/ПОИСКПОЗ возвращает «Moscow», поскольку величина населения города Москва – ближайшее меньшее к среднему значению (12 269 006).

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

Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу

Эта формула эквивалентна двумерному поиску ВПР и позволяет найти значение на пересечении определённой строки и столбца.

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

Как Вы помните, синтаксис функции INDEX (ИНДЕКС) позволяет использовать три аргумента:

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

И я поздравляю тех из Вас, кто догадался!

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

=INDEX(Ваша таблица,(MATCH(значение для вертикального поиска,столбец, в котором искать,0)),(MATCH(значение для горизонтального поиска,строка в которой искать,0))
=ИНДЕКС(Ваша таблица,(MATCH(значение для вертикального поиска,столбец, в котором искать,0)),(MATCH(значение для горизонтального поиска,строка в которой искать,0))

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

А теперь давайте испытаем этот шаблон на практике. Ниже Вы видите список самых населённых стран мира. Предположим, наша задача узнать население США в 2015 году.

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

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

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

  • ПОИСКПОЗ для столбца – мы ищем в столбце B, а точнее в диапазоне B2:B11, значение, которое указано в ячейке H2 (USA). Функция будет выглядеть так:

    =MATCH($H$2,$B$1:$B$11,0)
    =ПОИСКПОЗ($H$2;$B$1:$B$11;0)

    Результатом этой формулы будет 4, поскольку «USA» – это 4-ый элемент списка в столбце B (включая заголовок).

  • ПОИСКПОЗ для строки – мы ищем значение ячейки H3 (2015) в строке 1, то есть в ячейках A1:E1:

    =MATCH($H$3,$A$1:$E$1,0)
    =ПОИСКПОЗ($H$3;$A$1:$E$1;0)

    Результатом этой формулы будет 5, поскольку «2015» находится в 5-ом столбце.

Теперь вставляем эти формулы в функцию ИНДЕКС и вуаля:

=INDEX($A$1:$E$11,MATCH($H$2,$B$1:$B$11,0),MATCH($H$3,$A$1:$E$1,0))
=ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($H$2;$B$1:$B$11;0);ПОИСКПОЗ($H$3;$A$1:$E$1;0))

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

=INDEX($A$1:$E$11,4,5))
=ИНДЕКС($A$1:$E$11;4;5))

Эта формула возвращает значение на пересечении 4-ой строки и 5-го столбца в диапазоне A1:E11, то есть значение ячейки E4. Просто? Да!

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

Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ

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

Предположим, у нас есть список заказов, и мы хотим найти сумму по двум критериям – имя покупателя (Customer) и продукт (Product). Дело усложняется тем, что один покупатель может купить сразу несколько разных продуктов, и имена покупателей в таблице на листе Lookup table расположены в произвольном порядке.

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

Вот такая формула ИНДЕКС/ПОИСКПОЗ решает задачу:

{=INDEX('Lookup table'!$A$2:$C$13,MATCH(1,(A2='Lookup table'!$A$2:$A$13)*
(B2='Lookup table'!$B$2:$B$13),0),3)}

{=ИНДЕКС('Lookup table'!$A$2:$C$13;ПОИСКПОЗ(1;(A2='Lookup table'!$A$2:$A$13)*
(B2='Lookup table'!$B$2:$B$13);0);3)}

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

MATCH(1,(A2='Lookup table'!$A$2:$A$13),0)*(B2='Lookup table'!$B$2:$B$13)
ПОИСКПОЗ(1;(A2='Lookup table'!$A$2:$A$13);0)*(B2='Lookup table'!$B$2:$B$13)

В формуле, показанной выше, искомое значение – это 1, а массив поиска – это результат умножения. Хорошо, что же мы должны перемножить и почему? Давайте разберем все по порядку:

  • Берем первое значение в столбце A (Customer) на листе Main table и сравниваем его со всеми именами покупателей в таблице на листе Lookup table (A2:A13).
  • Если совпадение найдено, уравнение возвращает 1 (ИСТИНА), а если нет – 0 (ЛОЖЬ).
  • Далее, мы делаем то же самое для значений столбца B (Product).
  • Затем перемножаем полученные результаты (1 и 0). Только если совпадения найдены в обоих столбцах (т.е. оба критерия истинны), Вы получите 1. Если оба критерия ложны, или выполняется только один из них – Вы получите 0.

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

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

И, наконец, т.к. нам нужно проверить каждую ячейку в массиве, эта формула должна быть формулой массива. Вы можете видеть это по фигурным скобкам, в которые она заключена. Поэтому, когда закончите вводить формулу, не забудьте нажать Ctrl+Shift+Enter.

Если всё сделано верно, Вы получите результат как на рисунке ниже:

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

ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel

Как Вы, вероятно, уже заметили (и не раз), если вводить некорректное значение, например, которого нет в просматриваемом массиве, формула ИНДЕКС/ПОИСКПОЗ сообщает об ошибке #N/A (#Н/Д) или #VALUE! (#ЗНАЧ!). Если Вы хотите заменить такое сообщение на что-то более понятное, то можете вставить формулу с ИНДЕКС и ПОИСКПОЗ в функцию ЕСЛИОШИБКА.

Синтаксис функции ЕСЛИОШИБКА очень прост:

IFERROR(value,value_if_error)
ЕСЛИОШИБКА(значение;значение_если_ошибка)

Где аргумент value (значение) – это значение, проверяемое на предмет наличия ошибки (в нашем случае – результат формулы ИНДЕКС/ПОИСКПОЗ); а аргумент value_if_error (значение_если_ошибка) – это значение, которое нужно возвратить, если формула выдаст ошибку.

Например, Вы можете вставить формулу из предыдущего примера в функцию ЕСЛИОШИБКА вот таким образом:

=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),
"Совпадений не найдено. Попробуйте еще раз!")
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0));
"Совпадений не найдено. Попробуйте еще раз!")

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

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

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

IFERROR(INDEX(массив,MATCH(искомое_значение,просматриваемый_массив,0),"")
ЕСЛИОШИБКА(ИНДЕКС(массив;ПОИСКПОЗ(искомое_значение;просматриваемый_массив;0);"")

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

Оцените качество статьи. Нам важно ваше мнение:

Функция СТРОКА

​Смотрите также​ данные. Хоть и​ Лист2, массив​​ логические значения не​​); а аргумент​

Описание

​ПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13);0)*(B2=’Lookup table’!$B$2:$B$13)​ в 2015 году.​

Синтаксис

​(СРЗНАЧ). Формула вычисляет​

​ и чем больше​B​

  • ​(ИНДЕКС), должно соответствовать​​ПОИСКПОЗ​ВПР​3,55 ₽​ возвратить ссылку.​

    • ​В этих примерах функция​ угол и Маркером​В этой статье описаны​ работает это шустро,​=МИН(СТРОКА(Лист2!1:999)*ЕСЛИ(ЕПУСТО(Лист2!1:999);9E+99;1))​

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

    • ​.​16​

Примеры

​Номер_области​ ИНДЕКС используется для​ заполнения протягиваем вниз.​ синтаксис формулы и​ но к применению​vikttur​Казанский​(значение_если_ошибка) – это​ искомое значение –​ Когда мне нужно​D2:D10​ Ваша таблица, тем​ значение​

​row_num​

​0​

​Функция​

​Арахис​

​    — необязательный аргумент. Диапазон​

​ поиска значения ячейки,​

​Получаем результат как в​

​ использование функции​

​ неудобно…​

support.office.com

Нумерация строк в MS EXCEL

​: До двух знаков​: только для строк.​

Используем формулы

​ значение, которое нужно​​ это​​ создать сложную формулу​, затем находит ближайшее​ медленнее работает Excel.​2​​(номер_строки) и​​.​INDEX​1,25 ₽​

​ в аргументе «ссылка»,​ находящейся на пересечении​ предыдущем случае. Если​СТРОКА​Михаил С.​ ужмем? :)​ числа, даты и​ возвратить, если формула​1​ в Excel с​ к нему и​С другой стороны, формула​

​для аргумента​column_num​-1​​(ИНДЕКС) в Excel​​20​ из которого требуется​

​ заданных строки и​ в ячейке​в Microsoft Excel.​

Используем клавишу CTRL

​: А где нужно​=ПОИСКПОЗ(;-(A:A=»»);)​ логические значения не​​ выдаст ошибку.​​, а массив поиска​ вложенными функциями, то​​ возвращает значение из​​ с функциями​​col_index_num​​(номер_столбца) функции​– находит наименьшее​ возвращает значение из​Грецкие орехи​​ возвратить значение ячейки​​ столбца.​А3​Возвращает номер строки, определяемой​ размещать все эти​

​ikki​​ найдет.{/post}{/quote}М-да, действительно. Такой​Например, Вы можете вставить​ – это результат​ я сначала каждую​ столбца​ПОИСКПОЗ​(номер_столбца) функции​MATCH​ значение, большее или​​ массива по заданным​​1,75 ₽​ на пересечении строки​Скопируйте образец данных из​​введено значение 3,​​ ссылкой.​

Используем начало последовательности

​ «Public Function хотьчтонибудь(target​: вотЬ​ вот костыль, массив:​ формулу из предыдущего​ умножения. Хорошо, что​ вложенную записываю отдельно.​

  • ​C​​и​​ВПР​(ПОИСКПОЗ). Иначе результат​​ равное искомому значению.​​ номерам строки и​
  • ​12​​ и столбца, заданных​​ следующей таблицы и​
  • ​ т.е. задан шаг​СТРОКА([ссылка])​ As Range) As​

​UDF​=ПОИСКПОЗ(«?»;ЛЕВСИМВ(A:A;1);)​ примера в функцию​​ же мы должны​​Итак, начнём с двух​той же строки:​ИНДЕКС​, вот так:​ формулы будет ошибочным.​

Использование инструмента Прогрессия

​ Просматриваемый массив должен​ столбца. Функция имеет​Формула​ аргументами «номер_строки» и​

  • ​ вставьте их в​​ последовательности равный 2,​​Аргументы функции СТРОКА описаны​
  • ​ Long»? на этом​​вообще-то проверял, но,​​ikki​ЕСЛИОШИБКА​
  • ​ перемножить и почему?​ функций​=INDEX($C$2:$C$10,MATCH(AVERAGE($D$2:D$10),$D$2:D$10,1))​просто совершает поиск​

​=VLOOKUP(«lookup value»,A1:C10,2)​
​Стоп, стоп… почему мы​ быть упорядочен по​ вот такой синтаксис:​Описание​ «номер_столбца». Первая введенная​ ячейку A1 нового​ то мы получим​ ниже.​ же листе? они​ если чё -​: другое дело :)​вот таким образом:​

excel2.ru

ИНДЕКС (функция ИНДЕКС)

​ Давайте разберем все​ПОИСКПОЗ​=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(СРЗНАЧ($D$2:D$10);$D$2:D$10;1))​ и возвращает результат,​

​=ВПР(«lookup value»;A1:C10;2)​ не можем просто​

  • ​ убыванию, то есть​INDEX(array,row_num,[column_num])​Результат​ или выделенная область​ листа Excel. Чтобы​

  • ​ последовательность нечетных чисел.​Ссылка​ не зациклятся при​ прошу сильно не​

Форма массива

Описание

​работает также =ПОИСКПОЗ(0;ЕСЛИ(ЕПУСТО(A:A);1;0);0)​=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),​ по порядку:​, которые будут возвращать​

​Результат: Moscow​ выполняя аналогичную работу​Если позднее Вы вставите​ использовать функцию​

Синтаксис

​ от большего к​

​ИНДЕКС(массив;номер_строки;[номер_столбца])​=ИНДЕКС(A2:C6;2;3)​

  • ​ имеет номер 1, вторая —​​ отобразить результаты формул,​Воспользуемся стандартным средством EXCEL​    Необязательный. Ячейка или диапазон​

    • ​ этом?​ бить.​ (тоже массив)​»Совпадений не найдено.​Берем первое значение в​ номера строки и​

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

  • ​ ячеек, для которых​​excelgeorge​Public Function хотьчтонибудь(target​интересно… что быстрее?..​ Попробуйте еще раз!»)​ столбце​ столбца для функции​СРЗНАЧ​

  • ​Теперь, когда Вы понимаете​​ столбцами​(ВПР)? Есть ли​На первый взгляд, польза​ простое объяснение:​ третьего столбца в​ Если аргумент «номер_области»​ нажмите клавишу F2,​

Замечания

  • ​ в то числе​ требуется вернуть номер​: здравствуйте, подскажите, пожалуйста,​ As Range) As​но… автору темы​=ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0));​A​

  • ​ИНДЕКС​в комбинации с​ причины, из-за которых​A​ смысл тратить время,​ от функции​array​ диапазоне A2:C6, т. е.​ опущен, в функции​ а затем — клавишу​ и арифметических.​ строки.​ а как поменять​ Long​ надо было не​»Совпадений не найдено.​(Customer) на листе​:​

    ​ИНДЕКС​​ стоит изучать функции​и​ пытаясь разобраться в​

  • ​ПОИСКПОЗ​(массив) – это​ содержимое ячейки C3.​ ИНДЕКС используется область 1. ​ ВВОД. При необходимости​вводим в ячейку​Если ссылка опущена, то​

Примеры

Пример 1

​ номер ячейки в​Set r =​ это :(​ Попробуйте еще раз!»)​Main table​ПОИСКПОЗ для столбца​

​и​ПОИСКПОЗ​B​ лабиринтах​вызывает сомнение. Кому​ диапазон ячеек, из​38​ Все указанные здесь​ измените ширину столбцов,​А2​ предполагается, что это​ формуле, если при​ target.Worksheet.UsedRange​

​Казанский​

​И теперь, если кто-нибудь​

​и сравниваем его​

​– мы ищем​

​ПОИСКПОЗ​

​и​

​, то значение аргумента​

​ПОИСКПОЗ​

​ нужно знать положение​

​ которого необходимо извлечь​

​=ИНДЕКС((A1:C6;A8:C11);2;2;2)​ области должны находиться​ чтобы видеть все​значение 1;​

​ ссылка на ячейку,​

​ ее протягивании автоматически​

​хотьчтонибудь = 0​: Эту формулу можно​ введет ошибочное значение,​ со всеми именами​

​ в столбце​

Пример 2

​, в качестве третьего​ИНДЕКС​ придется изменить с​и​ элемента в диапазоне?​ значение.​Пересечение второй строки и​

​ на одном листе. ​ данные.​выделяем диапазон​ в которой находится​ берется след. номер​For Each c​ упростить:​ формула выдаст вот​ покупателей в таблице​B​ аргумента функции​, давайте перейдём к​

​2​

​ИНДЕКС​

​ Мы хотим знать​

​row_num​​ второго столбца во​​ Если указать области,​

​Данные​A2:А6​ сама функция СТРОКА.​ стоки, а нужно,​ In r.Rows​=ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A);)​ такой результат:​ на листе​, а точнее в​

​ПОИСКПОЗ​

​ самому интересному и​на​?​ значение этого элемента!​

​(номер_строки) – это​

​ второй области (A8:C11),​​ находящиеся на разных​Данные​, в котором будут​Если значение аргумента «ссылка»​ чтобы брался следующий,​If Not c.Find(What:=»*»,​Но есть нюанс:​Если Вы предпочитаете в​Lookup table​ диапазоне​чаще всего нужно​ увидим, как можно​3​=VLOOKUP(«Japan»,$B$2:$D$2,3)​

​Позвольте напомнить, что относительное​

Ссылочная форма

Описание

​ номер строки в​ т. е. содержимое ячейки​ листах, произойдет ошибка​Яблоки​ содержаться номера строк;​ является диапазоном ячеек,​ то есть отнимался​ LookIn:=xlFormulas, _​ она считает непустой​

Синтаксис

​ случае ошибки оставить​

​(A2:A13).​B2:B11​

  • ​ будет указывать​​ применить теоретические знания​, иначе формула возвратит​=ВПР(«Japan»;$B$2:$D$2;3)​

    • ​ положение искомого значения​ массиве, из которой​ B9.​ #ЗНАЧ!  Если необходимо​

    • ​Лимоны​вызываем инструмент Прогрессия (Главная/​ а функция СТРОКА​ диапозон строк.​LookAt:=xlPart, MatchCase:=False) Is​ ячейку, в которой​ ячейку пустой, то​Если совпадение найдено, уравнение​, значение, которое указано​1​

  • ​ на практике.​​ результат из только​В данном случае –​ (т.е. номер строки​ нужно извлечь значение.​1,25​

  • ​ использовать диапазоны, находящиеся​​Бананы​ Редактирование/ Заполнить/ Прогрессия…),​ введена как вертикальный​Значения подтягиваются из​ Nothing Then​

  • ​ содержится пустая строка,​​ можете использовать кавычки​ возвращает​ в ячейке​или​Любой учебник по​ что вставленного столбца.​ смысла нет! Цель​ и/или столбца) –​ Если не указан,​=СУММ(ИНДЕКС(A1:C11;0;3;1))​ на разных листах,​Груши​ в появившемся окне​ массив, функция СТРОКА​ другого excel файла,​хотьчтонибудь = c.Row​ например формула =»»​ («»), как значение​1​H2​-1​ВПР​Используя​ этого примера –​ это как раз​ то обязательно требуется​Сумма третьего столбца в​ рекомендуется применить функцию​Формула​ нажимаем ОК.​ возвращает номера строк,​ но можно и​

​Exit Function​ или результат копирования-вставки​ второго аргумента функции​(ИСТИНА), а если​(USA). Функция будет​в случае, если​твердит, что эта​ПОИСКПОЗ​ исключительно демонстрационная, чтобы​

Замечания

  • ​ то, что мы​ аргумент​ первой области диапазона​ ИНДЕКС в форме​Описание​СОВЕТ:​ указанных в аргументе​ с другого листа,​End If​ как значения такой​ЕСЛИОШИБКА​ нет –​ выглядеть так:​ Вы не уверены,​ функция не может​/​

  • ​ Вы могли понять,​ должны указать для​column_num​ (A1:C11) является суммой​ массива и использовать​Результат​О специальных случаях​

  • ​ «ссылка», в виде​ не суть. Эти​Next c​ ячейки.​. Вот так:​0​=MATCH($H$2,$B$1:$B$11,0)​ что просматриваемый диапазон​ смотреть влево. Т.е.​ИНДЕКС​ как функции​ аргументов​

  • ​(номер_столбца).​ диапазона C1:C11.​ другую функцию для​=ИНДЕКС(A2:B3;2;2)​ нумерации строк можно​ вертикального массива.​ значения идут на​End Function​Предыдущие формулы такую​IFERROR(INDEX(массив,MATCH(искомое_значение,просматриваемый_массив,0),»»)​(ЛОЖЬ).​=ПОИСКПОЗ($H$2;$B$1:$B$11;0)​ содержит значение, равное​ если просматриваемый столбец​, Вы можете удалять​ПОИСКПОЗ​row_num​column_num​216​ вычисления диапазона, составляющего​

​Значение ячейки на пересечении​​ почитать в статьях​В аргументе «ссылка» нельзя​ каждой строке, а​

Примеры

​применение: =хотьчтонибудь(Лист1!A:IV)​ ячейку считают пустой.​ЕСЛИОШИБКА(ИНДЕКС(массив;ПОИСКПОЗ(искомое_значение;просматриваемый_массив;0);»»)​Далее, мы делаем то​Результатом этой формулы будет​ среднему. Если же​ не является крайним​ или добавлять столбцы​и​(номер_строки) и/или​(номер_столбца) – это​=СУММ(B2:ИНДЕКС(A2:C6;5;2))​ массив.  Например, определить​

​ второй строки и​

​ Автоматическая перенумерация строк​

​ указывать несколько областей.​

​ не через 10​

​можно и для​

​ikki​

​Надеюсь, что хотя бы​

​ же самое для​

​4​

​ Вы уверены, что​

​ левым в диапазоне​

​ к исследуемому диапазону,​

​ИНДЕКС​

​column_num​

​ номер столбца в​

​Сумма значений из диапазона,​

​ используемый диапазон можно​

​ второго столбца в​

​ при применении фильтра,​

​Скопируйте образец данных из​

​ строк каждое, как​

​ текущего листа: =хотьчтонибудь(A:IV)​

​: угум. я тоже​

​ одна формула, описанная​

​ значений столбца​

​, поскольку «USA» –​

​ такое значение есть,​

​ поиска, то нет​

​ не искажая результат,​

​работают в паре.​

​(номер_столбца) функции​

​ массиве, из которого​

​ начинающегося с ячейки​

​ с помощью функции​

​ диапазоне A2:B3.​ Автоматическая нумерация при​ следующей таблицы и​ мне было бы​

​Казанский​

​ думал, что можно​

​ в этом учебнике,​B​ это 4-ый элемент​ – ставьте​ шансов получить от​

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

​ Последующие примеры покажут​

​INDEX​ нужно извлечь значение.​ B2 и заканчивающегося​ ВЫБОР.​

​Груши​

​ добавлении строк, Сохранение​

​ вставьте их в​ удобнее и не​: Если Find, то​ упростить.​ показалась Вам полезной.​(Product).​ списка в столбце​0​

​ВПР​

​ непосредственно столбец, содержащий​

support.office.com

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

​ Вам истинную мощь​(ИНДЕКС). Как Вы​​ Если не указан,​​ пересечением пятой строки​​Например, если аргумент «ссылка»​​=ИНДЕКС(A2:B3;2;1)​ нумерации при удалении​ ячейку A1 нового​ возникло бы вопросов.​​ зачем цикл :)​​но упрощенная -​ Если Вы сталкивались​Затем перемножаем полученные результаты​B​для поиска точного​желаемый результат.​​ нужное значение. Действительно,​​ связки​

​ помните, функция​ то обязательно требуется​ и второго столбца​ определяет ячейки (A1:B4,D1:E4,G1:H4),​Значение ячейки на пересечении​​ строк, Нумерация строк​​ листа Excel. Чтобы​Если честно, то​Set r =​ она работает НЕПРАВИЛЬНО.​ с другими задачами​ (1 и 0).​​(включая заголовок).​​ совпадения.​Функции​ это большое преимущество,​ИНДЕКС​

​ИНДЕКС​ аргумент​ диапазона A2:A6, т. е.​​ номер области 1​​ второй строки и​ и столбцов римскими​ отобразить результаты формул,​ оч трудно сформулировать,​ target.Worksheet.cells.Find(…​например, если в​ поиска, для которых​ Только если совпадения​ПОИСКПОЗ для строки​​Если указываете​​ПОИСКПОЗ​​ особенно когда работать​​и​может возвратить значение,​row_num​ сумма значений из​ соответствует диапазону A1:B4,​​ первого столбца в​​ цифрами и Нумерация​

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

  • ​ выделите их и​ проще показать.​
  • ​if not r​ первой ячейке пусто,​
  • ​ не смогли найти​ найдены в обоих​
  • ​– мы ищем​1​
    • ​и​ приходится с большими​
    • ​ПОИСКПОЗ​ находящееся на пересечении​
    • ​(номер_строки)​ диапазона B2:B6.​
    • ​ номер области 2​
    • ​ диапазоне A2:B3.​ столбцов буквами.​

Базовая информация об ИНДЕКС и ПОИСКПОЗ

​ нажмите клавишу F2,​Пример ниже, заранее​ is nothing then​​ во второй -​​ подходящее решение среди​​ столбцах (т.е. оба​​ значение ячейки​, значения в столбце​ИНДЕКС​ объёмами данных. Вы​, которая легко справляется​

​ заданных строки и​Если указаны оба аргумента,​2,42​ — диапазону D1:E4,​Бананы​Функция ИНДЕКС возвращает значение​​ а затем — клавишу​​ спасибо​​ хотьчтонибудь = r.row​​ дата, а третья​​ информации в этом​​ критерия истинны), Вы​

ИНДЕКС – синтаксис и применение функции

​H3​​ поиска должны быть​​в Excel гораздо​ можете добавлять и​ с многими сложными​ столбца, но она​ то функция​К началу страницы​

​ а номер области​
​В этом примере функция​

​ или ссылку на​ ВВОД. При необходимости​

  • ​PooHkrd​​Только вот метод​ снова пустая, то​ уроке, смело опишите​ получите​
  • ​(2015) в строке​​ упорядочены по возрастанию,​ более гибкие, и​ удалять столбцы, не​ ситуациями, когда​ не может определить,​ИНДЕКС​Этот учебник рассказывает о​​ 3 — диапазону​​ ИНДЕКС используется в​
  • ​ значение из таблицы​​ измените ширину столбцов,​: Если я все​ Find не работает​ такая формула дает​ свою проблему в​1​1​​ а формула вернёт​​ им все-равно, где​

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

​ или диапазона.​​ чтобы видеть все​​ правильно понял и​

​ в UDF в​
​ #Н/Д.​

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

​Функцию ИНДЕКС можно использовать​ данные.​ вам требуется чтобы​ моем любимом 2000​а вот если​ все вместе постараемся​ ложны, или выполняется​​ ячейках​​ или равное среднему.​

ПОИСКПОЗ – синтаксис и применение функции

​ значением, которое нужно​​ исправлять каждую используемую​​Решая, какую формулу использовать​ интересуют.​ пересечении указанных строки​и​ помощью аргументов «ссылка»​ заданных ячеек в​

​ двумя способами:​​Формула​​ при протягивании формула​ :(​ третья — тоже​ решить её.​​ только один из​​A1:E1​Если указываете​ извлечь. Для примера,​

​ функцию​
​ для вертикального поиска,​

​Теперь, когда Вам известна​​ и столбца.​​ПОИСКПОЗ​ и «номер_области» выбран​

​ массиве с диапазоном​
​Если вы хотите возвращать​

  • ​Описание​​ не изменялась в​ikki​ дата, то результат​Урок подготовлен для Вас​ них – Вы​:​-1​
  • ​ снова вернёмся к​​ВПР​ большинство гуру Excel​ базовая информация об​
  • ​Вот простейший пример функции​​в Excel, которые​ диапазон, с помощью​​ 2 x 2.​​ значение указанной ячейки​Результат​ некотором количестве строк,​
    • ​: мда… усложнил малость.​​ равен 3.​​ командой сайта office-guru.ru​​ получите​=MATCH($H$3,$A$1:$E$1,0)​, значения в столбце​ таблице со столицами​.​ считают, что​ этих двух функциях,​
    • ​INDEX​​ делают их более​ аргументов «номер_строки» и​В этом случае нужно​​ или массива ячеек,​​=СТРОКА()​​ после чего уже​​все равно это​неупрощенная — работает​Источник: https://www.ablebits.com/office-addins-blog/2014/08/13/excel-index-match-function-vlookup/​​0​​=ПОИСКПОЗ($H$3;$A$1:$E$1;0)​​ поиска должны быть​​ государств и населением.​
    • ​3. Нет ограничения на​​ИНДЕКС​ полагаю, что уже​(ИНДЕКС):​ привлекательными по сравнению​ «номер_столбца» выбирается конкретная​ выбрать любые две​ см. раздел Форма​Строка формулы​

​ ссылалась бы на​ должно работать быстрее,​​ правильно во всех​​Перевел: Антон Андронов​.​Результатом этой формулы будет​ упорядочены по убыванию,​ На этот раз​

​ размер искомого значения.​/​ становится понятно, как​=INDEX(A1:C10,2,3)​ с​ ячейка: номер строки​ ячейки по вертикали,​ массива.​​2​​ другой диапазон, то​​ чем формулы массива,​​ случаях.​​Автор: Антон Андронов​​Теперь понимаете, почему мы​5​​ а возвращено будет​​ запишем формулу​Используя​ПОИСКПОЗ​ функции​=ИНДЕКС(A1:C10;2;3)​ВПР​ 1 соответствует первой​ например A1:A2, вставить​

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

​Если требуется возвращать ссылку​=СТРОКА(C10)​ вам нужно сначала​ тем более смотрим​вообще-то странно.​Excel-ok​​ задали​​, поскольку «2015» находится​​ минимальное значение, большее​​ПОИСКПОЗ​​ВПР​​намного лучше, чем​ПОИСКПОЗ​Формула выполняет поиск в​. Вы увидите несколько​​ строке диапазона, номер​​ в первую ячейку​ на указанные ячейки,​Строка ссылки​ прописать вручную необходимый​

​ не весь лист,​пс. у меня​​: =МИН(ЕСЛИ(ДЛСТР(СТРОКА(Лист1!1:65536))>0;СТРОКА(Лист1!1:65536)))​​1​​ в 5-ом столбце.​​ или равное среднему.​

​/​, помните об ограничении​ВПР​
​и​ диапазоне​ примеров формул, которые​

​ столбца 1 —​ формулу =ИНДЕКС({1;2:3;4};0;2) и​ см. раздел Ссылочная​10​ по размерам блок​

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

​ а UsedRange.​ Excel 2003… можть,​/как формула массива/​, как искомое значение?​

​Теперь вставляем эти формулы​
​В нашем примере значения​

​ИНДЕКС​ на длину искомого​. Однако, многие пользователи​

  • ​ИНДЕКС​​A1:C10​​ помогут Вам легко​ его первому столбцу​​ нажать клавиши CTRL+SHIFT+ВВОД.​​ форма.​Используем различные подходы для​​ формул, потом протягивать​​но, кшн, можно​​ глючный какой?​​по задумке должна​ Правильно, чтобы функция​ в функцию​
  • ​ в столбце​​, которая покажет, какое​​ значения в 255​​ Excel по-прежнему прибегают​​могут работать вместе.​​и возвращает значение​​ справиться со многими​ и т. д.​ Если ввести формулу​Возвращает значение элемента таблицы​ нумерации строк.​

    ​ вниз не одну​
    ​ и без цикла.​

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

​Пусть в ячейке​ ячейку с формулой,​

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

​но тогда обязательно​: =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A);0) (по умолчанию​ по счету строки​​возвращала позицию только,​​и вуаля:​упорядочены по возрастанию,​​ занимает столица России​​ получить ошибку​​ВПР​​определяет относительную позицию​​2-й​​ которыми функция​ ИНДЕКС, указывает на​

​ Excel автоматически вставит​ номером строки и​A2​​ а весь блок​​ надо задать в​ 1)​ в которой хоть​ когда оба критерия​​=INDEX($A$1:$E$11,MATCH($H$2,$B$1:$B$11,0),MATCH($H$3,$A$1:$E$1,0))​​ поэтому мы используем​​ (Москва).​​#VALUE!​

​, т.к. эта функция​
​ искомого значения в​

​строке и​ВПР​ пересечение строки «номер_строки»​ ее во вторую​ номером столбца.​введено значение 1​​ целиком.​​ Find SearchOrder:=xlByRows​​Казанский​​ что-нибудь есть​ выполняются.​=ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($H$2;$B$1:$B$11;0);ПОИСКПОЗ($H$3;$A$1:$E$1;0))​ тип сопоставления​​Как видно на рисунке​​(#ЗНАЧ!). Итак, если​​ гораздо проще. Так​​ заданном диапазоне ячеек,​3-м​бессильна.​​ и столбца «номер_столбца».​​ ячейку.​

Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?

​Если первый аргумент функции​ (номер первой строки).​Ну, в общем​ikki​​: Нет. Если бы​​(формула находится на​​Обратите внимание:​​Если заменить функции​​1​​ ниже, формула отлично​ таблица содержит длинные​ происходит, потому что​​ а​​столбце, то есть​В нескольких недавних статьях​Если указать в качестве​Формула​ ИНДЕКС является константной​ В следующую строку​ ответил, как минимум,​​: ну виртуозы!!!​​ было так =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A))​​ листе Лист2, книга​​В этом случае​​ПОИСКПОЗ​​. Формула​ справляется с этой​ строки, единственное действующее​ очень немногие люди​

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

4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:

​ задачей:​​ решение – это​ до конца понимают​​использует это число​​C2​ усилия, чтобы разъяснить​ «номер_столбца» значение 0​Результат​ массива.​А3​ поставлена задача.​ — обработает скрытые​​ как по умолчанию​​ создана и сохранена)​​ не обязательный аргумент​​ они возвращают, формула​/​=INDEX($A$2:$A$10,MATCH(«Russia»,$B$2:$B$10,0))​ использовать​ все преимущества перехода​ (или числа) и​.​ начинающим пользователям основы​ (ноль), функция ИНДЕКС​

​=ИНДЕКС({1;2​ИНДЕКС(массив; номер_строки; [номер_столбца])​​, вводим формулу =А2+1​​З.Ы. В примере​​ строки/столбцы и будет​ =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A);1)​почему она не​ функции​ станет легкой и​ПОИСКПО​​=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))​​ИНДЕКС​ с​ возвращает результат из​Очень просто, правда? Однако,​​ функции​​ возвратит ссылку на​:​Аргументы функции ИНДЕКС описаны​ и копируем ее​ не понятно вообще​

​ работать в любом​А =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A);) эквивалентно​​ работает?​​ИНДЕКС​ понятной:​​З​​Теперь у Вас не​/​​ВПР​​ соответствующей ячейки.​​ на практике Вы​​ВПР​​ целый столбец или​​3;4};0;2)​

​ ниже.​
​ в ячейки ниже.​

​ ничего.​ Эксе, хоть в​ =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A);0)​​Михаил С.​​. Он необходим, т.к.​​=INDEX($A$1:$E$11,4,5))​​возвращает «Moscow», поскольку​ должно возникать проблем​​ПОИСКПОЗ​​на связку​​Ещё не совсем понятно?​​ далеко не всегда​и показать примеры​ целую строку соответственно.​

​Значение ячейки на пересечении​​Массив​​Так как в формуле​​excelgeorge​​ 97-м.​ikki​: Потому, что, если​ в первом аргументе​=ИНДЕКС($A$1:$E$11;4;5))​ величина населения города​ с пониманием, как​.​ИНДЕКС​ Представьте функции​ знаете, какие строка​ более сложных формул​Аргументы «номер_строки», «номер_столбца» и​ первой строки и​    — обязательный аргумент. Диапазон​ мы сослались на​:​​The_Prist, снимаю шляпу.​​: =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A);0) (по умолчанию​

​ ее чуть преобразовать,​ мы задаем всю​​Эта формула возвращает значение​​ Москва – ближайшее​​ работает эта формула:​Предположим, Вы используете вот​и​ИНДЕКС​ и столбец Вам​​ для продвинутых пользователей.​​ «номер_области» должны указывать​ второго столбца в​ ячеек или константа​ ячейку выше с​vikttur​​Казанский​​ 1){/post}{/quote}​​ то получим​​ таблицу и должны​

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

​: =ИНДЕКС($B$1:$B$100;(СТРОКА(A1)-1)/14+1)​
​: Не спеши со​

​разобрался.​=МИН(ЕСЛИ(ДЛСТР(1:65536)>0;СТРОКА(Лист1!1:65536)));​ указать функции, из​​4-ой​​ значению (12 269​MATCH​ВПР​, а тратить время​​ПОИСКПОЗ​​ требуется помощь функции​​ если не отговорить​​ аргумента «ссылка»; в​

​ значения 1 и​
​Если массив содержит только​

​ то EXCEL при​Играйтесь знаменателем.​​ шляпой ;)​мне, кшн, стыдно,​в любом случае​ какого столбца нужно​строки и​ 006).​(ПОИСКПОЗ), которая находит​, которая ищет в​ на изучение более​в таком виде:​ПОИСКПОЗ​ Вас от использования​ противном случае функция​ 2 в первой​​ одну строку или​​ копировании вниз модифицирует​​excelgeorge​​Сравни с дополненным​​ но страна должна​​ ДЛСТР(1:65536)>0=истина;​ извлечь значение. В​5-го​​Эта формула эквивалентна двумерному​​ положение «Russia» в​

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

​Функция​, то хотя бы​​ ошибки #ССЫЛКА!. Если​​ 3 и 4​​ аргумент «номер_строки» или​​ =А3+1, затем в​PerfectVam​Public Function хотьчтонибудь(target​Excel реабилитирован.​

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

​ столбцу А:А, то​ столбец​A1:E11​​ВПР​​=MATCH(«Russia»,$B$2:$B$10,0))​​до​​Далее я попробую изложить​ котором ищем,0))​MATCH​ показать альтернативные способы​ аргументы «номер_строки» и​

Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС

​ во второй строке.​​ «номер_столбца» не является​​ =А4+1 и т.д.,​: А вот так​ As Range) As​оказалось, что это​=МИН(ЕСЛИ(ДЛСТР(A1:A65536);СТРОКА(Лист1!1:65536)))​C​, то есть значение​и позволяет найти​​=ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))​​D10​

​ главные преимущества использования​​=ИНДЕКС(столбец из которого извлекаем;(ПОИСКПОЗ(искомое​​(ПОИСКПОЗ) в Excel​​ реализации вертикального поиска​​ «номер_столбца» опущены, функция​2​ обязательным.​ тем самым формируя​ можно привязаться к​ Long​ я глючный :)​не проверял​(Sum), и поэтому​ ячейки​ значение на пересечении​​Далее, задаём диапазон для​​значение, указанное в​​ПОИСКПОЗ​​ значение;столбец в котором​ ищет указанное значение​ в Excel.​ ИНДЕКС возвращает область​

​Значение ячейки на пересечении​Если массив содержит больше​ числовую последовательность 2,​ D1 и отслеживать​

​Dim avArr, lr​
​формулы =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A);) и​

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

​Serge​ мы ввели​E4​ определённой строки и​

  • ​ функции​​ ячейке​​и​ ищем;0))​ в диапазоне ячеек​

    ​Зачем нам это? –​
    ​ в аргументе "ссылка",​

  • ​ второй строки и​ одной строки и​​ 3, 4, …​​ по совпадающему с​ As Long, lc​ =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A);0) — это​: Потому что минимальная​​3​​. Просто? Да!​
  • ​ столбца.​INDEX​

    ​A2​
    ​ИНДЕКС​

​Думаю, ещё проще будет​​ и возвращает относительную​ спросите Вы. Да,​ заданную аргументом «номер_области».​​ второго столбца в​​ одного столбца, а​​Другим вариантом является использование​​ ним началу строки:​ As Long, r​ одно и то​ длинна строки массива​

Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)

​.​В учебнике по​​В этом примере формула​​(ИНДЕКС), из которого​​:​​в Excel, а​ понять на примере.​ позицию этого значения​ потому что​Результатом вычисления функции ИНДЕКС​ массиве, указанном выше.​ из аргументов «номер_строки»​

​ формулы =СТРОКА()-СТРОКА($A$1). В​​=ЕСЛИ(ЛЕВСИМВ($D2;ДЛСТР($D$1))=$D$1;ИНДЕКС(знач!B:B;СУММПРОИЗВ(—(ЛЕВСИМВ($D$1:$D2;ДЛСТР($D$1))=$D$1)));»»)​​ As Range​ же.​​ СТРОКА(Лист1!1:65536)= 1​​И, наконец, т.к. нам​ВПР​​ИНДЕКС​​ нужно извлечь значение.​

​=VLOOKUP(A2,B5:D10,3,FALSE)​
​ Вы решите –​

​ Предположим, у Вас​

​ в диапазоне.​​ВПР​​ является ссылка, которая​4​​ и «номер_столбца» задан​​ ячейке​I1POKE3​​Set r =​​но, если умудриться​

​Excel-ok​
​ нужно проверить каждую​

​мы показывали пример​

​/​​ В нашем случае​​=ВПР(A2;B5:D10;3;ЛОЖЬ)​ остаться с​​ есть вот такой​​Например, если в диапазоне​– это не​ интерпретируется в качестве​Примечание:​​ только один, функция​​А1​

​: Скажите пожулуйста, как​
​ target.Parent.UsedRange​

​ не заметить последний​

О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ

​: Формула​​ ячейку в массиве,​​ формулы с функцией​​ПОИСКПОЗ​​ это​​Формула не будет работать,​​ВПР​ список столиц государств:​​B1:B3​​ единственная функция поиска​ таковой другими функциями.​​ Это формула массива, которую​​ ИНДЕКС возвращает массив,​​должен находиться заголовок​​ узнать номер выделенной​If r.Count =​ «;» в первой​=МИН(ЕСЛИ(ДЛСТР(1:65536)>0;СТРОКА(Лист1!1:65536)))​ эта формула должна​ВПР​будет очень похожа​A2:A10​​ если значение в​​или переключиться на​Давайте найдём население одной​

  • ​содержатся значения New-York,​​ в Excel, и​​ В зависимости от​ нужно вводить с​ состоящий из целой​ столбца.​ сторки.​ 1 Then​
  • ​ формуле, т.е. набрать​​вероятно, должна считать​​ быть формулой массива.​для поиска по​ на формулы, которые​.​ ячейке​ИНДЕКС​

​ из столиц, например,​ Paris, London, тогда​​ её многочисленные ограничения​​ формулы значение, возвращаемое​ помощью клавиш CTRL+SHIFT+ВВОД.​ строки или целого​​Для чрезстрочной нумерации используйте​​Спасибо большое.​​If r <>​​ =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A)), то она,​​ то что нужно,​​ Вы можете видеть​​ нескольким критериям. Однако,​ мы уже обсуждали​Затем соединяем обе части​A2​/​ Японии, используя следующую​

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

Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу

​ следующая формула возвратит​ могут помешать Вам​​ функцией ИНДЕКС, может​​ Excel автоматически заключит​ столбца аргумента «массив».​ формулу (см. файл​Mahru​

​ «» Then хотьчтонибудь​​ есс-но будет понята​​ но после ввода​​ это по фигурным​​ существенным ограничением такого​ в этом уроке,​ и получаем формулу:​длиннее 255 символов.​ПОИСКПОЗ​ формулу:​

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

​ примера) =ЕСЛИ(ЕЧЁТН(СТРОКА());"";A7+1)​
​: На всякие случай​

​ = r.Row​ как =ПОИСКПОЗ(ЛОЖЬ;ЕПУСТО(A:A);1) и​ ее в ячеку​

​ скобкам, в которые​ решения была необходимость​ с одним лишь​=INDEX($A$2:$A$10;MATCH(«Russia»;$B$2:$B$10;0))​ Вместо неё Вам​​.​​=INDEX($D$2:$D$10,MATCH(«Japan»,$B$2:$B$10,0))​​3​​ во многих ситуациях.​ или как значение.​ скобки {}. Если​​     — обязательный аргумент.​​Пусть, как и в​ =СТРОКА()​

​Exit Function​ будет работать "неправильно".​ было получено сообщение​ она заключена. Поэтому,​ добавлять вспомогательный столбец.​
​ отличием. Угадайте каким?​=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ("Russia";$B$2:$B$10;0))​ нужно использовать аналогичную​1. Поиск справа налево.​=ИНДЕКС($D$2:$D$10;ПОИСКПОЗ("Japan";$B$2:$B$10;0))​

​, поскольку «London» –​ С другой стороны,​ Например, формула ЯЧЕЙКА(«ширина»;ИНДЕКС(A1:B2;1;2))​ вы попытаетесь ввести​​ Выбирает строку в​​ предыдущем примере, в​​I1POKE3​​Else​

​вот такие нюансы.​ суть которого в​ когда закончите вводить​ Хорошая новость: формула​Как Вы помните, синтаксис​Подсказка:​ формулу​Как известно любому​

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

​Теперь давайте разберем, что​ это третий элемент​ функции​ эквивалентна формуле ЯЧЕЙКА(«ширина»;B1).​ их вручную, Excel​ массиве, из которой​ ячейку​

​: Нет. Я ни​avArr = r.Value​​Excel-ok​​ том, что ресурсы​ формулу, не забудьте​ИНДЕКС​​ функции​​Правильным решением будет​

  • ​ИНДЕКС​​ грамотному пользователю Excel,​ делает каждый элемент​​ в списке.​​ИНДЕКС​ Функция ЯЧЕЙКА использует​​ отобразит формулу как​​ требуется возвратить значение.​A2​​ сколечко не здеваюсь!!!​​For lr =​: Вероятно, что то,​

    ​ Эксель закончились... И​
    ​ нажать​

    ​/​​INDEX​​ всегда использовать абсолютные​/​ВПР​​ этой формулы:​​=MATCH(«London»,B1:B3,0)​

  • ​и​​ значение, возвращаемое функцией​ текст. Если при​​ Если аргумент «номер_строки»​​введено значение 1.​​В прошлой теме​​ 1 To UBound(avArr,​ что хочется формулами​​ это при том,​​Ctrl+Shift+Enter​

    ​ПОИСКПОЗ​
    ​(ИНДЕКС) позволяет использовать​

    ​ ссылки для​​ПОИСКПОЗ​​не может смотреть​Функция​

​=ПОИСКПОЗ(«London»;B1:B3;0)​ПОИСКПОЗ​​ ИНДЕКС, как ссылку.​​ вводе формулы не​

​ опущен, аргумент "номер_столбца"​
​ Выделим ячейку​

​ написаны 3 способа​​ 1)​​ сделать не удастся..​ что это единственная​.​может искать по​

​ три аргумента:​
​ИНДЕКС​

​:​ влево, а это​​MATCH​​Функция​​– более гибкие​​ С другой стороны,​​ нажать клавиши CTRL+SHIFT+ВВОД,​​ является обязательным.​A2​​ как выделить строку​​For lc =​

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

Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ

​:(​​ формула в книге…​​Если всё сделано верно,​ значениям в двух​​INDEX(array,row_num,[column_num])​​и​=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0))​ значит, что искомое​(ПОИСКПОЗ) ищет значение​MATCH​ и имеют ряд​​ такая формула, как​​ она возвратит ошибку​​Номер_столбца​​. Удерживая клавишу​ через активную ячейку,​ 1 To UBound(avArr,​ikki​

​Вопрос остался: с​ Вы получите результат​ столбцах, без необходимости​ИНДЕКС(массив;номер_строки;[номер_столбца])​ПОИСКПОЗ​​=ИНДЕКС(D5:D10;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B5:B10=A2;0);0))​​ значение должно обязательно​​ «Japan» в столбце​​(ПОИСКПОЗ) имеет вот​ особенностей, которые делают​ 2*ИНДЕКС(A1:B2;1;2), преобразует значение,​ #ЗНАЧ!​     — необязательный аргумент.​CTRL​ то бишь не​​ 2)​​: ну вот )​ пом. формулы определить​

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

​ как на рисунке​​ создания вспомогательного столбца!​​И я поздравляю тех​​, чтобы диапазоны поиска​​4. Более высокая скорость​

​ находиться в крайнем​
​B​

​ такой синтаксис:​
​ их более привлекательными,​

​ возвращаемое функцией ИНДЕКС,​К началу страницы​ Выбирает столбец в​, скопируем Маркером заполнения​​ зная ее номера.​​If Len(avArr(lr, lc))​​ пока писал, а​​ номер самой первой​ ниже:​Предположим, у нас есть​​ из Вас, кто​​ не сбились при​ работы.​

​ левом столбце исследуемого​
​, а конкретно –​

​MATCH(lookup_value,lookup_array,[match_type])​ по сравнению с​ в число в​​Возвращает ссылку на ячейку,​​ массиве, из которого​ (при этом над​Я применил их​ Then​ тут уже и​ по счету строки​Как Вы, вероятно, уже​

  • ​ список заказов, и​ догадался!​​ копировании формулы в​​Если Вы работаете​​ диапазона. В случае​​ в ячейках​ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])​ВПР​ ячейке B1.​​ расположенную на пересечении​​ требуется возвратить значение.​
  • ​ курсором появится маленький​ все, и понял,​​хотьчтонибудь = lr:​​ ответ готов.​ в которой находится​​ заметили (и не​​ мы хотим найти​
  • ​Начнём с того, что​ другие ячейки.​ с небольшими таблицами,​​ с​​B2:B10​
  • ​lookup_value​.​Примечание:​ указанной строки и​ Если аргумент «номер_столбца»​ плюсик), значение из​ что мне это​​ Exit For​​но я таки​ хотя бы что-то​ раз), если вводить​ сумму по двум​ запишем шаблон формулы.​​Вы можете вкладывать другие​​ то разница в​

​ПОИСКПОЗ​, и возвращает число​​(искомое_значение) – это​​Базовая информация об ИНДЕКС​  Функция ЯЧЕЙКА недоступна​​ указанного столбца. Если​​ опущен, аргумент «номер_строки»​A2​ не помогает.​

​End If​​ сам допёр. :)​ (любое значение). Но​ некорректное значение, например,​ критериям –​​ Для этого возьмём​​ функции Excel в​ быстродействии Excel будет,​/​3​ число или текст,​ и ПОИСКПОЗ​ в Excel Web​ ссылка составлена из​ является обязательным.​​в ячейки ниже.​​Как оказалось мне​Next lc​​ikki​​ чтобы формуле, конечно,​

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

​If хотьчтонибудь >​: встроенными функциями -​ хватало ресурсов..​ просматриваемом массиве, формула​

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

ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel

​(Customer) и​ формулу​и​ заметная, особенно в​, столбец поиска может​ списке на третьем​​ Аргумент может быть​​ ПОИСКПОЗ в Excel​​Скопируйте образец данных из​​ можно указать, какой​​ — и «номер_строки»,​​ 1, 2, 3,​​ строки, в которой​​ 0 Then Exit​ наверное, нет.​:-)​ИНДЕКС​продукт​ИНДЕКС​​ПОИСКПОЗ​​ последних версиях. Если​​ быть, как в​​ месте.​​ значением, в том​​Преимущества ИНДЕКС и ПОИСКПОЗ​

​ следующей таблицы и​​ из них требуется​​ и «номер_столбца», —​

​ 4 …​
​ находиться выделенная ячейка.​

​ For​​но, если Вам​​Михаил С.​/​(Product). Дело усложняется​/​, например, чтобы найти​​ же Вы работаете​​ левой, так и​​Функция​​ числе логическим, или​​ перед ВПР​​ вставьте их в​ использовать.​ функция ИНДЕКС возвращает​ВНИМАНИЕ!​

​ Причем, не посмотрев​Next lr​ так принципиально наличие​​: 1. Если хотите​​ПОИСКПОЗ​

​ тем, что один​
​ПОИСКПОЗ​ минимальное, максимальное или​
​ с большими таблицами,​
​ в правой части​INDEX​

​ ссылкой на ячейку.​ИНДЕКС и ПОИСКПОЗ –​ ячейку A1 нового​ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области])​

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

​ значение ячейки на​Если на листе​ его в экселе​End If​ формулы, то можно​ искать по всему​​сообщает об ошибке​​ покупатель может купить​

​и добавим в​
​ ближайшее к среднему​

​ которые содержат тысячи​ диапазона поиска. Пример:​(ИНДЕКС) использует​lookup_array​ примеры формул​ листа Excel. Чтобы​Аргументы функции ИНДЕКС описаны​ пересечении указанных строки​ часть строк скрыта​ на экране, а​хотьчтонибудь = хотьчтонибудь​ сделать UDF, а​ листу, то формула​#N/A​ сразу несколько разных​

​ неё ещё одну​ значение. Вот несколько​
​ строк и сотни​
​ Как находить значения,​

​3​

office-guru.ru

Формула определяющая номер строки (например) для ячейки в которой хоть что-нть есть

​(просматриваемый_массив) – диапазон​​Как находить значения, которые​
​ отобразить результаты формул,​

​ ниже.​ и столбца.​ с помощью фильтра,​ что бы я​ + r.Row -​
​ в макросе -​ должна быть на​(#Н/Д) или​ продуктов, и имена​

​ функцию​ вариантов формул, применительно​

​ формул поиска, Excel​​ которые находятся слева​для аргумента​ ячеек, в котором​
​ находятся слева​
​ выделите их и​Ссылка​
​Если указать в качестве​ то этот подход​
​ мог использовать его​
​ 1​

​ поиск или перебор​​ другом листе -​#VALUE!​ покупателей в таблице​

​ПОИСКПОЗ​​ к таблице из​
​ будет работать значительно​

​ покажет эту возможность​row_num​ происходит поиск.​Вычисления при помощи ИНДЕКС​ нажмите клавишу F2,​    — обязательный аргумент. Ссылка​ аргумента «номер_строки» или​ и остальные, приведенные​ в макросе.​End Function​ в цикле For​

​ иначе циклическая ссылка.​(#ЗНАЧ!). Если Вы​ на листе​, которая будет возвращать​ предыдущего примера:​ быстрее, при использовании​ в действии.​(номер_строки), который указывает​match_type​
​ и ПОИСКПОЗ​

​ а затем — клавишу​​ на один или​ «номер_столбца» значение 0​ ниже, работать не​webley​в случае если:​ Each.​
​2. Для поиска​ хотите заменить такое​Lookup table​ номер столбца.​1.​ПОИСКПОЗ​
​2. Безопасное добавление или​ из какой строки​(тип_сопоставления) – этот​

​Поиск по известным строке​​ ВВОД. При необходимости​

​ несколько диапазонов ячеек.​​ (ноль), функция ИНДЕКС​ будут. Чтобы разрешить​: Первый способ из​- лист пустой;​но всё равно,​ по всему листу​ сообщение на что-то​
​расположены в произвольном​=INDEX(Ваша таблица,(MATCH(значение для вертикального​MAX​и​

​ удаление столбцов.​​ нужно возвратить значение.​ аргумент сообщает функции​ и столбцу​ измените ширину столбцов,​

​Если в качестве аргумента​​ возвратит массив значений​ нумерацию строк с​ 3-х — это​- занята одна​ как Вам уже​

​ поставте комп по-мощнее;​

​ более понятное, то​​ порядке.​
​ поиска,столбец, в котором​(МАКС). Формула находит​

​ИНДЕКС​

​Формулы с функцией​ Т.е. получается простая​ПОИСКПОЗ​

​Поиск по нескольким критериям​​ чтобы видеть все​ «ссылка» используется несмежный​

​ для целого столбца​

​ использованием клавиши​ и есть номер​ ячейка;​ сказали, циклических ссылок​ 64 бит операционку​ можете вставить формулу​Вот такая формула​ искать,0)),(MATCH(значение для горизонтального​
​ максимум в столбце​вместо​

​ВПР​​ формула:​, хотите ли Вы​ИНДЕКС и ПОИСКПОЗ в​
​ данные.​ диапазон, его необходимо​
​ или целой строки​CTRL​ строки:​- Usedrange не​ создавать не нужно.​ и 8 гигов​ с​
​ИНДЕКС​ поиска,строка в которой​D​ВПР​

​перестают работать или​=INDEX($D$2:$D$10,3)​ найти точное или​
​ сочетании с ЕСЛИОШИБКА​

​Фрукты​ заключить в скобки​ соответственно. Чтобы использовать​

​, выделите любую ячейку​​ActiveCell.Row​ начинается с 1​

​то есть можно​​ памяти…​ИНДЕКС​
​/​ искать,0))​и возвращает значение​

​. В целом, такая​ возвращают ошибочные значения,​

​=ИНДЕКС($D$2:$D$10;3)​​ приблизительное совпадение:​Так как задача этого​

​Цена​
​Если каждая область в​ значения, возвращенные как​ с заголовком фильтра​
​Hugo​
​ строки.​ искать по всему​

​Вывод — в​и​ПОИСКПОЗ​=ИНДЕКС(Ваша таблица,(MATCH(значение для вертикального​
​ из столбца​ замена увеличивает скорость​ если удалить или​Формула говорит примерно следующее:​1​ учебника – показать​Количество​ ссылке содержит только​

​ массив, введите функцию​

​ и дважды нажмите​​: Что-то мне кажется,​Чтобы ф-я пересчитывалась​ листу (если очень​
​ этом случае макрос​

​ПОИСКПОЗ​​решает задачу:​ поиска,столбец, в котором​C​ работы Excel на​
​ добавить столбец в​ ищи в ячейках​

​или​​ возможности функций​Яблоки​
​ одну строку или​ ИНДЕКС как формула​CTRL+SHIFT+L​ что человеку не​ при изменении на​ надо), но с​ незаменим.​в функцию​
​{=INDEX(‘Lookup table’!$A$2:$C$13,MATCH(1,(A2=’Lookup table’!$A$2:$A$13)*​ искать,0)),(MATCH(значение для горизонтального​той же строки:​13%​
​ таблицу поиска. Для​ от​не указан​ИНДЕКС​0,69 ₽​

​ один столбец, аргумент​​ массива в горизонтальный​

​(сбросьте фильтр).​​ активную ячейку надо​ листе, надо добавить​
​ другого листа.​Казанский​ЕСЛИОШИБКА​

​(B2=’Lookup table’!$B$2:$B$13),0),3)}​ поиска,строка в которой​=INDEX($C$2:$C$10,MATCH(MAX($D$2:I$10),$D$2:D$10,0))​.​
​ функции​D2​
​– находит максимальное​и​40​

​ «номер_строки» или «номер_столбца»​

​ диапазон ячеек для​​Если начало последовательности уже​ знать, а найденную​
​Application.Volatile​

​vikttur​​: =ПОИСКПОЗ(«*»;A:A;)​
​.​
​{=ИНДЕКС(‘Lookup table’!$A$2:$C$13;ПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13)*​ искать,0))​=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МАКС($D$2:I$10);$D$2:D$10;0))​Влияние​

​ВПР​до​ значение, меньшее или​
​ПОИСКПОЗ​Бананы​
​ соответственно является необязательным.​
​ строки и в​ задано (т.е. задан​
​ кодом. Т.е. сперва​kim​
​: =ПОИСКПОЗ(;—ЕПУСТО(A1:A100);)​vikttur​
​Синтаксис функции​
​(B2=’Lookup table’!$B$2:$B$13);0);3)}​
​Обратите внимание, что для​
​Результат: Beijing​
​ВПР​

​любой вставленный или​
​D10​ равное искомому. Просматриваемый​

​для реализации вертикального​​0,34 ₽​ Например, для ссылки​

​ вертикальный — для столбца.​ первый элемент и​
​ типа​: А макрофункции чего​Казанский​

​: Вы заставляете Excel​ЕСЛИОШИБКА​Эта формула сложнее других,​ двумерного поиска нужно​2.​

​на производительность Excel​​ удалённый столбец изменит​
​и извлеки значение​ массив должен быть​ поиска в Excel,​38​ на единственную строку​ Чтобы ввести формулу​
​ шаг последовательности), то​Set rgX =​
​ никто не предложил?​: Ну вот, пришел​ создавать массив из​

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

​ мы не будем​

​Лимоны​​ нужно использовать формулу​ массива, нажмите сочетание​
​ пронумеровать строки можно​ Cells.Find(What:=curRec, LookIn:=xlValues, LookAt:=xlWhole,​

​ :)​ Формулист :)​ (хорошо еще, если​
​IFERROR(value,value_if_error)​ ранее, но вооруженные​ в аргументе​(МИН). Формула находит​
​ рабочая книга содержит​ синтаксис​
​ то есть из​ то есть от​
​ задерживаться на их​0,55 ₽​ ИНДЕКС(ссылка,,номер_столбца).​
​ клавиш CTRL+SHIFT+ВВОД.​
​ следующим образом :​
​ MatchCase:=False)​
​На листе единственная​В данном случае​ Excel-2003) 65536*256 значений,​
​ЕСЛИОШИБКА(значение;значение_если_ошибка)​ знанием функций​array​
​ минимум в столбце​ сотни сложных формул​
​ВПР​ ячейки​
​ меньшего к большему.​
​ синтаксисе и применении.​
​15​Номер_строки​Примечание:​
​пусть в ячейке​
​и далее использовать​
​ заполненная ячейка -​ один минус лишний:​ вот он и​
​Где аргумент​

​ИНДЕКС​
​(массив) функции​
​D​ массива, таких как​
​требует указывать весь​D4​0​

​Приведём здесь необходимый минимум​Апельсины​    — обязательный аргумент. Номер​
​  В Excel Web​

​А2​​rgX.Row или rgX.Column​ G18, формула в​ =ПОИСКПОЗ(;-ЕПУСТО(A:A);)​
​ возмущается. И правильно​value​и​INDEX​и возвращает значение​ВПР+СУММ​ диапазон и конкретный​, так как счёт​– находит первое​ для понимания сути,​0,25 ₽​ строки в диапазоне,​ App невозможно создавать​введено значение 1,​ или даже rgX.Address​

​ ней возвращает свое​​> Вероятно, что​ делает :)​(значение) – это​ПОИСКПОЗ​(ИНДЕКС).​ из столбца​. Дело в том,​ номер столбца, из​

planetaexcel.ru

Как автоматически менять номер строки в формуле с заданным интервалом?

​ начинается со второй​​ значение, равное искомому.​ а затем разберём​25​ заданном аргументом «ссылка»,​ формулы массива.​ а в ячейке​Чтоб вообще лишний​ же местоположение по​ то, что хочется​Задайте диапазон ячеек.​
​ значение, проверяемое на​Вы одолеете ее.​А теперь давайте испытаем​C​ что проверка каждого​ которого нужно извлечь​ строки.​ Для комбинации​ подробно примеры формул,​Груши​ из которого требуется​Аргументы «номер_строки» и «номер_столбца»​
​А3​ раз без Select/Activate…​ строкам. По идее,​
​ формулами сделать не​ И такой, чтобы​

​ предмет наличия ошибки​​ Самая сложная часть​ этот шаблон на​той же строки:​ значения в массиве​ данные.​Вот такой результат получится​ИНДЕКС​ которые показывают преимущества​0,59 ₽​ возвратить ссылку.​ должны указывать на​значение 2;​I1POKE3​ если заполнять данные​ удастся.. :(​ формула в него​ (в нашем случае​
​ – это функция​ практике. Ниже Вы​=INDEX($C$2:$C$10,MATCH(MIN($D$2:I$10),$D$2:D$10,0))​ требует отдельного вызова​;)​Например, если у Вас​ в Excel:​/​

​ использования​​40​

​Номер_столбца​​ ячейку внутри заданного​
​выделяем ячейки​

​: Всем спасибо.​​ выше ее -​

​Ну почему же​​ не попадала (зацикливание).​ – результат формулы​ПОИСКПОЗ​ видите список самых​=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МИН($D$2:I$10);$D$2:D$10;0))​
​ функции​

planetaexcel.ru

Как узнать номер строки?

​ есть таблица​​Важно! Количество строк и​ПОИСКПОЗ​ИНДЕКС​
​Миндаль​

​    — необязательный аргумент. Номер​​ массива; в противном​A2A3​

​Вариантов предостаточно.​​ она должна возвращать​ :)​
​ikki​ИНДЕКС​, думаю, её нужно​ населённых стран мира.​Результат: Lima​ВПР​
​A1:C10​ столбцов в массиве,​всегда нужно точное​и​
​2,80 ₽​ столбца в диапазоне,​ случае функция ИНДЕКС​;​Пойду пробовать, уверен,​ номер первой строки,​Вот функция для​: только для строк.​/​ объяснить первой.​

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

​ПОИСКПОЗ​​10​ заданном аргументом «ссылка»,​ возвратит значение ошибки​беремся за правый нижний​ что все получится.​ в которой есть​
​ первых 999 строк​ числа, даты и​ПОИСКПОЗ​

​MATCH(1,(A2=’Lookup table’!$A$2:$A$13),0)*(B2=’Lookup table’!$B$2:$B$13)​
​ узнать население США​AVERAGE​

​ значений содержит массив​ данные из столбца​

​INDEX​​ аргумент функции​
​вместо​
​Кешью​ из которого требуется​

planetaexcel.ru

​ #ССЫЛКА!.​

На чтение 7 мин. Просмотров 29.8k.

Содержание

  1. Получить первое не пустое значение в списке
  2. Получить первое текстовое значение в списке
  3. Получить первое текстовое значение с ГПР
  4. Получить позицию последнего совпадения
  5. Получить последнее совпадение содержимого ячейки
  6. Получить n-е совпадение
  7. Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ
  8. Получить n-ое совпадение с ВПР
  9. Если ячейка содержит одну из многих вещей
  10. Поиск первой ошибки
  11. Поиск следующего наибольшего значения
  12. Несколько совпадений в списке, разделенных запятой
  13. Частичное совпадение чисел с шаблоном
  14. Частичное совпадение с ВПР
  15. Положение первого частичного совпадения

Получить первое не пустое значение в списке

{ = ИНДЕКС( диапазон ; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( диапазон ); 0 )) }

Получить первое не пустое значение в списке

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

В данном примере мы используем эту формулу:

{ = ИНДЕКС( B3: B11; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( B3: B11 ); 0 )) }

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

Таким образом, нам нужно строить функциональные возможности для нужных нам формул. Способ сделать это состоит в использовании функции массива, которая «тестирует» ячейки и возвращает массив истина/ложь значения, которые мы можем сопрягать с ПОИСКПОЗ.

Работая изнутри, ЕПУСТО оценивает ячейки в диапазоне В3: В11 и возвращает результат и массив, который выглядит следующим образом:

{ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА}

Каждая ЛОЖЬ представляет собой ячейку в диапазоне, который не является пустой.

Далее, ПОИСКПОЗ ищет ЛОЖЬ внутри массива и возвращает позицию первого наденного совпадения, в этом случае 2. На данный момент, формула в примере теперь выглядит следующим образом:

{ = ИНДЕКС( B3: B11; 2; 0 )) }

И, наконец, функция ИНДЕКС выводит значение в положении 2 в массиве, в этом случае число 10.

Получить первое текстовое значение в списке

= ВПР ( «*»; диапазон; 1; ЛОЖЬ)

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

Получить первое текстовое значение в списке

В данном примере формула в D7 является:

= ВПР ( «*» ; B5: B11 ; 1 ; ЛОЖЬ)

Групповой символ звездочка (*) соответствует любому текстовому значению.

Получить первое текстовое значение с ГПР

= ГПР ( «*»; диапазон; 1; ЛОЖЬ)

Получить первое текстовое значение с ГПР

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

= ГПР ( «*»; С5: Е5; 1; 0 )

Значение поиска является «*», групповым символом, который соответствует одному или более текстовому значению.

Получить позицию последнего совпадения

{ = МАКС( ЕСЛИ ( Величины = знач ; СТРОКА(величина) — СТРОКА(ИНДЕКС( Величины; 1 ; 1 )) + 1 )) }

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

Получить позицию последнего совпадения

В примере формула в G6:

=МАКС(ЕСЛИ(B4:B11=G5;СТРОКА(B4:B11)-СТРОКА(ИНДЕКС(B4:B11;1;1))+1))

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

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

= ПРОСМОТР( 2 ; 1 / ПОИСК ( вещи ; А1 ); вещи )

Чтобы проверить ячейку для одной из нескольких вещей, и вернуть последнее совпадение, найденное в списке, вы можете использовать формулу, основанную на ПРОСМОТР и ПОИСК функций. В случае нескольких найденных совпадений, формула вернет последнее совпадение из списка «вещей».

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

В примере формула в С5:

=ПРОСМОТР(2;1/ПОИСК($E$4:$E$7;B4);$E$4:$E$7)

Получить n-е совпадение

= НАИМЕНЬШИЙ( ЕСЛИ( логический тест; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); n )

Для того, чтобы получить позицию n-го совпадения (например, второе значение соответствия заданному, третье значение соответствия и т.д.), вы можете использовать формулу, основанную на функции НАИМЕНЬШИЙ.

= НАИМЕНЬШИЙ( ЕСЛИ( список = E5 ; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); F5 )

Эта формула возвращает позицию второго появления «красных» в списке.

Сутью этой формулы является функция НАИМЕНЬШИЙ, которая просто возвращает n-е наименьшее значение в списке значений, которое соответствует номеру строки. Номера строк были «отфильтрованы» функцией ЕСЛИ, которая применяет логику для совпадения.

Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ

{ = ИНДЕКС( массив; НАИМЕНЬШИЙ( ЕСЛИ( величины = знач ; СТРОКА ( величины ) — СТРОКА ( ИНДЕКС( величины; 1 ; 1 )) + 1 ); n-й )) }

Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ

Чтобы получить n-ое совпадение, используя ИНДЕКС и ПОИСКПОЗ, вы можете использовать формулу массива с функциями ЕСЛИ и НАИМЕНЬШИЙ, чтобы выяснить номер строки совпадения.

Получить n-ое совпадение с ВПР

= ВПР( id_формулы; стол; 4; 0 )

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

Получить n-ое совпадение с ВПР

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

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

=ВПР(J3&»-«&I6;B4:G11;4;0)

Если ячейка содержит одну из многих вещей

{ = ИНДЕКС( результаты ;ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК( вещи ; A1 )); 0 )) }

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

{ = ИНДЕКС( результаты ; ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК ( вещи ; B5 )); 0 )) }

Эта формула использует два названных диапазона: E5: E8 называется «вещи» и F5: F8 называется «Результаты». Убедитесь, что вы используете диапазоны имен с одинаковыми именами (на основе ваших данных). Если вы не хотите использовать именованные диапазоны, используйте абсолютные ссылки вместо этого.

Поиск первой ошибки

{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА(диап ); 0 ) }

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

Поиск первой ошибки

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

{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА( B4: B11 ); 0 ) }

Работая изнутри, функция ЕОШИБКА возвращает значение ИСТИНА, если значение является признанной ошибкой, и ЛОЖЬ, если нет.

Когда дается диапазон ячеек (массив ячеек) функция ЕОШИБКА будет возвращать массив истина/ложь значений. В примере, это результирующий массив выглядит следующим образом:

{ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ}

Обратите внимание, что 6-е значение (что соответствует 6-й ячейке в диапазоне) истинно, так как ячейка В9 содержит #Н/A.

Поиск следующего наибольшего значения

=ИНДЕКС ( данные; ПОИСКПОЗ( поиск ; значения ) + 1 )

Поиск следующего наибольшего значения

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

=ИНДЕКС(C5:C9;ПОИСКПОЗ(F4;B5:B9)+1)

Несколько совпадений в списке, разделенных запятой

{ = ОБЪЕДИНИТЬ ( «;» ; ИСТИНА ; ЕСЛИ( диапазон1 = E5 ; диапазон2 ; «» )) }

Для поиска и извлечения нескольких совпадений, разделенных запятыми (в одной ячейке), вы можете использовать функцию ЕСЛИ с функцией ОБЪЕДИНИТЬ.

{ = ОБЪЕДИНИТЬ( «;» ; ИСТИНА ; ЕСЛИ( группа = E5 ; имя ; «» )) }

Эта формула использует «имя» — именованный диапазон (B5: B11) и «группа» — (C5: C11).

Частичное совпадение чисел с шаблоном

{ = ПОИСКПОЗ( «*» & номер & «*» ; ТЕКСТ( диапазон ; «0» ); 0 ) }

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

Частичное совпадение чисел с шаблоном

Excel поддерживает символы подстановки «*» и «?». Тем не менее, если вы используете специальные символы с номером, вы будете преобразовывать числовое значение в текстовое значение. Другими словами, «*» & 99 & «*» = «* 99 *» (текстовая строка).

Если попытаться найти текстовое значение в диапазоне чисел, совпадение завершится неудачно.

Решение

Одно из решений заключается в преобразовании чисел в диапазоне поиска для текстовых значений, а затем сделать нормальный поиск с ПОИСКПОЗ, ВПР и т.д.

Другой вариант

Другой способ, чтобы преобразовать числа в текст, чтобы сцепить пустую строку. Эта формула работает так же, как выше формуле:

= ПОИСКПОЗ ( «*» & Е5 & «*» ; В5: В10 & «» ; 0 )

Частичное совпадение с ВПР

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

Частичное совпадение с ВПР

В примере формула ВПР выглядит следующим образом:

=ВПР($H$2&»*»;$B$3:$E$12;2;0)

В этой формуле, значение представляет собой именованный диапазон, который относится к Н2, а также данные , представляет собой именованный диапазон , который относится к B3: E102. Без названных диапазонов, формула может быть записана следующим образом:

Положение первого частичного совпадения

= ПОИСКПОЗ ( «* текст *» ; диапазон; 0 )

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

Положение первого частичного совпадения

В примере формула в Е7:

=ПОИСКПОЗ(«*»&E6&»*»;B5:B10;0)

Функция ПОИСКПОЗ возвращает позицию или «индекс» в первом совпадении на основании значения поиска в диапазоне.

ПОИСКПОЗ поддерживает подстановочное согласование со звездочкой «*» (один или несколько символов) или знаком вопроса «?» (один символ), но только тогда, когда третий аргумент, тип_сопоставления, установлен в ЛОЖЬ или ноль.

Автоматическая нумерация строк в Excel: 3 способа

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

Метод 1: нумерация после заполнения первых строк

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

  1. Для начала, создаем новый столбец под нумерацию строк. В первой ячейке (не считая шапки) пишем цифру 1, затем переходим во вторую, в которой вводим цифру 2.
  2. Теперь нужно выделить эти две ячейки, после чего наводим курсор мыши на нижний правый угол выделенной области. Как только указатель изменит свой вид на крестик, зажав левую кнопку мыши тянем его до последней строки столбца.
  3. Отпускаем левую кнопку мыши, и порядковые номера строк сразу же появятся в строках, которые мы охватили при растягивании.

Метод 2: оператор СТРОКА

Данный метод для автоматической нумерации строк предполагает использование фукнции “СТРОКА”.

  1. Встаем в первую ячейку столбца, которой хотим присвоить порядковый номер 1. Затем пишем в ней следующую формулу: =СТРОКА(A1) .
  2. Как только мы щелкнем Enter, в выбранной ячейке появится порядковый номер. Осталось, аналогично первому методу, растянуть формулу на нижние строки. Но теперь нужно навести курсор мыши на нижний правый угол ячейки с формулой.
  3. Все готово, мы автоматически пронумеровали все строки таблицы, что и требовалось.

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

  1. Также выделяем первую ячейку столбца, куда хотим вставить номер. Затем щелкаем кнопку “Вставить функцию” (слева от строки формул).
  2. Откроется окно Мастера функций. Кликаем по текущей категории функций и выбираем в открывшемся перечне “Ссылки и массивы”.
  3. Теперь из списка предложенных операторов выбираем функцию “СТРОКА”, после чего жмем OK.
  4. На экране появится окно с аргументами функции для заполнения. Кликаем по области ввода информации для параметра “Строка” и указываем адрес первой ячейки столбца, которой хотим присвоить номер. Адрес можно прописать вручную или просто кликнуть мышью по нужной ячейке. Далее кликаем OK.
  5. Нумер строки вставлен в выбранную ячейку. Как растянуть нумерацию на остальные строки мы рассмотрели выше.

Метод 3: применение прогрессии

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

  1. Указываем в первой ячейки столбца ее порядковый номер, равный цифре 1.
  2. Переключаемся во вкладку “Главная”, нажимаем кнопку “Заполнить” (раздел “Редактирование”) и в раскрывшемся перечне щелкаем по опции “Прогрессия…”.
  3. Перед нами появится окно с параметрами прогрессии, которые нужно настроить, после чего нажимаем OK.
    • выбираем расположение “по столбцам”;
    • тип указываем “арифметический”;
    • в значении шага пишем цифру “1”;
    • в поле “Предельное значение” указываем количество строк таблицы, которые нужно пронумеровать.
  4. Автоматическая нумерация строк выполнена, и мы получили требуемый результат.

Данный метод можно реализовать по-другому.

  1. Повторяем первый шаг, т.е. в первой ячейке столбца пишем цифру 1.
  2. Выделяем диапазон, включающий все ячейки, в которые мы хотим вставить номера.
  3. Снова открываем окно “Прогрессии”. Параметры автоматически выставлены согласно выделенному нами диапазону, поэтому нам остается только щелкнуть OK.
  4. И снова, благодаря этим несложным действиям мы получаем нумерацию строк в выбранном диапазоне.

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

Заключение

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

5 интересных способов как происходит нумерация строк в Excel

Добрый день уважаемый друг!

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

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

  1. Это когда вы вручную долго и муторно набираете, надо в каждую ячейку вбивать нужную вам циферку списка, если вы хотите использовать данный способ делайте в том случае когда в списке не более 10 пунктов;
  1. Этот способ заключается в простой протяжке ячейки, так производится автоматическая нумерация. Хорошо конечно, но когда вам прийдется вставлять дополнительные строки, нумерацию вам прийдется снова перетягивать на весь диапазон, аналогично созданию пользовательского списка. Всю процедуру протягивания необходимо производить при зажатой кнопке Ctrl;
  1. Третьим вариантом будет нумерация с помощью формулы «=А4+1», эта простая формула берет вышестоящее значение и прибавляет к нему 1. Как итог, получаем пронумерованный список любой длины всего за несколько секунд. Даже когда вам нужно добавить пару строк в диапазон списка, то простая протяжка формулы на месте вставки и всё прекрасно работает и радует глаз;
  2. Можно усовершенствовать формулу сделав так что вертикальная нумерация строк привязалась к горизонтальной и тогда ссылка станет абсолютной. Горизонтальную нумерацию делаем при помощи функции СТОЛБЕЦ, а вертикальную при помощи функции СТРОКА, в итоге формула списка приобретёт следующий вида: =СТРОКА() -СТРОКА($A$4);
  3. Ну и на закусочку можно поговорить о том как получается интеллектуальная нумерация. Для этого используем формулу следующего вида: =ЕСЛИ(ЕПУСТО(B4);»»;СЧЁТЗ($B$4:B4)). С формулы вы видите что логическая функция ЕСЛИ проверяет пустой или заполненный список. При пустом значении ячейка не заполняется, а вот при заполненной, функция СЧЁТЗ возвращает значение +1, увеличивая тем самым номер списка. Огромным преимуществом становится то, что при делении значения список сам перестраивается игнорируя пустые поля и у вас получается автоматическая нумерация в Excel.

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

Скачать пример можно здесь.

Не забудьте поблагодарить автора!

Деньгам по-пустому лежать не надлежит.
Александр Васильевич Суворов

Нумерация строк по условию в excel

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

Функция ВПР

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

Синтаксис: =ВПР(ключ; диапазон; номер_столбца; [интервальный_просмотр]), где

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

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

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

Для цены необходимо использовать функцию ВПР с точным совпадением (интервальный просмотр ЛОЖЬ), так как данный параметр определен для всех товаров и не предусматривает использование цены другого товара, если вдруг она по случайности еще не определена.

Для определения расположения товара используется ВПР с приблизительным совпадением (интервальный просмотр ИСТИНА), так как распределение товара осуществляется по категориям. Из-за того, что наименование товара состоит из названия категории плюс дополнительный текст, по условиям сортировки от А до Я наименования товаров будут идти сразу после наименования категории, поэтому когда в таблице не обнаруживается совпадений с ключом подтягивается первое значение сверху.

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

Он подобного эффекта можно избавиться путем определения категории из наименования товара используя текстовые функции ЛЕВСИМВ(C11;ПОИСК(» «;C11)-1), которые вернут все символы до первого пробела, а также изменить интервальный просмотр на точный.

Помимо всего описанного, функция ВПР позволяет применять для текстовых значений подстановочные символы – * (звездочка – любое количество любых символов) и ? (один любой символ). Например, для искомого значения «*» & «иван» & «*» могут подойти строки Иван, Иванов, диван и т.д.

Также данная функция может искать значения в массивах – =ВПР(1;<2;»Два»:1;»Один»>;2;ЛОЖЬ) – результат выполнения строка «Два».

Функция ГПР

Горизонтальное первое равенство. Ищет совпадение по ключу в первой строке определенного диапазона и возвращает значение из указанной строки этого диапазона в совпавшем с ключом столбце.

Синтаксис: =ГПР(ключ; диапазон; номер_строки; [интервальный_просмотр]).

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

Функция СТРОКА

Определяет и возвращает номер строки указанной ссылкой ячейки.

Синтаксис: =СТРОКА([ссылка]), где аргумент «ссылка» не является обязательным. Если он опущен, но возвращается номер текущей строки.

=СТРОКА(D4) – результат 4.
=СТРОКА() – функция вернет номер строки, в которой она расположена.

Функция СТОЛБЕЦ

Возвращает номер столбца ячейки, указанной ссылкой.

Синтаксис: =СТОЛБЕЦ([ссылка]), где «ссылка» не обязательный аргумент. По умолчанию возвращается номер текущего столбца.

=СТОЛБЕЦ(C4) – формула вернет значение 3.
=СТОЛБЕЦ() – функция возвращает номер столбца, в котором расположена.

Функция АДРЕС

Возвращает текст, представляющий адрес ячейки, заданной номерами строки и столбца.

Синтаксис: =АДРЕС(строка; столбец; [тип_закрепления]; [стиль_ссылки]; [имя_листа]), где:

  • Строка – обязательный аргумент. Число, представляющая номер строки, для которой необходимо вернуть адрес;
  • Столбец – обязательный аргумент. Число, представляющее номер столбца целевой ячейки.
  • тип_закрепления – необязательный аргумент. Число от 1 до 4, обозначающее закрепление индексов ссылки:
    • 1 – значение по умолчанию, когда закреплены все индексы;
    • 2 – закрепление индекса строки;
    • 3 – закрепление индекса столбца;
    • 4 – адрес без закреплений.
  • стиль_ссылки – необязательный аргумент. Логическое значение:
    • ИСТИНА – формат ссылок «A1»;
    • ЛОЖЬ – формат ссылок «R1C1».
  • имя_листа – необязательный аргумент. Строка, представляющая имя листа, который необходимо добавить к тексту адреса ячейки.

=АДРЕС(1;1) – возвращает $A$1.
=АДРЕС(1;1;4) – возвращает A1.
=АДРЕС(1;1;4;ЛОЖЬ) – результат R[1]C[1].
=АДРЕС(1;1;4;ЛОЖЬ;»Лист1″) – результат выполнения функции Лист1!R[1]C[1].

Функция ДВССЫЛ

Преобразует адрес ссылки, заданный текстовой строкой, в ссылку на данный адрес.

Синтаксис: =ДВССЫЛ(адрес_ссылки; [стиль_ссылки]), где

  • адрес_ссылки – обязательный аргумент. Строка, представляющая адрес ссылки на ячейку или диапазон. Например, «C3», «R3C3» или «D8:D9».
  • стиль_ссылки – необязательный аргумент. Логическое значение, определяющее стиль ссылки:
    • ИСТИНА – стиль A1. Является значением по умолчанию;
    • ЛОЖЬ – стиль R1C1.

=ДВССЫЛ(«a3») – возвращает ссылку на ячейку A3.
=ДВССЫЛ(«r3c3») – вернет ошибку #ССЫЛКА!, так как текст для ссылки в формате R1C1, а второй аргумент имеет значение по умолчанию.
=ДВССЫЛ(«r3c3»; ЛОЖЬ) – возвращает ссылку на ячейку C3.
=ДВССЫЛ(АДРЕС(СТРОКА(C3);СТОЛБЕЦ(C3))) – функция вернет аналогичный предыдущему примеру результат.
Вложение функции ДВССЫЛ со ссылкой на диапазон:

Функция ЧСТРОК

Возвращает число строк в указанном диапазоне или массиве.

Синтаксис: =ЧСТРОК(ссылка), где «ссылка» обязательный аргумент, являющийся ссылкой на ячейку, диапазон либо массив.

Пример использования:
=ЧСТРОК(D1:D8) – функция возвращает результат 8.
=ЧСТРОК(<1:2:3:4:5>) – функция определят, что в массиве 5 строк.

Функция ЧИСЛСТОЛБ

Возвращает число столбцов в указанном диапазоне или массиве.
Синтаксис: =ЧИСЛСТОЛБ(ссылка), где «ссылка» обязательный аргумент, являющийся ссылкой на ячейку, диапазон либо массив.
Пример использования:
=ЧИСЛСТОЛБ(A5:D5) – результат функции 4.
=ЧИСЛСТОЛБ(<1;2;3;4;5>) – функция определят, что в массиве 5 столбцов.

Функция СМЕЩ

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

Синтаксис: =СМЕЩ(ссылка; смещ_по_строкам; смещ_по_столбцам; [высота]; [ширина]), где

    ссылка – обязательный аргумент.

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

  • смещ_по_строкам – обязательный аргумент. Отрицательное либо положительное число, указывающее, на какое количество строк необходимо сместить диапазон.
  • смещ_по_столбцам – обязательный аргумент. Отрицательное либо положительное число, указывающее, на какое количество столбцов необходимо сместить диапазон.
  • высота – необязательный аргумент. Натуральное число (кроме нуля), определяющее количество строк в новом (смещенном) диапазоне.
  • ширина – необязательный аргумент. Натуральное число (кроме нуля), определяющее количество столбцов в новом диапазоне.
  • Если в результате смещения диапазон стал выходить на пределы листа, то функция возвращает ошибку #ССЫЛКА!.

    Для примера будем использовать вложение функции СМЕЩ в функцию СУММ.
    Изначально ссылаемся на диапазон из 10 строк и 1 столбца, где все ячейки имеют значение 2. Таким образом получает результат выполнения формулы – 20.

    Теперь сместим диапазон на один столбец влево, т.е. на -1.

    Снова изменим ссылку, а именно расширим до 4 столбцов. После этого возвращаемая ссылка станет A3:D12. Результат на изображении.

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

    Возвращает позицию элемента, заданного по значению, в диапазоне либо массиве.

    Синтаксис: =ПОИСКПОЗ(искомое_значение; массив; [тип_сопоставления]), где:

    • искомое_значение – обязательный аргумент. Значение элемента, который необходимо найти в массиве.
    • Массив – обязательный аргумент. Одномерный диапазон либо массив для поиска элемента.
    • тип_сопоставления – необязательный аргумент. Число 1, 0 или -1, определяющее способ поиска элемента:
      • 1 – значение по умолчанию. Если совпадений не найдено, то возвращается позиция ближайшего меньшего по значению к искомому элементу. Массив или диапазон должен быть отсортирован от меньшего к большему или от А до Я.
      • 0 – функция ищет точное совпадение. Если не найдено, то возвращается ошибка #Н/Д.
      • -1 – Если совпадений не найдено, то возвращается позиция ближайшего большего по значению к искомому элементу. Массив или диапазон должен быть отсортирован по убыванию.

    Пример использования:
    =ПОИСКПОЗ(«Г»; <«а»;»б»;»в»;»г»;»д»>) – функция возвращает результат 4.

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

    При этом регистр не учитывается.
    =ПОИСКПОЗ(«е»; <«а»;»б»;»в»;»г»;»д»>; 1) – результат 5, т.к. элемента не найдено, поэтому возвращается ближайший меньший по значению элемент. Элементы массива записаны по возрастанию.
    =ПОИСКПОЗ(«е»; <«а»;»б»;»в»;»г»;»д»>; 0) – возвращается ошибка, т.к. элемент не найден, а тип сопоставления указан на точное совпадение.
    =ПОИСКПОЗ(«в»; <«д»;»г»;»в»;»б»;»а»>; -1) – результат 3.
    =ПОИСКПОЗ(«д»; <«а»;»б»;»в»;»г»;»д»>; -1) – элемент не найден, хотя присутствует в массиве. Функция возвращает неверный результат, так как последний аргумент принимает значение -1, а элементы НЕ расположены по убыванию.

    Для текстовых значений функция допускает использование подстановочных символов «*» и «?».

    Если материалы office-menu.ru Вам помогли, то поддержите, пожалуйста, проект, чтобы мы могли развивать его дальше.

    У Вас недостаточно прав для комментирования.

    Нумерация строк в EXCEL

    Используем различные подходы для нумерации строк.

    Используем формулы

    Пусть в ячейке A2 введено значение 1 (номер первой строки). В следующую строку таблицы, в ячейку А3 , вводим формулу =А2+1 и копируем ее в ячейки ниже.

    Так как в формуле мы сослались на ячейку выше с помощью относительной ссылки , то EXCEL при копировании вниз модифицирует вышеуказанную формулу в =А3+1 , затем в =А4+1 и т.д., тем самым формируя числовую последовательность 2, 3, 4, .

    Другим вариантом является использование формулы =СТРОКА()-СТРОКА($A$1) . В ячейке А1 должен находиться заголовок столбца.

    Для чрезстрочной нумерации используйте формулу (см. файл примера ) =ЕСЛИ(ЕЧЁТН(СТРОКА());»»;A7+1)

    Используем клавишу CTRL

    Пусть, как и в предыдущем примере, в ячейку A2 введено значение 1 . Выделим ячейку A2 . Удерживая клавишу CTRL , скопируем Маркером заполнения (при этом над курсором появится маленький плюсик), значение из A 2 в ячейки ниже. Получим последовательность чисел 1, 2, 3, 4 …

    ВНИМАНИЕ! Если на листе часть строк скрыта с помощью фильтра , то этот подход и остальные, приведенные ниже, работать не будут. Чтобы разрешить нумерацию строк с использованием клавиши CTRL , выделите любую ячейку с заголовком фильтра и дважды нажмите CTRL + SHIFT + L (сбросьте фильтр).

    Используем начало последовательности

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

    • пусть в ячейке А2 введено значение 1 , а в ячейке А3 значение 2 ;
    • выделяем ячейки A2 и A3 ;
    • беремся за правый нижний угол и Маркером заполнения протягиваем вниз.

    Получаем результат как в предыдущем случае. Если в ячейке А3 введено значение 3 , т.е. задан шаг последовательности равный 2, то мы получим последовательность нечетных чисел.

    Использование инструмента Прогрессия

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

    • вводим в ячейку А2 значение 1 ;
    • выделяем диапазон A2:А6 , в котором будут содержаться номера строк;
    • вызываем инструмент Прогрессия ( Главная/ Редактирование/ Заполнить/ Прогрессия. ), в появившемся окне нажимаем ОК.

    Нумерация строк по условию в excel

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

    Функция ВПР

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

    Синтаксис: =ВПР(ключ; диапазон; номер_столбца; [интервальный_просмотр]), где

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

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

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

    Для цены необходимо использовать функцию ВПР с точным совпадением (интервальный просмотр ЛОЖЬ), так как данный параметр определен для всех товаров и не предусматривает использование цены другого товара, если вдруг она по случайности еще не определена.

    Для определения расположения товара используется ВПР с приблизительным совпадением (интервальный просмотр ИСТИНА), так как распределение товара осуществляется по категориям. Из-за того, что наименование товара состоит из названия категории плюс дополнительный текст, по условиям сортировки от А до Я наименования товаров будут идти сразу после наименования категории, поэтому когда в таблице не обнаруживается совпадений с ключом подтягивается первое значение сверху.

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

    Он подобного эффекта можно избавиться путем определения категории из наименования товара используя текстовые функции ЛЕВСИМВ(C11;ПОИСК(» «;C11)-1), которые вернут все символы до первого пробела, а также изменить интервальный просмотр на точный.

    Помимо всего описанного, функция ВПР позволяет применять для текстовых значений подстановочные символы – * (звездочка – любое количество любых символов) и ? (один любой символ). Например, для искомого значения «*» & «иван» & «*» могут подойти строки Иван, Иванов, диван и т.д.

    Также данная функция может искать значения в массивах – =ВПР(1;<2;»Два»:1;»Один»>;2;ЛОЖЬ) – результат выполнения строка «Два».

    Функция ГПР

    Горизонтальное первое равенство. Ищет совпадение по ключу в первой строке определенного диапазона и возвращает значение из указанной строки этого диапазона в совпавшем с ключом столбце.

    Синтаксис: =ГПР(ключ; диапазон; номер_строки; [интервальный_просмотр]).

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

    Функция СТРОКА

    Определяет и возвращает номер строки указанной ссылкой ячейки.

    Синтаксис: =СТРОКА([ссылка]), где аргумент «ссылка» не является обязательным. Если он опущен, но возвращается номер текущей строки.

    =СТРОКА(D4) – результат 4.
    =СТРОКА() – функция вернет номер строки, в которой она расположена.

    Функция СТОЛБЕЦ

    Возвращает номер столбца ячейки, указанной ссылкой.

    Синтаксис: =СТОЛБЕЦ([ссылка]), где «ссылка» не обязательный аргумент. По умолчанию возвращается номер текущего столбца.

    =СТОЛБЕЦ(C4) – формула вернет значение 3.
    =СТОЛБЕЦ() – функция возвращает номер столбца, в котором расположена.

    Функция АДРЕС

    Возвращает текст, представляющий адрес ячейки, заданной номерами строки и столбца.

    Синтаксис: =АДРЕС(строка; столбец; [тип_закрепления]; [стиль_ссылки]; [имя_листа]), где:

    • Строка – обязательный аргумент. Число, представляющая номер строки, для которой необходимо вернуть адрес;
    • Столбец – обязательный аргумент. Число, представляющее номер столбца целевой ячейки.
    • тип_закрепления – необязательный аргумент. Число от 1 до 4, обозначающее закрепление индексов ссылки:
      • 1 – значение по умолчанию, когда закреплены все индексы;
      • 2 – закрепление индекса строки;
      • 3 – закрепление индекса столбца;
      • 4 – адрес без закреплений.
    • стиль_ссылки – необязательный аргумент. Логическое значение:
      • ИСТИНА – формат ссылок «A1»;
      • ЛОЖЬ – формат ссылок «R1C1».
    • имя_листа – необязательный аргумент. Строка, представляющая имя листа, который необходимо добавить к тексту адреса ячейки.

    =АДРЕС(1;1) – возвращает $A$1.
    =АДРЕС(1;1;4) – возвращает A1.
    =АДРЕС(1;1;4;ЛОЖЬ) – результат R[1]C[1].
    =АДРЕС(1;1;4;ЛОЖЬ;»Лист1″) – результат выполнения функции Лист1!R[1]C[1].

    Функция ДВССЫЛ

    Преобразует адрес ссылки, заданный текстовой строкой, в ссылку на данный адрес.

    Синтаксис: =ДВССЫЛ(адрес_ссылки; [стиль_ссылки]), где

    • адрес_ссылки – обязательный аргумент. Строка, представляющая адрес ссылки на ячейку или диапазон. Например, «C3», «R3C3» или «D8:D9».
    • стиль_ссылки – необязательный аргумент. Логическое значение, определяющее стиль ссылки:
      • ИСТИНА – стиль A1. Является значением по умолчанию;
      • ЛОЖЬ – стиль R1C1.

    =ДВССЫЛ(«a3») – возвращает ссылку на ячейку A3.
    =ДВССЫЛ(«r3c3») – вернет ошибку #ССЫЛКА!, так как текст для ссылки в формате R1C1, а второй аргумент имеет значение по умолчанию.
    =ДВССЫЛ(«r3c3»; ЛОЖЬ) – возвращает ссылку на ячейку C3.
    =ДВССЫЛ(АДРЕС(СТРОКА(C3);СТОЛБЕЦ(C3))) – функция вернет аналогичный предыдущему примеру результат.
    Вложение функции ДВССЫЛ со ссылкой на диапазон:

    Функция ЧСТРОК

    Возвращает число строк в указанном диапазоне или массиве.

    Синтаксис: =ЧСТРОК(ссылка), где «ссылка» обязательный аргумент, являющийся ссылкой на ячейку, диапазон либо массив.

    Пример использования:
    =ЧСТРОК(D1:D8) – функция возвращает результат 8.
    =ЧСТРОК(<1:2:3:4:5>) – функция определят, что в массиве 5 строк.

    Функция ЧИСЛСТОЛБ

    Возвращает число столбцов в указанном диапазоне или массиве.
    Синтаксис: =ЧИСЛСТОЛБ(ссылка), где «ссылка» обязательный аргумент, являющийся ссылкой на ячейку, диапазон либо массив.
    Пример использования:
    =ЧИСЛСТОЛБ(A5:D5) – результат функции 4.
    =ЧИСЛСТОЛБ(<1;2;3;4;5>) – функция определят, что в массиве 5 столбцов.

    Функция СМЕЩ

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

    Синтаксис: =СМЕЩ(ссылка; смещ_по_строкам; смещ_по_столбцам; [высота]; [ширина]), где

      ссылка – обязательный аргумент.

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

  • смещ_по_строкам – обязательный аргумент. Отрицательное либо положительное число, указывающее, на какое количество строк необходимо сместить диапазон.
  • смещ_по_столбцам – обязательный аргумент. Отрицательное либо положительное число, указывающее, на какое количество столбцов необходимо сместить диапазон.
  • высота – необязательный аргумент. Натуральное число (кроме нуля), определяющее количество строк в новом (смещенном) диапазоне.
  • ширина – необязательный аргумент. Натуральное число (кроме нуля), определяющее количество столбцов в новом диапазоне.
  • Если в результате смещения диапазон стал выходить на пределы листа, то функция возвращает ошибку #ССЫЛКА!.

    Для примера будем использовать вложение функции СМЕЩ в функцию СУММ.
    Изначально ссылаемся на диапазон из 10 строк и 1 столбца, где все ячейки имеют значение 2. Таким образом получает результат выполнения формулы – 20.

    Теперь сместим диапазон на один столбец влево, т.е. на -1.

    Снова изменим ссылку, а именно расширим до 4 столбцов. После этого возвращаемая ссылка станет A3:D12. Результат на изображении.

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

    Возвращает позицию элемента, заданного по значению, в диапазоне либо массиве.

    Синтаксис: =ПОИСКПОЗ(искомое_значение; массив; [тип_сопоставления]), где:

    • искомое_значение – обязательный аргумент. Значение элемента, который необходимо найти в массиве.
    • Массив – обязательный аргумент. Одномерный диапазон либо массив для поиска элемента.
    • тип_сопоставления – необязательный аргумент. Число 1, 0 или -1, определяющее способ поиска элемента:
      • 1 – значение по умолчанию. Если совпадений не найдено, то возвращается позиция ближайшего меньшего по значению к искомому элементу. Массив или диапазон должен быть отсортирован от меньшего к большему или от А до Я.
      • 0 – функция ищет точное совпадение. Если не найдено, то возвращается ошибка #Н/Д.
      • -1 – Если совпадений не найдено, то возвращается позиция ближайшего большего по значению к искомому элементу. Массив или диапазон должен быть отсортирован по убыванию.

    Пример использования:
    =ПОИСКПОЗ(«Г»; <«а»;»б»;»в»;»г»;»д»>) – функция возвращает результат 4.

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

    При этом регистр не учитывается.
    =ПОИСКПОЗ(«е»; <«а»;»б»;»в»;»г»;»д»>; 1) – результат 5, т.к. элемента не найдено, поэтому возвращается ближайший меньший по значению элемент. Элементы массива записаны по возрастанию.
    =ПОИСКПОЗ(«е»; <«а»;»б»;»в»;»г»;»д»>; 0) – возвращается ошибка, т.к. элемент не найден, а тип сопоставления указан на точное совпадение.
    =ПОИСКПОЗ(«в»; <«д»;»г»;»в»;»б»;»а»>; -1) – результат 3.
    =ПОИСКПОЗ(«д»; <«а»;»б»;»в»;»г»;»д»>; -1) – элемент не найден, хотя присутствует в массиве. Функция возвращает неверный результат, так как последний аргумент принимает значение -1, а элементы НЕ расположены по убыванию.

    Для текстовых значений функция допускает использование подстановочных символов «*» и «?».

    Если материалы office-menu.ru Вам помогли, то поддержите, пожалуйста, проект, чтобы мы могли развивать его дальше.

    У Вас недостаточно прав для комментирования.

    Понравилась статья? Поделить с друзьями:
  • Excel пользовательские функции миф
  • Excel получить номер строки в формуле
  • Excel построить несколько графиков на одной диаграмме excel
  • Excel пользовательские формулы vba
  • Excel последняя ячейка блока