Если вы знакомы с функцией ВПР (VLOOKUP) или ее горизонтальным аналогом ГПР (HLOOKUP), то должны помнить, что эта замечательные функции ищут информацию только по одному параметру, т.е. в одномерном массиве — по строке или по столбцу. А если нам необходимо выбирать данные из двумерной таблицы по совпадению сразу двух параметров — и по строке и по столбцу одновременно? Давайте рассмотрим несколько жизненных примеров таких задач и их решения.
Пример 1. Найти значение по товару и городу
Предположим, что у нас имеется вот такой двумерный массив данных по городам и товарам:
Пользователь вводит (или выбирает из выпадающих списков) в желтых ячейках нужный товар и город. В зеленой ячейке нам нужно формулой найти и вывести число из таблицы, соответствующее выбранным параметрам. Фактически, мы хотим найти значение ячейки с пересечения определенной строки и столбца в таблице. Для наглядности, разобъем задачу на три этапа.
- Во-первых, нам нужно определить номер строки, соответствующей выбранному пользователем в желтой ячейке товару. Это поможет сделать функция ПОИСКПОЗ (MATCH) из категории Ссылки и массивы (Lookup and Reference). В частности, формула ПОИСКПОЗ(J2; A2:A10; 0) даст нам нужный результат (для Яблока это будет число 6). Первый аргумент этой функции — искомое значение (Яблоко из желтой ячейки J2), второй — диапазон ячеек, где мы ищем товар (столбец с товарами в таблице — A2:A10), третий аргумент задает тип поиска (0 — точное совпадение наименования, приблизительный поиск запрещен).
- Во-вторых, совершенно аналогичным способом мы должны определить порядковый номер столбца в таблице с нужным нам городом. Функция ПОИСКПОЗ(J3; B1:F1; 0) сделает это и выдаст, например, для Киева, выбранного пользователем в желтой ячейке J3 значение 4.
- И, наконец, в-третьих, нам нужна функция, которая умеет выдавать содержимое ячейки из таблицы по номеру строки и столбца — функция ИНДЕКС (INDEX) из той же категории Ссылки и массивы (Lookup and Reference). Первый аргумент этой функции — диапазон ячеек (в нашем случае это вся таблица, т.е. B2:F10), второй — номер строки, третий — номер столбца (а их мы определим с помощью функций ПОИСКПОЗ).
Итого, соединяя все вышеперечисленное в одну формулу, получаем для зеленой ячейки решение:
=ИНДЕКС(B2:F10; ПОИСКПОЗ(J2;A2:A10;0); ПОИСКПОЗ(J3;B1:F1;0))
или в английском варианте
=INDEX(B2:F10;MATCH(J2;A2:A10;0);MATCH(J3;B1:F1;0))
Пример 2. Приблизительный двумерный поиск
Слегка модифицируем предыдущий пример. Предположим, что у нас имеется вот такая ситуация:
Идея в том, что пользователь должен ввести в желтые ячейки высоту и ширину двери для, например, шкафа, которую он хочеть заказать у компании-производителя, а в серой ячейке должна появиться ее стоимость из таблицы. Важный нюанс в том, что если пользователь вводит нестандартные значения размеров, то они должны автоматически округлиться до ближайших имеющихся в таблице и в серой ячейке должна появиться стоимость изготовления двери для этих округленных стандарных размеров.
Решение для серой ячейки будет практически полностью аналогично предыдущему примеру:
=ИНДЕКС(C7:K16; ПОИСКПОЗ(D3;B7:B16;1); ПОИСКПОЗ(G3;C6:K6;1))
=INDEX(C7:K16; MATCH(D3;B7:B16;1); MATCH(G3;C6:K6;1))
Разница только в последнем аргументе обеих функций ПОИСКПОЗ (MATCH) — Типу сопоставления (здесь он равен минус 1). Это некий аналог четвертого аргумента функции ВПР (VLOOKUP) — Интервального просмотра (Range Lookup). Вообще говоря, возможных значений для него три:
- 1 — поиск ближайшего наименьшего числа, т.е. введенные пользователем размеры двери округлялись бы до ближайших наименьших подходящих размеров из таблицы. В нашем случае высота 500 округлилась бы до 450, а ширина 480 до 300, и стоимость двери была бы 135.
- -1 — поиск ближайшего наибольшего числа, т.е. нестандартная высота 500 округлялась бы до 700, а ширина 480 — до 600 и стоимость составила бы уже 462. Для бизнеса так гораздо интереснее!
- 0 — поиск точного соответствия без каких либо округлений. Используется для 100%-го совпадения искомого значения с одним из значений в таблице. Естественно, применяется при поиске текстовых параметров (как в прошлом примере), т.к. для них округление невозможно.
Важно отметить, что при использовании приблизительного поиска с округлением диапазон поиска — а значит и вся таблица — должна быть отсортирована по возрастанию (для Типа сопоставления = 1) или по убыванию (для Типа сопоставления = -1) по строчкам и по столбцам. Иначе приблизительный поиск корректно работать не будет!
Для точного поиска (Тип сопоставления = 0) сортировка не нужна и никакой роли не играет.
P.S. Обратная задача
В комментах неоднократно интересуются — а как сделать обратную операцию, т.е. определить в первом примере город и товар если мы знаем значение из таблицы? Тут потребуются две небольшие формулы массива (не забудьте ввести их с помощью сочетания клавиш Ctrl+Shift+Enter, а не обычного Enter):
Принцип их работы следующий:
- перебираем все ячейки в диапазоне B2:F10 и ищем совпадение с искомым значением (13) из ячейки J4 с помощью функции ЕСЛИ (IF)
- когда нашли совпадение, то определяем номер строки (столбца) первого элемента в таблице в этой строке (столбце) с помощью функций СТОЛБЕЦ (COLUMN) и СТРОКА (ROW)
- выдергиваем значение города или товара из таблицы с помощью функции ИНДЕКС (INDEX)
Ссылки по теме
- Использование функции ВПР (VLOOKUP) для подстановки значений
- Динамическая выборка из списка функциями ИНДЕКС и ПОИСКПОЗ
- Улучшаем функцию ВПР (VLOOKUP2)
- ВПР (VLOOKUP) с учетом регистра
- Многоразовый ВПР для вывода сразу всех значений
Skip to content
В статье предлагается несколько различных формул для выполнения поиска в двумерном массиве значений Excel. Просмотрите эти варианты и выберите наиболее для вас подходящий.
При поиске данных в электронных таблицах Excel чаще всего вы будете искать вертикально в столбцах или горизонтально в строках. Но иногда вам нужно просматривать сразу два условия – как строки, так и столбцы. Другими словами, вы стремитесь найти значение на пересечении определенной строки и столбца. Это называется матричным поиском (также известным как двумерный или поиск в диапазоне). Далее показано, как это можно сделать различными способами.
- Поиск в массиве при помощи ИНДЕКС ПОИСКПОЗ
- Формула ВПР и ПОИСКПОЗ для поиска в диапазоне
- Функция ПРОСМОТРX для поиска в строках и столбцах
- Формула СУММПРОИЗВ для поиска по строке и столбцу
- Поиск в матрице с именованными диапазонами
Поиск в массиве при помощи ИНДЕКС ПОИСКПОЗ
Самый популярный способ выполнить двусторонний поиск в Excel — использовать комбинацию ИНДЕКС с двумя ПОИСКПОЗ. Это разновидность классической формулы ПОИСКПОЗ ИНДЕКС , к которой вы добавляете еще одну функцию ПОИСКПОЗ, чтобы получить номера строк и столбцов:
ИНДЕКС( массив_данных ; ПОИСКПОЗ( значение_вертикальное ; диапазон_поиска_столбец ; 0), ПОИСКПОЗ( значение_горизонтальное ; диапазон_поиска_строка ; 0))
В этом способе, как и во всех остальных, мы используем поиск по двум условиям. Первое из них должно обнаружить совпадение в определенном столбце (в заголовках строк), а второе – в определенной строке (то есть, в заголовках столбцов). В результате мы имеем строку и столбец, которые соответствуют заданным условиям. А на пересечении их как раз и будут находиться искомые данные.
В качестве примера составим формулу для получения количества проданного товара за определённый период времени из таблицы, которую вы можете видеть ниже. Для начала определим все аргументы:
- Массив_данных — B2:E11 (ячейки данных, не включая заголовки строк и столбцов)
- Значение_вертикальное — H1 (целевой товар)
- Диапазон_поиска_столбец – A2:A11 (заголовки строк: названия напитков)
- Значение_горизонтальное — H2 (целевой период)
- Диапазон_поиска_строка — B1:E1 (заголовки столбцов: временные периоды)
Соедините все аргументы вместе, и вы получите следующую формулу для поиска числа в диапазоне:
=ИНДЕКС(B2:E11; ПОИСКПОЗ(H1;A2:A11;0); ПОИСКПОЗ(H2;B1:E1;0))
Как работает эта формула?
Хотя на первый взгляд это может показаться немного сложным, логика здесь простая. Функция ИНДЕКС извлекает значение из массива данных на основе номеров строк и столбцов, а две функции ПОИСКПОЗ предоставляют ей эти номера:
ИНДЕКС( B2:E11; номер_строки ; номер_столбца )
Здесь мы используем способность ПОИСКПОЗ возвращать относительную позицию значения в искомом массиве .
Итак, чтобы получить номер строки, мы ищем нужный нам товар (H1) в заголовках строк (A2:A11):
ПОИСКПОЗ(H1;A2:A11;0)
Чтобы получить номер столбца, мы ищем нужную нам неделю (H2) в заголовках столбцов (B1:E1):
ПОИСКПОЗ(H2;B1:E1;0)
В обоих случаях мы ищем точное совпадение, присваивая третьему аргументу значение 0.
В этом примере первое ПОИСКПОЗ возвращает 2, потому что нужный товар (Sprite) находится в ячейке A3, которая является второй по счёту в диапазоне A2:A11. Второй ПОИСКПОЗ возвращает 3, так как «Неделя 3» находится в ячейке D1, которая является третьей ячейкой в B1:E1.
С учетом вышеизложенного формула сводится к:
ИНДЕКС(B2:E11; 2 ; 3 )
Она возвращает число на пересечении второй строки и третьего столбца в матрице B2:E4, то есть в ячейке D3.
Думаю, вы понимаете, что аналогичным образом можно производить поиск в двумерном массиве Excel не только числа, но и текста. Тип данных здесь не имеет значения.
Формула ВПР и ПОИСКПОЗ для поиска в диапазоне
Другой способ выполнить матричный поиск в Excel — использовать комбинацию функций ВПР и ПОИСКПОЗ:
ВПР( значение_вертикальное ; массив_данных ; ПОИСКПОЗ( значение_горизонтальное , диапазон_поиска_строка , 0), ЛОЖЬ)
Для нашего образца таблицы формула принимает следующий вид:
=ВПР(H1; A2:E11; ПОИСКПОЗ(H2;A1:E1;0); ЛОЖЬ)
Где:
- Массив_данных — B2:E11 (ячейки данных, не включая заголовки строк и столбцов)
- Значение_вертикальное — H1 (целевой товар)
- Значение_горизонтальное — H2 (целевой период)
- Диапазон_поиска_строка — А1:E1 (заголовки столбцов: временные периоды)
Основой формулы является функция ВПР, настроенная на точное совпадение (последний аргумент имеет значение ЛОЖЬ). Она ищет заданное значение (H1) в первом столбце массива (A2:E11) и возвращает данные из другого столбца в той же строке. Чтобы определить, из какого столбца вернуть значение, вы используете функцию ПОИСКПОЗ, которая также настроена на точное совпадение (последний аргумент равен 0):
ПОИСКПОЗ(H2;A1:E1;0)
ПОИСКПОЗ ищет текст из H2 в заголовках столбцов (A1:E1) и указывает относительное положение найденной ячейки. В нашем случае нужная неделя (3-я) находится в D1, которая является четвертой по счету в массиве поиска. Итак, число 4 идет в аргумент номер_столбца функции ВПР:
=ВПР(H1; A2:E11; 4; ЛОЖЬ)
Далее ВПР находит точное совпадение H1 со значением в A3 и возвращает значение из 4-го столбца в той же строке, то есть из ячейки D3.
Важное замечание! Чтобы формула работала корректно, диапазон_поиска (A2:E11) функции ВПР и диапазон_поиска (A1:E1) функции ПОИСКПОЗ должны иметь одинаковое количество столбцов. Иначе число, переданное в номер_столбца, будет неправильным (не будет соответствовать положению столбца в массиве данных).
Функция ПРОСМОТРX для поиска в строках и столбцах
Недавно Microsoft представила еще одну функцию в Excel, которая призвана заменить все существующие функции поиска, такие как ВПР, ГПР и ИНДЕКС+ПОИСКПОЗ. Помимо прочего, ПРОСМОТРX может смотреть на пересечение определенной строки и столбца:
ПРОСМОТРX( значение_вертикальное ; диапазон_поиска_столбец ; ПРОСМОТРX( значение_горизонтальное ; диапазон_поиска_строка ; массив_данных ))
Для нашего примера набора данных формула выглядит следующим образом:
=ПРОСМОТРX(H1; A2:A11; ПРОСМОТРX(H2; B1:E1; B2:E11))
Примечание. В настоящее время ПРОСМОТРX — это функция, доступная только подписчикам Office 365 и более поздних версий.
В формуле используется функция ПРОСМОТРX для возврата всей строки или столбца. Внутренняя функция ищет целевой период времени в строке заголовка и возвращает все значения для этой недели (в данном примере для 3-й). Эти значения переходят в аргумент возвращаемый_массив внешнего ПРОСМОТРX:
=ПРОСМОТРX(H1; A2:A11; {544:87:488:102:87:433:126:132:111:565})
Внешняя функция ПРОСМОТРX ищет нужный товар в заголовках столбцов и извлекает значение из той же позиции из возвращаемого_массива.
Формула СУММПРОИЗВ для поиска по строке и столбцу
Функция СУММПРОИЗВ чрезвычайно универсальна — она может делать множество вещей, выходящих за рамки ее предназначения, особенно когда речь идет об оценке нескольких условий.
Чтобы найти значение на пересечении определенных строки и столбца, используйте эту общую формулу:
СУММПРОИЗВ ( диапазон_поиска_столбец = значение_вертикальное ) * ( диапазон_поиска_строка = значение_горизонтальное), массив_данных )
Чтобы выполнить поиск данных в массиве по строке и столбцу в нашем наборе данных, формула выглядит следующим образом:
=СУММПРОИЗВ((A2:A11=H1)*(B1:E1=H2); B2:E11)
Приведенный ниже вариант также будет работать:
=СУММПРОИЗВ((A2:A11=H1)*(B1:E1=H2)*B2:E11)
Теперь поясним подробнее. В начале мы сравниваем два значения поиска с заголовками строк и столбцов (целевой товар в H1 со всеми наименованиями в A2: A11 и целевой период времени в H2 со всеми неделями в B1: E1):
(A2:A11=H1)*(B1:E1=H2)
Это дает нам два массива значений ИСТИНА и ЛОЖЬ, где ИСТИНА означает совпадения:
{ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ}) * ({ЛОЖЬ;ЛОЖЬ;ИСТИНА;ЛОЖЬ}
Операция умножения преобразует значения ИСТИНА и ЛОЖЬ в 1 и 0 и создает матрицу из 4 столбцов и 10 строк (строки разделяются двоеточием, а каждый столбец данных — точкой с запятой):
{0;0;0;0:0;0;1;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0}
Функция СУММПРОИЗВ умножает элементы приведенного выше массива на элементы B2:E4, находящихся в тех же позициях:
{0;0;0;0:0;0;1;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0; 0;0:0;0;0;0:0;0;0;0:0;0;0;0} * {455;345;544;366:65;77;87;56:766; 655;488;865:129;66;102;56:89;141;87;89:566;511;433;522:154; 144;126; 162:158;165;132;155:112;143;111; 125:677;466;565;766})
И поскольку умножение на ноль дает в результате ноль, остается только элемент, соответствующий 1 в первом массиве:
=СУММПРОИЗВ({0;0;0;0:0;0;87;0:0;0;0;0:0;0;0;0:0;0;0;0:0; 0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0})
Наконец, СУММПРОИЗВ складывает все элементы результирующего массива и возвращает значение 87.
Примечание . Если в вашей таблице несколько заголовков строк и/или столбцов с одинаковыми именами, итоговый массив будет содержать более одного числа, отличного от нуля. И все эти числа будут суммированы. В результате вы получите сумму значений, удовлетворяющую обоим критериям. Это то, что отличает формулу СУММПРОИЗВ от ПОИСКПОЗ и ВПР, которые возвращают только первое найденное совпадение.
Поиск в матрице с именованными диапазонами
Еще один достаточно простой способ поиска в массиве в Excel — использование именованных диапазонов. Рассмотрим пошагово:
Шаг 1. Назовите столбцы и строки
Самый быстрый способ назвать каждую строку и каждый столбец в вашей таблице:
- Выделите всю таблицу (в нашем случае A1:E11).
- На вкладке « Формулы » в группе « Определенные имена » щелкните « Создать из выделенного » или нажмите комбинацию клавиш Ctrl + Shift + F3.
- В диалоговом окне « Создание имени из выделенного » выберите « в строке выше » и « в столбце слева» и нажмите «ОК».
Это автоматически создает имена на основе заголовков строк и столбцов. Однако есть пара предостережений:
- Если ваши заголовки столбцов и/или строк являются числами или содержат определенные символы, которые не разрешены в именах Excel, то имена для таких столбцов и строк не будут созданы. Чтобы просмотреть список созданных имен, откройте Диспетчер имен (
Ctrl + F3
). Если некоторые имена отсутствуют, определите их вручную. - Если некоторые из ваших заголовков строк или столбцов содержат пробелы, то они будут заменены символами подчеркивания, например, Неделя_1.
Шаг 2. Создание формулы поиска по матрице
Чтобы получить значение из матрицы на пересечении определенной строки и столбца, просто введите одну из следующих общих формул в пустую ячейку:
=имя_строки имя_столбца
Или наоборот:
=имя_столбца имя_строки
Например, чтобы получить продажу Sprite в 3-й неделе, используйте выражение:
=Sprite неделя_3
То есть, имена диапазонов здесь разделены пробелом, который в данном случае является оператором пересечения массивов.
Если кому-то нужны более подробные инструкции, опишем весь процесс пошагово:
- В ячейке, в которой вы хотите отобразить результат, введите знак равенства (=).
- Начните вводить имя целевой строки, Sprite. После того, как вы введете пару символов, Excel отобразит все существующие имена, соответствующие вашему вводу. Дважды щелкните нужное имя, чтобы ввести его в формулу.
- После имени строки введите пробел , который в данном случае работает как оператор пересечения.
- Введите имя целевого столбца ( в нашем случае неделя_3 ).
- Как только будут введены имена строки и столбца, Excel выделит соответствующую строку и столбец в вашей таблице, и вы нажмете Enter, чтобы завершить ввод:
Ваш поиск нужной ячейки в массиве выполнен, найден результат 87.
Вот какими способами можно выполнять поиск в массиве значений – в строках и столбцах таблицы Excel. Я благодарю вас за чтение и надеюсь еще увидеть вас в нашем блоге.
Еще несколько материалов по теме:
Предположим, нам задан месяц, город и зависящая от них стоимость продукта. Необходимо найти соответствующее им значение в большом двухмерном массиве/матрице/таблице и вывести его в ячейку, формулой. По сути нам нужно вернуть значение на пересечении нужных строки и столбца таблицы. Поиск в двумерном массиве Excel готовыми функциями не сделаешь — СУММЕСЛИ или просто ВПР здесь уже не подходит. Я использую конструкцию из функций ВПР и ПОИСКПОЗ. Как ее правильно записать смотрим ниже.
Конструкция здесь довольно нетривиальная. Поэтому рекомендую ознакомиться с принципами работы функции ВПР и ПОИСКПОЗ перед прочтением статьи ниже, особенно если не встречались с такими функциями ранее.
Пример
Чтобы было было понятнее, начнем с примера.
Имеется таблица по городам и стоимость услуг, стоимости зависят от месяца.
Необходимо найти стоимость для третьего месяца по городу Краснодару или найти Sij, если по умному. Как будем делать?
Поиск в двумерном массиве Excel. Как записать формулу
Как мы обсудили, готовой формулы в Excel нет. Поэтому создадим комбинацию двух формул. В любой ячейки запишем:
=ВПР($G:$G;$B:$E;ПОИСКПОЗ($H:$H;$B$2:$E$2);)
Где столбец G — искомый город (Краснодар), а столбец H — месяц (третий). При записи можно использовать и просто одну ячейку, например, G4 и H4
=ВПР($G$4;$B:$E;ПОИСКПОЗ($H$4;$B$2:$E$2);)
Как видите, формулу на рисунке (с использованием столбцов) можно продлить ниже в другие ячейки.
Описание конструкции формулы:
- Функция ВПР осуществляет поиск нужного нам значения (Города, синий столбец G) в большой таблице $B:$E (отмечена зеленым). Для этого нам необходимо указать в каком же именно столбце этой таблицы ВПРу искать город — втором, третьем или четвертом (C, D, E)
- Номер этого столбца найдем при помощи функции ПОИСКПОЗ, которая находит номер элемента в массиве. А точнее найдем номер значения фиолетового столбца H (месяца) в массиве $B$2:$E$2. Тем самым мы определили, что ВПР надо использовать третий столбец.
- Четвертый аргумент оставляем пустым (после последней «;»), т.к. по умолчанию можно оставить ЛОЖЬ или пусто. Подробнее здесь.
Обратите внимание! Нужно обязательно выполнить два условия, чтобы формула считалась правильно!
— Ширина массива $B$2:$E$2 в ПОИСКПОЗ и ширина таблицы $B:$E должны совпадать.
— Данные в массиве для ПОИСКПОЗ ($B$2:$E$2) должны быть отсортированы от большего к меньшему или от А до Я!
Получилось:
Если есть вопросы — не стесняйтесь писать комментарии!
Содержание
- Excel works!
- Excel works!
- Поиск в двумерном массиве Excel (по матрице). ВПР и ПОИСКПОЗ
- Пример
- Поиск в двумерном массиве Excel. Как записать формулу
- Индекс поискпоз в excel поиск по двум столбцам
- Функции ИНДЕКС и ПОИСКПОЗ в Excel на простых примерах
- Функция ПОИСКПОЗ в Excel
- Функция ИНДЕКС в Excel
- Совместное использование ПОИСКПОЗ и ИНДЕКС в Excel
- Продвинутые примеры с функцией ВПР: поиск по нескольким критериям
- Поиск в Excel по нескольким критериям
- Пример 1: Поиск по 2-м разным критериям
- Пример 2: ВПР по двум критериям с просматриваемой таблицей на другом листе
- Извлекаем 2-е, 3-е и т.д. значения, используя ВПР
- Извлекаем все повторения искомого значения
- Часть 1:
- Часть 2:
- Часть 3:
- Часть 4:
- Часть 5:
- Двумерный поиск по известным строке и столбцу
- Функции ВПР и ПОИСКПОЗ
- Функция СУММПРОИЗВ
- Функции ИНДЕКС и ПОИСКПОЗ
- Именованные диапазоны и оператор пересечения
- Используем несколько ВПР в одной формуле
- Динамическая подстановка данных из разных таблиц при помощи ВПР и ДВССЫЛ
- Как работают ДВССЫЛ и ВПР
- Поиск значений в списке данных
- В этой статье
- Поиск значений в списке по вертикали по точному совпадению
- Примеры функции ВПР
- Примеры функций ИНДЕКС и ПОИСКПОЗ
- Поиск значений в списке по вертикали по приблизительному совпадению
- Поиск значений по вертикали в списке неизвестного размера по точному совпадению
- Поиск значений в списке по горизонтали по точному совпадению
- Поиск значений в списке по горизонтали по приблизительному совпадению
- Создание формулы подстановки с помощью мастера подстановок (только Excel 2007)
- Поиск и подстановка по нескольким условиям
- Постановка задачи
- Способ 1. Дополнительный столбец с ключом поиска
- Способ 2. Функция СУММЕСЛИМН
- Способ 3. Формула массива
- Пример функции ПОИСКПОЗ для поиска совпадения значений в Excel
- Примеры использования функции ПОИСКПОЗ в Excel
- Формула для поиска неточного совпадения текста в Excel
- Сравнение двух таблиц в Excel на наличие несовпадений значений
- Поиск ближайшего большего знания в диапазоне чисел Excel
- Особенности использования функции ПОИСКПОЗ в Excel
- индекс поискпоз по 2 столбцам (Формулы/Formulas)
- Трехмерный поиск по нескольким листам (ВПР 3D)
- Использование ИНДЕКС ПОИСКПОЗ: как искать значение в двух столбцах одновременно
Excel works!
Excel работает за вас
Excel works!
Thanks for Visiting
Поиск в двумерном массиве Excel (по матрице). ВПР и ПОИСКПОЗ
Предположим, нам задан месяц, город и зависящая от них стоимость продукта. Необходимо найти соответствующее им значение в большом двухмерном массиве/матрице/таблице и вывести его в ячейку, формулой. По сути нам нужно вернуть значение на пересечении нужных строки и столбца таблицы. Поиск в двумерном массиве Excel готовыми функциями не сделаешь — СУММЕСЛИ или просто ВПР здесь уже не подходит. Я использую конструкцию из функций ВПР и ПОИСКПОЗ. Как ее правильно записать смотрим ниже.
Конструкция здесь довольно нетривиальная. Поэтому рекомендую ознакомиться с принципами работы функции ВПР и ПОИСКПОЗ перед прочтением статьи ниже, особенно если не встречались с такими функциями ранее.
Пример
Чтобы было было понятнее, начнем с примера.
Имеется таблица по городам и стоимость услуг, стоимости зависят от месяца.
Необходимо найти стоимость для третьего месяца по городу Краснодару или найти Sij, если по умному. Как будем делать?
Поиск в двумерном массиве Excel. Как записать формулу
Как мы обсудили, готовой формулы в Excel нет. Поэтому создадим комбинацию двух формул. В любой ячейки запишем:
Где столбец G — искомый город (Краснодар), а столбец H — месяц (третий). При записи можно использовать и просто одну ячейку, например, G4 и H4
Как видите, формулу на рисунке (с использованием столбцов) можно продлить ниже в другие ячейки.
Описание конструкции формулы:
- Функция ВПР осуществляет поиск нужного нам значения (Города, синий столбец G) в большой таблице $B:$E (отмечена зеленым). Для этого нам необходимо указать в каком же именно столбце этой таблицы ВПРу искать город — втором, третьем или четвертом (C, D, E)
- Номер этого столбца найдем при помощи функции ПОИСКПОЗ, которая находит номер элемента в массиве. А точнее найдем номер значения фиолетового столбца H (месяца) в массиве $B$2:$E$2. Тем самым мы определили, что ВПР надо использовать третий столбец.
- Четвертый аргумент оставляем пустым (после последней «;»), т.к. по умолчанию можно оставить ЛОЖЬ или пусто. Подробнее здесь.
Обратите внимание! Нужно обязательно выполнить два условия, чтобы формула считалась правильно!
— Ширина массива $B$2:$E$2 в ПОИСКПОЗ и ширина таблицы $B:$E должны совпадать.
— Данные в массиве для ПОИСКПОЗ ($B$2:$E$2) должны быть отсортированы от большего к меньшему или от А до Я!
Если есть вопросы — не стесняйтесь писать комментарии!
Источник
Индекс поискпоз в excel поиск по двум столбцам
Функции ИНДЕКС и ПОИСКПОЗ в Excel на простых примерах
Смотрите также ячейки G (номер из фрагментов сПример во вложении. «нет». сразу целые столбцы по одному столбцу,и возвращает значениеАвтор: Антон Андронов функцией, используяв третьем аргументе,наименьшее значение в имя покупателя (она и C содержатся значенияВПРСовместное использование функций которой соответствует найденной помощью оператора сцепкиСпасибо.Чтобы вычислить остальные значения (т.е. вместо A2:A161 а не по из строки 5 вПредположим, что требуется найтиЕСЛИ
SKU Вы говорите функции
Функция ПОИСКПОЗ в Excel
массиве данных. В неизменна, обратите внимание имена клиентов иДвумерный поиск по известным,ИНДЕКС позиции) меньше нуля, &. Например, формула:Pelena «протянем» формулу из вводить A:A и
нескольким, то нам указанном диапазоне. внутренний телефонный номерна ссылку с, как искомое значение:ПОИСКПОЗ
нашем случае, какую – ссылка абсолютная); названия продуктов соответственно, строке и столбцуГПРи
то в пустую=ДВССЫЛ(A1&»!B3″): Здравствуйте. ячейки C2 вниз т.д.) Многим непривычны нужно из несколькихДополнительные сведения см. в сотрудника по его функцией=VLOOKUP(A2,New_SKU,2,FALSE)искать первое значение, по счёту позицию$B$ а ссылка
автозаполнения. В результате принципе (тогда вамДобавим рядом с нашей ГПР. узнать ставку комиссионного. Вот такая комбинацияЗдесь с искомым значением. – определено функциейCustomer Name
Функция ИНДЕКС в Excel
определяет таблицу дляДинамическая подстановка данных изв Excel, то хорошая альтернатива столбца Н; A1, приклеивает кmiha_ получим: сюда). таблицей еще одинК началу страницы вознаграждения, предусмотренную за
ВПРNew_SKU Это равносильно значениюROW; поиска на другом разных таблиц должны знать, чтоВПР
если совпадение обнаружено нему восклицательный знак-разделитель:Как видно, третьи элементыФункция ПОИСКПОЗ в Excel столбец, где склеимДля выполнения этой задачи определенный объем продаж.и– именованный диапазон
FALSE(СТРОКА) (смотри ЧастьTable4 листе.
Функция они осуществляют поиск,
Совместное использование ПОИСКПОЗ и ИНДЕКС в Excel
среди ячеек столбца и адрес ячейкиPelena списков не совпадают. используется для поиска название товара и используется функция ГПР. Необходимые данные можноДВССЫЛ$A:$B(ЛОЖЬ) для четвёртого 2). Так, для– Ваша таблицаЧтобы сделать формулу болееВПР только в одномерномГПР F и содержимое B3. Если в, Спасибо.Пример 3. Найти ближайшее точного совпадения или месяц в единое
Важно: быстро и эффективноотлично работает вв таблице аргумента ячейки (на этом месте читаемой, Вы можетев Excel –
массиве. Но иногдаи ячейки G (номер ячейке A1 будетТо,что нужно. меньшее числу 22 ближайшего (меньшего или целое с помощью Значения в первой находить в списке паре:Lookup table 1ВПР
F4
также может быть задать имя для это действительно мощный приходится сталкиваться сПРОСМОТР которой соответствует найденной
лежать слово Москва,_Boroda_ в диапазоне чисел, большего заданному в
- оператора сцепки (&), строке должны быть и автоматически проверять=VLOOKUP($D$2,INDIRECT($D3&»_Sales»),2,FALSE)
- , а.функция обычный диапазон); просматриваемого диапазона, и инструмент для выполнения двумерным поиском, когда. Эта связка универсальна позиции) больше нуля,
- то на выходе: Еще похожее хранящихся в столбце зависимости от типа чтобы получить уникальный отсортированы по возрастанию. их правильность. Значения,=ВПР($D$2;ДВССЫЛ($D3&»_Sales»);2;ЛОЖЬ)2
Вот так Вы можетеНАИМЕНЬШИЙ(<массив>;1)$C16 тогда формула станет поиска определённого значения соответствия требуется искать и обладает всеми то в пустую мы получим ссылку200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(D3:D7;ЕСЛИОШИБКА(ПОИСКПОЗ($H3;$A3:$A7;);ПОИСКПОЗ($H3;$B3:$B7;)))
таблицы Excel.
сопоставления, указанного в столбец-ключ для поиска:
В приведенном выше примере возвращенные поиском, можноГде:– это столбец создать формулу длявозвращает– конечная ячейка выглядеть гораздо проще: в базе данных. сразу по двум возможностями этих функций. ячейку записываются значения Москва!B3, т.е. содержимоеИ немного другоеКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПРОСМОТР(;-1/(($A3:$A7=$H3)+($B3:$B7=$H3));D3:D7)Вид исходной таблицы данных: качестве аргумента) значенияТеперь можно использовать знакомую функция ГПР ищет
затем использовать в
Продвинутые примеры с функцией ВПР: поиск по нескольким критериям
- случаях, например, при столбцов Н и
- листа Москва. (вводится одновременным нажатием значения заданному во
- или диапазоне ячеекВПР (VLOOKUP)
- в указанном диапазоне. как результаты. Существует
- с названием товара, на рисунке выше)
- что также известно, то есть
Поиск в Excel по нескольким критериям
Эта формула находит толькоЧтобы формула работала, значения синтаксис позволяет искатьПОИСКПОЗ двумерном поиске данных G.Теперь сводим все в Контрл Шифт Ентер)Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(D3:D7;ПОИСКПОЗ(«*»&$H3&»*»;$A3:$A7&$B3:$B7;)) всем столбце A:A и возвращает номердля поиска склеенной Значение 11 000 отсутствует, поэтому несколько способов поиска она неизменна благодаряЗапишите формулу для вставки как двумерный поиск
Пример 1: Поиск по 2-м разным критериям
1 второе совпадающее значение. в крайнем левом только одно значение.и на листе, окажетсяя могу решить единое целое дляmiha_ (числовой ряд может позиции найденного элемента. пары она ищет следующее значений в списке абсолютной ссылке.
цен из таблицы или поиск в. Для ячейки Если же Вам столбце просматриваемой таблицы Как же быть,ИНДЕКС просто незаменимой. В эту задачу в решения нашей задачи:: пополняться новыми значениями)Например, имеем последовательный рядНектаринЯнварь максимальное значение, не
данных и отображения
$D3
Lookup table 2 двух направлениях.F5 необходимо извлечь остальные должны быть объединены если требуется выполнитьв Excel оказывается
данном уроке мы несколько действий, ноЕдинственный оставшийся нюанс в_Boroda_ используем формулу массива чисел от 1из ячеек H3 превышающее 11 000, и возвращает результатов.– это ячейка,на основе известныхФункциявозвращает повторения, воспользуйтесь предыдущим точно так же, поиск по нескольким просто незаменимой. последовательно разберем функции загвоздка, чтобы оптимизировать
том, что по, Спасибо. (CTRL+SHIFT+ENTER): до 10, записанных и J3 в 10 543.Поиск значений в списке содержащая первую часть названий товаров. ДляСУММПРОИЗВ2-й решением. как и в
условиям? Решение Вы
На рисунке ниже представлена
операцию по максимуму.
синтаксису Excel, если
jakim=B2;A:A;»»));A:A;0);1)’ > в ячейках B1:B10. созданном ключевом столбце:Дополнительные сведения см. в по вертикали по названия региона. В этого вставьте созданную(SUMPRODUCT) возвращает суммунаименьший элемент массива,Если Вам нужен список критерии поиска. На
Пример 2: ВПР по двум критериям с просматриваемой таблицей на другом листе
найдёте далее. таблица, которая содержитичитала еще одну в именах листов: Для Вашего офисаФункция ПОИСКПОЗ возвращает позицию Функция =ПОИСКПОЗ(3;B1:B10;0) вернетПлюсы разделе, посвященном функции точному совпадению нашем примере это ранее формулу в
произведений выбранных массивов: то есть всех совпадений – рисунке выше мыПредположим, у нас есть месячные объемы продажИНДЕКС тему в обсуждении есть пробел, то
ещё одна формула. элемента в столбце число 3, поскольку
: Простой способ, знакомая
ГПР.
Поиск значений в спискеFL качестве искомого значения=SUMPRODUCT(($A$2:$A$9=»Lemons»)*($A$1:$I$1=»Mar»),$A$2:$I$9)3 функция объединили значения и список заказов и каждого из четырех
, а затем рассмотрим и наткнулась на их нужно дополнительно200?’200px’:»+(this.scrollHeight+5)+’px’);»>=INDEX(D3:D300;AGGREGATE(15;6;ROW($1:$300)/($A$3:$B$300=$H$3);1)) A:A, имеющего максимальное искомое значение находится
функция, работает с
К началу страницы
по вертикали по. для новой функции=СУММПРОИЗВ(($A$2:$A$9=»Lemons»)*($A$1:$I$1=»Mar»);$A$2:$I$9), и так далее.ВПР поставили между ними мы хотим найти видов товара. Наша пример их совместного ту же проблему заключать в апострофыи ещё попроще значение среди чисел,
в ячейке B3, любыми данными.Примечание: приблизительному совпадению_SalesВПРВ следующей статье яINDEX($C$2:$C$16,SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3))тут не помощник, пробел, точно такКоличество товара задача, указав требуемый
использования в Excel. применения решения к (одинарные кавычки), т.е.Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=AGGREGATE(15;6;D$3:D$7/($A$3:$B$7=$H$3);1) которые больше числа, которая является третьейМинусы Поддержка надстройки «Мастер подстановок»Поиск значений по вертикали– общая часть: буду объяснять этиИНДЕКС($C$2:$C$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3)) поскольку она возвращает же необходимо сделать
Извлекаем 2-е, 3-е и т.д. значения, используя ВПР
(Qty.), основываясь на месяц и типБолее подробно о функциях моей ситуации - ссылка на ячейкуEll указанного в ячейке от точки отсчета: Надо делать дополнительный в Excel 2010 в списке неизвестного названия всех именованных=VLOOKUP(VLOOKUP(A2,New_SKU,2,FALSE),Price,3,FALSE) функции во всехФункция только одно значение
в первом аргументе двух критериях – товара, получить объем ВПР и ПРОСМОТР. поиск останавливается на A1 на листе: Добрый день. B2. Функция ИНДЕКС (ячейки B1). столбец и потом,
прекращена. Эта надстройка размера по точному диапазонов или таблиц.=ВПР(ВПР(A2;New_SKU;2;ЛОЖЬ);Price;3;ЛОЖЬ) деталях, так чтоINDEX за раз – функции (B2&» «&C2).Имя клиента продаж.Функция первом найденном значении.Нижний НовгородПри использовании этой возвращает значение, хранящеесяДанная функция удобна для возможно, еще и была заменена мастером
совпадению
Соединенная со значением
Здесь сейчас можете просто(ИНДЕКС) просто возвращает и точка. НоЗапомните!
- (Customer) иПускай ячейка C15 содержитПОИСКПОЗ специфика в том,, например, должна выглядеть
формулы в работе
в найденной ячейке.
использования в случаях, прятать его от функций и функциямиПоиск значений в списке в ячейке D3,
Price
скопировать эту формулу:
значение определённой ячейки в Excel естьФункцияНазвание продукта указанный нами месяц,возвращает относительное расположение что НОМЕР УЗЛА
так: с датами, выдаетРезультат расчетов: когда требуется вернуть пользователя. При изменении для работы со
по горизонтали по
она образует полное
- =INDEX($A$2:$I$9,MATCH(«Lemons»,$A$2:$A$9,0),MATCH(«Mar»,$A$1:$I$1,0)) в массиве функцияВПР(Product). Дело усложняется
- например, ячейки в заданном МОЖЕТ НЕОДНОКРАТНО ПОВТОРЯТЬСЯ.ПОИСКПОЗ=
- результат 0.1.1900 (Для поиска ближайшего меньшего не само значение, числа строк в ссылками и массивами.
- точному совпадению имя требуемого диапазона.$A:$C=ИНДЕКС($A$2:$I$9;ПОИСКПОЗ(«Lemons»;$A$2:$A$9;0);ПОИСКПОЗ(«Mar»;$A$1:$I$1;0))
C2:C16INDEXограничена 255 символами, тем, что каждыйМай диапазоне Excel, содержимое
не подходит исходя’ при пустой исходной значения достаточно лишь содержащееся в искомой таблице — допротягиватьВ Excel 2007 мастерПоиск значений в списке Ниже приведены некоторыев таблицеЕсли Вы не в. Для ячейки(ИНДЕКС), которая с она не может из покупателей заказывал. А ячейка C16 которой соответствует искомому из своего описания
Извлекаем все повторения искомого значения
Нижний Новгород ячейки) и #Н/Д(в немного изменить данную ячейке, а ее формулу сцепки на подстановок создает формулу по горизонтали по подробности для тех,Lookup table 2 восторге от всехF4 легкостью справится с искать значение, состоящее несколько видов товаров, — тип товара, значению. Т.е. данная в справке((
’ случаях пустых всех формулу и ее координату относительно рассматриваемого новые строки (хотя подстановки, основанную на приблизительному совпадению кто не имеет
, а
этих сложных формул
функция этой задачей. Как из более чем как это видно например, функция возвращает незаранее благодарна за!A1 заданных диапазонов) следует также ввести диапазона. В случае это можно упростить данных листа, содержащихСоздание формулы подстановки с опыта работы с3
Excel, Вам можетИНДЕКС($C$2:$C$16;1) будет выглядеть такая 255 символов. Имейте
Часть 1:
из таблицы ниже:
Овощи
само содержимое, а помощь. Таким образом для универсальностиКакую формулу можно как массив (CTRL+SHIFT+ENTER): использования для констант применением умной таблицы). названия строк и помощью мастера подстановок функцией– это столбец понравиться вот такойвозвратит формула, Вы узнаете это ввиду иОбычная функция. Введем в ячейку
его местоположение вФайл удален нужно добавить апострофы дописать, чтобы при Результат поиска:
Часть 2:
массивов, которые могут
Если нужно найти именно
столбцов. С помощью (только Excel 2007)ДВССЫЛ C, содержащий цены. наглядный и запоминающийсяApples в следующем примере. следите, чтобы длинаВПР C17 следующую формулу массиве данных.- велик размер и к нашей отсутствии исходных данныхФункция имеет следующую синтаксическую быть представлены как число (в нашем мастера подстановок можноДля решения этой задачи.На рисунке ниже виден
Часть 3:
Как упоминалось выше, искомого значения нене будет работать и нажмемНапример, на рисунке ниже — [ формуле: выдавал пусто, вместо запись: массивы элементов «ключ» случае цена как найти остальные значения можно использовать функциюВо-первых, позвольте напомнить синтаксис результат, возвращаемый созданнойВыделите таблицу, откройте вкладкуF5ВПР превышала этот лимит. по такому сценарию,Enter формула вернет числоМОДЕРАТОРЫИриша самой первой даты=ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления]) — «значение», функция раз число), то в строке, если ВПР или сочетание
Часть 4:
функции
нами формулой:
Formulasфункцияне может извлечьСоглашусь, добавление вспомогательного столбца поскольку она возвратит:5]: Как усовершенствовать (совместить) в экселе?Описание аргументов: ПОИСКПОЗ возвращает значение вместо ВПР можно известно значение в функций ИНДЕКС иДВССЫЛВ начале разъясним, что(Формулы) и нажмитеИНДЕКС($C$2:$C$16;3)
Часть 5:
все повторяющиеся значения
– не самое
первое найденное значение,=ИНДЕКС(B2:E13; ПОИСКПОЗ(C15;A2:A13;0); ПОИСКПОЗ(C16;B1:E1;0)), поскольку имя «Дарья»Юрий М формулу, чтобы поискP/S На функциюискомое_значение – обязательный аргумент, ключа, который явно использовать функцию одном столбце, и ПОИСКПОЗ.(INDIRECT): мы подразумеваем подCreate from Selection
Двумерный поиск по известным строке и столбцу
возвратит из просматриваемого диапазона. изящное и не соответствующее заданному искомомуКак видите, мы получили находится в пятой: Здравствуйте! Прочите ещё значения выполнялся в еслиошибка реагирует только
принимающий текстовые, числовые не указан.СУММЕСЛИМН (SUMIFS) наоборот. В формулах,Дополнительные сведения см. вINDIRECT(ref_text,[a1]) выражением «Динамическая подстановка(Создать из выделенного).
Sweets Чтобы сделать это, всегда приемлемое решение. значению. Например, если верный результат. Если
Функции ВПР и ПОИСКПОЗ
строке диапазона A1:A9. одну — вторая двух столбцах. чтобы #Н/Д, а пустую значения, а такжеНапример, массив <«виноград»;»яблоко»;»груша»;»слива»>содержит, появившуюся начиная с которые создает мастер разделе, посвященном функцииДВССЫЛ(ссылка_на_текст;[a1]) данных из разныхОтметьте галочками
и так далее.
Вам потребуется чуть
Вы можете сделать Вы хотите узнать поменять месяц иВ следующем примере формула в списке тем на Листе 2 ячейку все равно данные логического и элементы, которые можно Excel 2007. По подстановок, используются функции ВПР.Первый аргумент может быть таблиц», чтобы убедитьсяTop rowIFERROR() более сложная формула, то же самое количество товара тип товара, формула вернет
выдает как 0.1.1900:cry: ссылочного типов, который представить как: 1
- идее, эта функция ИНДЕКС и ПОИСКПОЗ.Что означает: ссылкой на ячейку
- правильно ли мы(в строке выше)ЕСЛИОШИБКА() составленная из нескольких без вспомогательного столбца,
- Sweets снова вернет правильный3Нина
«Клиент» отображался «КонечныйСПАСИБО:<> используется в качестве – «виноград», 2 выбирает и суммируетЩелкните ячейку в диапазоне.=ИНДЕКС(нужно вернуть значение из (стиль A1 или понимает друг друга. иВ завершение, мы помещаем функций Excel, таких но в таком, заказанное покупателем
результат:, поскольку число 300: Как называется?) покупатель» с Листа1,Тема закрыта. Причина: критерия поиска (для – «яблоко», 3 числовые значения по
Функция СУММПРОИЗВ
На вкладке C2:C10, которое будет R1C1), именем диапазонаБывают ситуации, когда есть
Left column
формулу внутрь функции
Функции ИНДЕКС и ПОИСКПОЗ
как случае потребуется гораздоJeremy HillВ данной формуле функция находится в третьемЮрий М
при условии что
нарушение п.п. 4
Именованные диапазоны и оператор пересечения
сопоставления величин или – «груша», 4 нескольким (до 127!)Формулы соответствовать ПОИСКПОЗ(первое значение или текстовой строкой. несколько листов с
- (в столбце слева).IFERRORINDEX более сложная формула, запишите вот такую
- ИНДЕКС столбце диапазона B1:I1.: Это Вы прикалываетесь? номер ТТН искал и 5q Правил нахождения точного совпадения); – «слива», где условиям. Но еслив группе «Капуста» в массиве Второй аргумент определяет, данными одного формата, Microsoft Excel назначит(ЕСЛИОШИБКА), поскольку вряд(ИНДЕКС),
- с комбинацией функций формулу:принимает все 3Из приведенных примеров видно,
:-)
на Листе1 и
форума
просматриваемый_массив – обязательный аргумент, 1, 2, 3, в нашем спискеРешения B2:B10)) какого стиля ссылка
и необходимо извлечь имена диапазонам из ли Вас обрадуетSMALLINDEX=VLOOKUP(B1,$A$5:$C$14,3,FALSE)
- аргумента: что первым аргументомВторая тема -
в столбце V,Продолжая развивать идею ВПР принимающий данные ссылочного 4 – ключи, нет повторяющихся товароввыберите команду
Используем несколько ВПР в одной формуле
Формула ищет в C2:C10 содержится в первом нужную информацию с значений в верхней сообщение об ошибке(НАИМЕНЬШИЙ) и(ИНДЕКС) и=ВПР(B1;$A$5:$C$14;3;ЛОЖЬ)Первый аргумент – это функции «ВАЖНО! Правила Форума если значение осуствует, 2D, давайте рассмотрим типа (ссылки на а названия фруктов
внутри одного месяца,Подстановка первое значение, соответствующее аргументе: определенного листа в строке и левом#N/AROWMATCH– эта формула вернет диапазон B2:E13, вПОИСКПОЗ — прочесть перед то в стодбце решение задачи поиска диапазон ячеек) или – значения. Тогда то она просто. значениюA1 зависимости от значения,
столбце Вашей таблицы.(#Н/Д) в случае,(СТРОКА)(ПОИСКПОЗ). результат котором мы осуществляемявляется искомое значение. созданием тем!» W.
- не в двух, константу массива, в функция =ПОИСКПОЗ(«яблоко»;<«виноград»;»яблоко»;»груша»;»слива»>;0) вернет выведет значение ценыЕсли командаКапуста, если аргумент равен которое введено в
Теперь Вы можете
если количество ячеек,
Например, формула, представленная ниже,Вы уже знаете, что15 поиск. Вторым аргументом выступаетНинаvikttur а в трех которых выполняется поиск значение 2, являющееся для заданного товараПодстановка
(B7), и возвращаетTRUE заданную ячейку. Думаю, осуществлять поиск, используя в которые скопирована находит все повторенияВПР, соответствующий товаруВторым аргументом функции диапазон, который содержит: а насчет размера
: =ИНДЕКС(Лист1!$D$7:$D$33;ЕСЛИ(ЕНД(ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0));ПОИСКПОЗ(M5;Лист1!$V$7:$V$33;0);ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0)))
измерениях, когда к
позиции элемента согласно ключом второго элемента. и месяца:недоступна, необходимо загрузить значение в ячейке(ИСТИНА) или не проще это объяснить эти имена, напрямую, формула, будет меньше, значения из ячейки
может возвратить толькоApplesИНДЕКС
Динамическая подстановка данных из разных таблиц при помощи ВПР и ДВССЫЛ
искомое значение. Также файла я извиняюсь!Ириша нахождению нужной строки критерию, заданному первым Отсчет выполняется неПлюсы
надстройка мастера подстановок. C7 ( указан; на примере. без создания формул. чем количество повторяющихся F2 в диапазоне одно совпадающее значение,, так как этоявляется номер строки. функция имеет еще
не доглядела( кхм..: Огромное СПАСИБО. Очень и столбца добавляется аргументом функции; с 0 (нуля),: Не нужен дополнительныйЗагрузка надстройки мастера подстановок100
R1C1Представьте, что имеются отчетыВ любой пустой ячейке значений в просматриваемом B2:B16 и возвращает точнее – первое первое совпадающее значение. Номер мы получаем и третий аргумент,vikttur очень помогли и
еще и лист.
[тип_сопоставления] – необязательный для
как это реализовано
- столбец, решение легкоНажмите кнопку)., если по продажам для запишите диапазоне. результат из тех найденное. Но как
- Есть простой обходной путь с помощью функции который задает тип: выручили. Рассмотрим следующий пример. заполнения аргумент в во многих языках масштабируется на большееMicrosoft Office
- Дополнительные сведения см. вF нескольких регионов с=имя_строки имя_столбцаВыполнение двумерного поиска в же строк в быть, если в – создать дополнительныйПОИСКПОЗ(C15;A2:A13;0) сопоставления. Он можетЕсли в примереИриша Допустим, у нас виде числового значения, программирования при работе количество условий (до
, а затем — разделах, посвященных функциямALSE одинаковыми товарами и, например, так: Excel подразумевает поиск столбце C. просматриваемом массиве это столбец, в котором. Для наглядности вычислим,
принимать один из указываете конкретное число,: Ой, а можно есть несколько листов определяющего способ поиска с массивами, а 127), быстро считает. кнопку ИНДЕКС и ПОИСКПОЗ.(ЛОЖЬ). в одинаковом формате.=Lemons Mar значения по известному<=IFERROR(INDEX($C$2:$C$16,SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3)),»»)> значение повторяется несколько объединить все нужные что же возвращает трех вариантов: постарайтесь, чтобы оно понаглеть и усложнить: по городам с в диапазоне ячеек с 1.
Минусы
Параметры Excel
К началу страницы
- В нашем случае ссылка Требуется найти показатели… или наоборот: номеру строки и<=ЕСЛИОШИБКА(ИНДЕКС($C$2:$C$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3));»»)>
- раз, и Вы критерии. В нашем нам данная формула:0 было в таблице. если значение ТТН данными продаж по
- или массиве. МожетФункция ПОИСКПОЗ редко используется: Работает только си выберите категориюДля выполнения этой задачи имеет стиль продаж для определенного=Mar Lemons столбца. Другими словами,Введите эту формулу массива хотите извлечь 2-е примере это столбцыТретьим аргументом функции— функция «2404» не только
Как работают ДВССЫЛ и ВПР
находится в столбце товарам (строки) и принимать следующие значения: самостоятельно. Ее целесообразно
числовыми данными на
Надстройки
используется функция ВПР.A1 региона:Помните, что имена строки Вы извлекаете значение в несколько смежных или 3-е изИмя клиентаИНДЕКС
- ПОИСКПОЗ не повторяется, его W — воспроизводить магазинам (столбцы):-1 – поиск наименьшего
- применять в связке выходе, не применима.Важно:, поэтому можно не
Если у Вас всего и столбца нужно ячейки на пересечении ячеек, например, в них? А что(Customer) иявляется номер столбца.
ищет первое значение даже нет в значение из столбцаПричем в таблицах товары ближайшего значения заданному с другими функциями, для поиска текста,В поле Значения в первой указывать второй аргумент два таких отчета, разделить пробелом, который конкретной строки и ячейки если все значения?Название продукта Этот номер мы в точности равное столбцах Е и D. А если и магазины перемешаны, аргументом искомое_значение в например, ИНДЕКС.
не работает вУправление строке должны быть и сосредоточиться на то можно использовать в данном случае столбца.F4:F8 Задачка кажется замысловатой,(Product). Не забывайте, получаем с помощью заданному. Сортировка не F. в столбце V т.е. их последовательность упорядоченном по убыванию старых версиях Excel
выберите значение отсортированы по возрастанию. первом. до безобразия простую работает как оператор
Итак, давайте обратимся к, как показано на но решение существует! что объединенный столбец функции
требуется.
Где находится эта
— значение подставлять различается. Количество строк массиве или диапазонеПример 1. Найти позицию (2003 и ранее).Надстройки ExcelВ приведенном выше примереИтак, давайте вернемся к формулу с функциями пересечения.
нашей таблице и рисунке ниже. Количество
Предположим, в одном столбце
должен быть всегда
Поиск значений в списке данных
1 или вовсе опущено пустая ячейка? Можно из столбца С. и столбцов тоже ячеек. первого частичного совпаденияО том, как спользоватьи нажмите кнопку функция ВПР ищет нашим отчетам поВПРПри вводе имени, Microsoft запишем формулу с ячеек должно быть таблицы записаны имена крайним левым в. Для наглядности вычислим— функция ведь и в Благодарю за внимание.
В этой статье
может быть разным.0 – (по умолчанию) строки в диапазоне
связку функцийПерейти имя первого учащегося
продажам. Если Выи Excel будет показывать функцией
равным или большим, клиентов (Customer Name), диапазоне поиска, поскольку
и это значение:ПОИСКПОЗ IV65000 записывать.
HakenНа отдельном листе создана поиск первого значения
Поиск значений в списке по вертикали по точному совпадению
ячеек, хранящих текстовыеИНДЕКС (INDEX). с 6 пропусками в помните, то каждый
Примеры функции ВПР
ЕСЛИ подсказку со спискомВПР
Примеры функций ИНДЕКС и ПОИСКПОЗ
чем максимально возможное
а в другом именно левый столбецЕсли подставить в исходнуюищет самое большоеДва значения в
: =ИНДЕКС(ЕСЛИ(ЕНД(ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0));Лист1!$C$7:$C$33;Лист1!$D$7:$D$33);ЕСЛИ(ЕНД(ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0));ПОИСКПОЗ(M5;Лист1!$V$7:$V$33;0);ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0))) форма ввода, куда в массиве или значения.иВ области диапазоне A2:B7. Учащихся отчёт – это(IF), чтобы выбрать
подходящих имен, так, которая найдет информацию число повторений искомого
Поиск значений в списке по вертикали по приблизительному совпадению
функция громоздкую формулу вместо
значение, которое меньше одну ячейку? ЧерезХотя что-то мне пользователь с помощью
диапазоне ячеек (неВид исходной таблицы данных:ПОИСКПОЗ (MATCH)Доступные надстройки с отдельная таблица, расположенная нужный отчет для же, как при о стоимости проданных значения. Не забудьте которые они купили.ВПР функций или равно заданному. запятую, сложить, наложить? подсказывает, что можно выпадающих списков вводит обязательно упорядоченном), которое
Для нахождения позиции текстовойв качестве болееустановите флажок рядом
Поиск значений по вертикали в списке неизвестного размера по точному совпадению
на отдельном листе. поиска: вводе формулы.
в марте лимонов. нажать Попробуем найти 2-й,просматривает при поискеПОИСКПОЗ Требуется сортировка вЕсли нужный номер написать проще. желаемый город, товар полностью совпадает со строки в таблице мощной альтернативы ВПР
с пунктом пропусками в таблице нет, Чтобы формула работала=VLOOKUP($D$2,IF($D3=»FL»,FL_Sales,CA_Sales),2,FALSE)
НажмитеСуществует несколько способов выполнитьCtrl+Shift+Enter 3-й и 4-й значения.уже вычисленные данные порядке возрастания.
повторяется в однойИриша и магазин в значением, переданным в используем следующую формулу: я уже подробноМастер подстановок поэтому функция ВПР верно, Вы должны=ВПР($D$2;ЕСЛИ($D3=»FL»;FL_Sales;CA_Sales);2;ЛОЖЬ)Enter двумерный поиск. Познакомьтесь
, чтобы правильно ввести
Поиск значений в списке по горизонтали по точному совпадению
товары, купленные заданнымИтак, Вы добавляете вспомогательный из ячеек D15
-1 строке?: Спасибочки, возможно и желтые ячейки D5, качестве первого аргумента.=ПОИСКПОЗ(D2&»*»;B:B;0)-1
описывал (с видео).и нажмите кнопку ищет первую запись
дать названия своим
Поиск значений в списке по горизонтали по приблизительному совпадению
Где:и проверьте результат
с возможными вариантами формулу массива. клиентом. столбец в таблицу
и D16, то— функцияНина можно проще, но D7 и D91 – Поиск наибольшегоОписание аргументов: В нашем жеОК
со следующим максимальным таблицам (или диапазонам),$D$2
В целом, какой бы
Создание формулы подстановки с помощью мастера подстановок (только Excel 2007)
и выберите наиболееЕсли Вам интересно понять,Простейший способ – добавить и копируете по формула преобразится вПОИСКПОЗ: исправила таблицу мне нравиться и
Содержимое выпадающих списков автоматически ближайшего значения заданномуD2&»*» – искомое значение, случае, можно применить. значением, не превышающим причем все названия– это ячейка, из представленных выше подходящий. как она работает, вспомогательный столбец перед всем его ячейкам более компактный иищет самое маленькое
пусть пустой ячейкой
такая версия. Благодарю. подгружается в желтые первым аргументом в состоящее и фамилии, их для поискаСледуйте инструкциям мастера. 6. Она находит
должны иметь общую содержащая название товара. методов Вы ниВы можете использовать связку
давайте немного погрузимся
столбцом формулу вида: понятный вид: значение, которое больше будет IHaken ячейки из трех упорядоченном по возрастанию
указанной в ячейке по нескольким столбцамК началу страницы значение 5 и возвращает часть. Например, так: Обратите внимание, здесь выбрали, результат двумерного
из функций в детали формулы:Customer Name=B2&C2=ИНДЕКС(B2:E13;D15;D16) или равно заданному.значения должны вводиться: =ЕСЛИ(ЕНД(ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0));ИНДЕКС(Лист1!$C$7:$C$33;ПОИСКПОЗ(M5;Лист1!$V$7:$V$33;0));ИНДЕКС(Лист1!$D$7:$D$33;ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0)))
синих «умных» таблиц
массиве или диапазоне
Поиск и подстановка по нескольким условиям
Постановка задачи
B2, и любого в виде формулыЕсли вы продвинутый пользователь связанное с нимCA_Sales мы используем абсолютные поиска будет однимВПРIF($F$2=B2:B16,ROW(C2:C16)-1,»»)и заполнить его. Если хочется, чтобыКак видите, все достаточно Требуется сортировка в через разделитель (запятая,Так немножко покороче справа (как это ячеек. количества других символов массива. Для этого: Microsoft Excel, то имя, ссылки, чтобы избежать и тем же:(VLOOKUP) и
ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»») именами клиентов с строка была более просто!
порядке убывания. точка с запятой), :) реализовать было описаноПримечания: (“*”);Выделите пустую зеленую ячейку, должны быть знакомыАлексейFL_Sales изменения искомого значенияБывает так, что основнаяПОИСКПОЗ$F$2=B2:B16 номером повторения каждого читаемой, можно разделитьНа этой прекрасной ноте
Способ 1. Дополнительный столбец с ключом поиска
В одиночку функция либо пробел.Нина в этой статье).Если в качестве аргументаB:B – ссылка на где должен быть с функцией поиска., при копировании формулы таблица и таблица
(MATCH), чтобы найти– сравниваем значение имени, например, объединенные значения пробелом: мы закончим. ВПОИСКПОЗ»Если нужный номер: Доброго времени суток Необходимо в зеленой
искомое_значение была передана столбец B:B, в результат. и подстановкиДополнительные сведения см. вTX_Sales в другие ячейки. поиска не имеют значение на пересечении
в ячейке F2John Doe1=B2&» «&C2 этом уроке Вы
, как правило, не повторяется в одной тем, кто читает ячейке D11 получить текстовая строка, функция котором выполняется поиск;Введите в строке формулВПР разделе, посвященном функциии так далее.$D3 ни одного общего
Способ 2. Функция СУММЕСЛИМН
полей с каждым из,. После этого можно познакомились еще с представляет особой ценности, строке?» — имеется мое сообщение! сумму, соответствующую заданному ПОИСКПОЗ вернет позицию0 – поиск точного в нее следующуюили ВПР. Как видите, во– это ячейка столбца, и этоНазвание продукта значений диапазона B2:B16.John Doe2 использовать следующую формулу:
двумя полезными функциями поэтому в Excel в виду всегоМоя задача имеет товару и магазину, элемента в массиве
совпадения. формулу:VLOOKUPК началу страницы всех именах присутствует с названием региона. мешает использовать обычную(строка) и
Способ 3. Формула массива
Если найдено совпадение,и т.д. Фокус=VLOOKUP(«Jeremy Hill Sweets»,$A$7:$D$18,4,FALSE) Microsoft Excel – ее очень часто в одной строке? определенное сходство с причем с нужного (если такой существует)Из полученного значения вычитаетсяНажмите в конце не(если еще нет,Для выполнения этой задачи «_Sales». Используем абсолютную ссылку
- функциюМесяц то выражение
- с нумерацией сделаем=ВПР(«Jeremy Hill Sweets»;$A$7:$D$18;4;ЛОЖЬ)ПОИСКПОЗ
- используют вместе сvikttur той, которая была листа. без учета регистра единица для совпадения Enter, а сочетание
то сначала почитайте используются функции СМЕЩ
Функция для столбца иВПР(столбец) рассматриваемого массива:СТРОКА(C2:C16)-1 при помощи функцииилии функцией: Ловите как вариант. описала Ириной. ВсеДля решения нам потребуется символов. Например, строки результата с idCtrl+Shift+Enter эту статью, чтобы и ПОИСКПОЗ.ДВССЫЛ относительную ссылку для. Однако, существует ещё=VLOOKUP(«Lemons»,$A$2:$I$9,MATCH(«Mar»,$A$1:$I$1,0),FALSE)возвращает номер соответствующейCOUNTIF=VLOOKUP(B1,$A$7:$D$18,4,FALSE)
ИНДЕКСИНДЕКСВ одну ячейку исходные данные находятся всего три функции:
«МоСкВа» и «москва» записи в таблице., чтобы ввести формулу им стать). ДляПримечание:соединяет значение в строки, поскольку планируем одна таблица, которая=ВПР(«Lemons»;$A$2:$I$9;ПОИСКПОЗ(«Mar»;$A$1:$I$1;0);ЛОЖЬ) строки (значение(СЧЁТЕСЛИ), учитывая, что=ВПР(B1;$A$7:$D$18;4;ЛОЖЬ), разобрали возможности на.
Пример функции ПОИСКПОЗ для поиска совпадения значений в Excel
формулами не получится, на одном листеПОИСКПОЗ(искомое_значение; массив; тип_поиска) являются равнозначными. ДляПример поиска: не как обычную, тех, кто понимает, Данный метод целесообразно использовать столбце D и копировать формулу в не содержит интересующуюФормула выше – это
Примеры использования функции ПОИСКПОЗ в Excel
-1 имена клиентов находятсяГде ячейка простых примерах, аФункция только кодом. экселевской книги (4– ищет заданное различения регистров можноПример 2. В Excel а как формулу
рекламировать ее не при поиске данных текстовую строку «_Sales», другие ячейки того нас информацию, но обычная функцияпозволяет не включать в столбце B:B1 также посмотрели ихИНДЕКСНина столбца: номер начала, значение в диапазоне дополнительно использовать функцию хранятся две таблицы,
массива. нужно 🙂 - в ежедневно обновляемом тем самым сообщая же столбца. имеет общий столбецВПР строку заголовков). Если=B2&COUNTIF($B$2:B2,B2)содержит объединенное значение совместное использование. Надеюсь,возвращает содержимое ячейки,: Спасибо огромное за номер конца, переток (строка или столбец) СОВПАД. которые на первыйКак это на самом без нее не внешнем диапазоне данных.ВПР
FL_Sal с основной таблицей, которая ищет точное совпадений нет, функция=B2&СЧЁТЕСЛИ($B$2:B2;B2)
Формула для поиска неточного совпадения текста в Excel
что данный урок которая находится на помощь и потраченно Р в начале и выдает порядковый
Если поиск с использованием
взгляд кажутся одинаковыми. деле работает: обходится ни один
Известна цена в
в какой таблице
- es и таблицей поиска. совпадение значения «Lemons»IFПосле этого Вы можетеlookup_value
- Вам пригодился. Оставайтесь пересечении заданных строки время.
- ветви, переток Р номер ячейки, где
рассматриваемой функции не Было решено сравнитьФункция ИНДЕКС выдает из сложный расчет в
Сравнение двух таблиц в Excel на наличие несовпадений значений
искать. Если виДавайте разберем следующий пример. в ячейках от(ЕСЛИ) возвращает пустую использовать обычную функцию(искомое_значение), а с нами и и столбца. Например,vladislav
оно было найдено. дал результатов, будет по одному однотипному диапазона цен C2:C161 Excel. Есть, однако, неизвестно, сколько строк
ячейке D3 находитсяCA_Sales У нас есть A2 до A9. строку.ВПР4 успехов в изучении на рисунке ниже: Здравствуйте, В верхнем левом Нам эта функция возвращен код ошибки столбцу этих таблиц содержимое N-ой ячейки одна проблема: эта данных возвратит сервер, значение «FL», формула– названия таблиц основная таблица (Main Но так какРезультатом функции, чтобы найти нужный– аргумент
Excel. формула возвращает значениеЕсть две (goo.gl/IDrlz, углу в ячейке поможет найти порядковые #Н/Д.
на наличие несовпадений. по порядку. При
Поиск ближайшего большего знания в диапазоне чисел Excel
функция умеет искать а первый столбец выполнит поиск в (или именованных диапазонов), table) со столбцом
IF заказ. Например:col_index_numАвтор: Антон Андронов из диапазона A1:C4, goo.gl/3QxnZ)примерно одинаковых таблицы: А1 введен номер
номера строки и
Если аргумент [тип_сопоставления] явно Реализовать способ сравнения этом порядковый номер данные только по не отсортирован в таблице в которых содержатьсяSKU (new) в каком именно
(ЕСЛИ) окажется вот
Находим(номер_столбца), т.е. номерВо второй части нашего которое находится на в одной из узла, для которого
столбца в таблице,
Особенности использования функции ПОИСКПОЗ в Excel
не указан или двух диапазонов ячеек.
нужной ячейки нам
совпадению одного параметра.
- алфавитном порядке.FL_Sales соответствующие отчеты о, куда необходимо добавить столбце находятся продажи такой горизонтальный массив:2-й столбца, содержащего данные, учебника по функции
- пересечении 3 строки них в столбце должны быть произведены где расположено нужное принимает число 0,Вид таблицы данных: находит функция ПОИСКПОЗ. А если уC1
- , если «CA» – продажах. Вы, конечно столбец с соответствующими за март, то<1,»»,3,»»,5,»»,»»,»»,»»,»»,»»,12,»»,»»,»»>товар, заказанный покупателем которые необходимо извлечь.
- ВПР и 2 столбца. «ОКПД», есть значения, следующие операции: число. Для примера, для поиска частичного
- Для сравнения значений, находящихся Она ищет связку нас их несколько? — это левая верхняя в таблице же, можете использовать ценами из другой не сможете задать
- ROW()-3Dan BrownЕсли Вам необходимо обновить(VLOOKUP) в ExcelСтоит отметить, что номера а во вторую
поиск совпадающих с
- формула: совпадения текстовых значений в столбце B:B названия товара иПредположим, что у нас ячейка диапазона (такжеCA_Sales обычные названия листов таблицы. Кроме этого, номер столбца дляСТРОКА()-3: основную таблицу (Main
- мы разберём несколько строк и столбцов эти значения надо А1=2404 значений в=ПОИСКПОЗ(«Альфа»;A2:G1;0)
- могут быть использованы со значениями из месяца ( есть база данных называемая начальной ячейкой).и так далее. и ссылки на у нас есть третьего аргумента функцииЗдесь функция=VLOOKUP(«Dan Brown2»,$A$2:$C$16,3,FALSE)
- table), добавив данные примеров, которые помогут задаются относительно верхней подставить. Но нет столбцах Е и… вычислит номер подстановочные знаки («?» столбца A:A используем
индекс поискпоз по 2 столбцам (Формулы/Formulas)
НектаринЯнварь по ценам товаровФормула
Результат работы функций диапазоны ячеек, например 2 таблицы поиска.ВПРROW=ВПР(«Dan Brown2»;$A$2:$C$16;3;ЛОЖЬ) из второй таблицы Вам направить всю
левой ячейки диапазона. однозначных значений у
F;
столбца в таблице,
— замена одного следующую формулу массива
) по очереди во
за разные месяцы:
ПОИСКПОЗ(«Апельсины»;C2:C7;0)ВПР‘FL Sheet’!$A$3:$B$10 Первая (Lookup table
. Вместо этого используется
(СТРОКА) действует какНаходим (Lookup table), которая
мощь
Например, если ту позиций, по которымесли совпадение обнаружено
где расположен магазин любого символа, «*» (CTRL+SHIFT+ENTER): всех ячейках склеенного
Нужно найти и вытащитьищет значение «Апельсины»и
, но именованные диапазоны
1) содержит обновленные
функция
дополнительный счётчик. Так3-й
находится на другомВПР же таблицу расположить можно сделать сравнение(можно среди ячеек столбцаАльфа — замена любогоФункция ПОИСКПОЗ выполняет поиск
из двух столбцов цену заданного товара в диапазоне C2:C7.ДВССЫЛ гораздо удобнее. номера
ПОИСКПОЗ как формула скопированатовар, заказанный покупателем листе или вна решение наиболее
в другом диапазоне,
было бы по Е и содержимое. Последний аргумент этой количества символов).
Трехмерный поиск по нескольким листам (ВПР 3D)
логического значения ИСТИНА диапазона A2:A161&B2:B161 и ( Начальную ячейку небудет следующий:Однако, когда таких таблицSKU (new), чтобы определить этот в ячейки F4:F9,Dan Brown другой рабочей книге амбициозных задач Excel. то формула вернет сумме, но есть ячейки G (номер функции (0) означает,
Если в объекте данных, в массиве логических выдает порядковый номерНектарин следует включать вЕсли данные расположены в
много, функцияи названия товаров, столбец. мы вычитаем число: Excel, то Вы Примеры подразумевают, что тот же результат:
таблица на 4,5к которой соответствует найденной что нам нужен переданном в качестве значений, возвращаемых функцией ячейки, где нашла) в определенном месяце этот диапазон. разных книгах Excel,ЕСЛИ а вторая (LookupMATCH(«Mar»,$A$1:$I$1,0)3
=VLOOKUP(«Dan Brown3»,$A$2:$C$16,3,FALSE) можете собрать искомое
- Вы уже имеетеЕсли массив содержит только позиций и суммы позиции) меньше нуля, точный поиск. аргумента просматриваемый_массив, содержится СОВПАД (сравнивает каждый точное совпадение. По (1 то необходимо добавить– это не table 2) –ПОИСКПОЗ(«Mar»;$A$1:$I$1;0)
из результата функции,
=ВПР(«Dan Brown3»;$A$2:$C$16;3;ЛОЖЬ) значение непосредственно в базовые знания о одну строку или могут двоиться). Хотел то в пустуюИНДЕКС(диапазон; номер_строки; номер_столбца) два и больше
- элемент диапазона A2:A12 сути, это первыйЯнварь — это количество столбцов, имя книги перед лучшее решение. Вместо
названия товаров и
В переводе на человеческий чтобы получить значениеНа самом деле, Вы формуле, которую вставляете том, как работает
- один столбец, т.е. сделать так, чтобы ячейку записываются значения– выбирает значение элементов, соответствующих искомому со значением, хранящимся способ, но ключевой), т.е. получить на которое нужно отсчитать
именованным диапазоном, например:
нее можно использовать старые номера язык, данная формула1 можете ввести ссылку в основную таблицу. эта функция. Если является вектором, то смотрел в столбец из соответствующих ячеек из диапазона по значению, будет возвращена в ячейке B2,
столбец создается виртуально выходе справа от начальной
=VLOOKUP($D$2,INDIRECT($D3&»Workbook1!_Sales»),2,FALSE) функциюSKU (old) означает:в ячейке на ячейку вКак и в предыдущем нет, возможно, Вам второй аргумент функции «Сумма» и «Регистратор» столбцов G и номеру строки и позиция первого вхождения
и возвращает массив прямо внутри формулы,152 ячейки, чтобы получить=ВПР($D$2;ДВССЫЛ($D3&»Workbook1!_Sales»);2;ЛОЖЬ)
ДВССЫЛ.Ищем символы «Mar» –F4
Использование ИНДЕКС ПОИСКПОЗ: как искать значение в двух столбцах одновременно
качестве искомого значения примере, Вам понадобится будет интересно начатьИНДЕКС на той же Н; столбца. Так, например, такого элемента. результатов сравнения). Если а не в, но автоматически, т.е. столбец, из которогоЕсли функция(INDIRECT), чтобы возвратитьЧтобы добавить цены из аргумент
(строка 4, вычитаем вместо текста, как
в таблице поиска с первой частиуказывает номер значения строке, но не
если совпадение обнаружено формула:miha_ функция ПОИСКПОЗ нашла ячейках листа. с помощью формулы. возвращается значение. ВДВССЫЛ нужный диапазон поиска. второй таблицы поискаlookup_value 3), чтобы получить
представлено на следующем (Lookup table) вспомогательный
этого учебника, в в этом векторе. могу сотворить правильную
среди ячеек столбца=ИНДЕКС(B2:G9;3;2): Добрый день, уважаемые значение ИСТИНА, будетПлюсы
ВПР в чистом этом примере значение
ссылается на другуюКак Вы, вероятно, знаете,
в основную таблицу,(искомое_значение);2 рисунке:
столбец с объединенными которой объясняются синтаксис При этом третий формулу. Единственно на Е и содержимое… выдаст нам форумчане. возвращена позиция его: Не нужен отдельный виде тут не возвращается из столбца книгу, то эта функция необходимо выполнить действие,Ищем в ячейках отв ячейкеЕсли Вы ищите только значениями. Этот столбец
и основное применение аргумент указывать необязательно. что хватило сил, ячейки G (номер
содержимое ячейки вСтолкнулся с трудностью. первого вхождения в столбец, работает и поможет, но есть D книга должна бытьДВССЫЛ известное как двойной A1 до I1F5
2-е должен быть крайнимВПРНапример, следующая формула возвращает так это подставление которой соответствует найденной 3-й строке 2-го При использовании формул массив. Функция ЕНД с числами и
несколько других способовПродажи открытой. Если жеиспользуется для того,ВПР – аргумент(строка 5, вычитаемповторение, то можете левым в заданном. Что ж, давайте
пятое значение из из столбца «Сумма»: позиции) больше нуля, столбца из диапазона индекс и поискпоз, возвратит значение ЛОЖЬ, с текстом. решить эту задачу.. она закрыта, функция чтобы вернуть ссылку,
или вложенныйlookup_array 3) и так сделать это без для поиска диапазоне.
приступим. диапазона A1:A12 (вертикальный=ИНДЕКС(‘[документ_2.xls]main’!$J$5:$J$6000;ПОИСКПОЗ(H5;'[документ_2.xls]main’!$H$5:$H$6000;0);1) то в пустую B2:G9. не могу добиться если она неМинусыЭто самый очевидный иК началу страницы сообщит об ошибке заданную текстовой строкой,ВПР(просматриваемый_массив);
далее. вспомогательного столбца, создав
Итак, формула сПоиск в Excel по вектор):vikttur ячейку записывается значение
ДВССЫЛ(адрес_как_текст) требуемого результата. А принимает значение ошибки: Ощутимо тормозит на простой (хотя и
Для выполнения этой задачи#REF!
а это как.Возвращаем точное совпадение –
SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3)) более сложную формулу:ВПР нескольким критериям
Данная формула возвращает третье: Выдумываете. Нет таблиц. из соответствующей ячееки
– превращает адресную
именно поиска не #Н/Д в качестве
больших таблицах (как не самый удобный) используется функция ГПР.(#ССЫЛ!). раз то, чтоЗапишите функцию аргументНАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3))=IFERROR(VLOOKUP($F$2,INDIRECT(«$B$»&(MATCH($F$2,Table4[Customer Name],0)+2)&»:$C16″),2,FALSE),»»)
может быть такой:Извлекаем 2-е, 3-е и значение из диапазонаvladislav
столбца G; строку в виде по одному столбцу,
аргумента. В этом и все формулы способ. Поскольку штатная
См. пример ниже.Урок подготовлен для Вас
нам сейчас нужно.ВПР
match_typeФункция=ЕСЛИОШИБКА(ВПР($F$2;ДВССЫЛ(«$B$»&(ПОИСКПОЗ($F$2;Table4[Customer Name];0)+2)&»:$C16″);2;ИСТИНА);»»)=VLOOKUP(B2&» «&C2,Orders!$A&$2:$D$2,4,FALSE)
т.д. значения, используя A1:L1(горизонтальный вектор):: Выдумываете. Нет таблиц.если совпадение обнаружено текста в настоящий
а по двум. случае функция ЕСЛИ
массива, впрочем), особенно функцияФункция ГПР выполняет поиск
командой сайта office-guru.ru Итак, смело заменяем, которая находит имя(тип_сопоставления).
SMALLВ этой формуле:
=ВПР(B2&» «&C2;Orders!$A&$2:$D$2;4;ЛОЖЬ) ВПРЕсли Вы уже работалиНуу, там скриншоты среди ячеек столбца адрес. Причем адресМожет что то вернет текстовую строку если указывать диапазоныВПР (VLOOKUP) по столбцуИсточник: https://www.ablebits.com/office-addins-blog/2014/07/29/vlookup-formula-examples/ в представленной выше товара в таблицеИспользовав(НАИМЕНЬШИЙ) возвращает$F$2Здесь в столбцах BИзвлекаем все повторения искомого с функциями были. Вот таблица F и содержимое запросто может склеиваться не так делаю? «есть», иначе – «с запасом» или
умеет искать только
ПродажиПеревел: Антон Андронов
формуле выражение сLookup table 1
0n-ое
Источник
В данной статье показаны 2 способа быстрого поиска значений в двумерных массивах.
Поскольку искомое значение может встретиться в нескольких строках обрабатываемого двумерного массива,
оба способа получают на выходе отфильтрованный двумерный массив.
Способы формирования отфильтрованных массивов — разные:
первый способ использует функцию ArrAutofilterEx
второй способ — функцию ArraySearchResults
Основные отличия и особенности этих 2 способов поиска:
- ArrAutofilterEx позволяет задавать несколько критериев поиска (фильтрации)
- ArrAutofilterEx ищет вхождение искомого текста в значения заданных столбцов (неточное совпадение)
-
ArrAutofilterEx при каждом вызове заново в цикле перебирает все элементы массива,
соответственно, при поиске 10 значений время работы кода увеличивается в 10 раз - ArraySearchResults позволяет использовать фильтрацию массива только по одному столбцу
- ArraySearchResults ищет совпадение искомого текста со значением столбца (точное совпадение)
-
ArraySearchResults производит поиск в заранее сформированной текстовой строке
Таким образом, перебираются все ячейки массива в цикле только один раз, и поиск 100 значений в массиве займёт ненамного больше времени, чем поиск 1 значения.
Примеры поиска в огромных массивах:
Поиск с использованием ArrAutofilterEx
Sub ПримерМедленногоПоискаВМассиве() t = Timer ИскомоеЗначение$ = 560 СтолбецДляПоиска& = 3 ' загружаем массив с листа arr = [a1:d30000].Value ' укорачиваем массив Arr, оставляя лишь те строки, ' где в заданном столбце есть искомое значение On Error Resume Next: Err.Clear resArr = ArrAutofilterEx(arr, СтолбецДляПоиска& & "=" & ИскомоеЗначение$) ' проверяем возвращеное функцией значение на наличие результатов поиска If Err Then Debug.Print "Такие строки в массиве не найдены": Exit Sub ' выводим из отфильтрованных строк значения первого столбца For i = LBound(resArr) To UBound(resArr) Debug.Print "Результат - строка " & i & " из " & UBound(resArr) & ": ", resArr(i, 1) Next i Debug.Print "Время: " & Timer - t & " сек." End Sub
Поиск с использованием ArraySearchResults
Sub ПримерБыстрогоПоискаВМассиве() t = Timer ИскомоеЗначение$ = 560 СтолбецДляПоиска& = 3 ' загружаем массив с листа arr = [a1:d30000].Value ' формируем строку поиска ss$ = SearchString(arr, СтолбецДляПоиска&) ' укорачиваем массив Arr, оставляя лишь те строки, ' где в заданном столбце есть искомое значение resArr = ArraySearchResults(arr, ss$, ИскомоеЗначение$) ' проверяем возвращеное функцией значение на наличие результатов поиска If Not IsArray(resArr) Then Debug.Print "Такие строки в массиве не найдены": Exit Sub ' выводим из отфильтрованных строк значения первого столбца For i = LBound(resArr) To UBound(resArr) Debug.Print "Результат - строка " & i & " из " & UBound(resArr) & ": ", resArr(i, 1) Next i Debug.Print "Время: " & Timer - t & " сек." End Sub
Код функции ArraySearchResults:
Function ArraySearchResults(ByRef arr, ByRef searchStr As String, ByVal txt As String, _ Optional ByVal Sep As String = "%$%") As Variant ' функция получает в качестве параметров массив Arr, ' и заранее сформированную строку SearchString из значений ячеек нужного столбца массива ' По этой строке SearchString функция ищет строки массива, в которые встречается значение txt, ' и возвращает усечённый массив, содержащий только подходящие строки ' Поиск ведётся по ТОЧНОМУ совпадению значений ro& = 0: spl = Split(searchStr, Sep & txt & Sep) If UBound(spl) = 0 Then Exit Function ' нет в массиве нужных строк ' перебираем результаты поиска, вычисляя номера строк в исходном массиве For i = LBound(spl) To UBound(spl) - 1 txt = spl(i): ro& = ro& + 1 + (Len(spl(i)) - Len(Replace(spl(i), Sep, ""))) / Len(Sep) 2 spl(i) = ro& Next i ' подготавливаем массив для результатов: ' по ширине - как исходный, по высоте - содержащий столько строк, сколько найдено совпадений ReDim resArr(1 To UBound(spl), LBound(arr, 2) To UBound(arr, 2)) ' заполняем новый массив For i = LBound(spl) To UBound(spl) - 1 For j = LBound(arr, 2) To UBound(arr, 2) resArr(i + 1, j) = arr(spl(i), j) Next j Next i ArraySearchResults = resArr End Function Function SearchString(ByRef arr, ByVal ArrayColumn As Long, _ Optional ByVal Sep As String = "%$%") As String ' Объединяет все значения из столбца ArrayColumn массива Arr в одну текстовую строку, ' в качестве разделителя элементов используя строку Sep ' Для ускорения конкатенации длинных строк используются ' промежуточные переменные buffer$ и buffer2$ buffer$ = "": buffer2$ = "": Sep2$ = Sep$ & Sep$: Const BufferLen& = 6000 On Error Resume Next: Err.Clear: SearchString = Sep2$ If ArrayColumn > UBound(arr, 2) Or ArrayColumn < LBound(arr, 2) Then Exit Function For i = LBound(arr) To UBound(arr) buffer$ = buffer$ & Trim$(arr(i, ArrayColumn)) & Sep2$ If Len(buffer$) > BufferLen& Then buffer2$ = buffer2$ & buffer$: buffer$ = "" If Len(buffer2$) > BufferLen& * 20 Then _ SearchString = SearchString & buffer2$: buffer2$ = "" End If Next i SearchString = SearchString & buffer2$ & buffer$ End Function
При поиске только одного значения время работы обоих макросов поиска не сильно отличается — но обычно функция ArraySearchResults оказывается немного быстрее.