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 для Microsoft 365 Excel для Интернета Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше
Предположим, что вы хотите найти расширение телефона сотрудника, используя его номер эмблемы или правильную ставку комиссионных за объем продаж. Вы можете искать данные для быстрого и эффективного поиска определенных данных в списке, а также для автоматической проверки правильности данных. После поиска данных можно выполнить вычисления или отобразить результаты с возвращаемой величиной. Существует несколько способов поиска значений в списке данных и отображения результатов.
Что необходимо сделать
-
Точное совпадение значений по вертикали в списке
-
Подыыывка значений по вертикали в списке с помощью приблизительного совпадения
-
Подстановка значений по вертикали в списке неизвестного размера с использованием точного совпадения
-
Точное совпадение значений по горизонтали в списке
-
Подыыывка значений по горизонтали в списке с использованием приблизительного совпадения
-
Создание формулы подступа с помощью мастера подметок (только в Excel 2007)
Точное совпадение значений по вертикали в списке
Для этого можно использовать функцию ВLOOKUP или сочетание функций ИНДЕКС и НАЙТИПОЗ.
Примеры ВРОТ
Дополнительные сведения см. в этой информации.
Примеры индексов и совпадений
Что означает:
=ИНДЕКС(нужно вернуть значение из C2:C10, которое будет соответствовать ПОИСКПОЗ(первое значение «Капуста» в массиве B2:B10))
Формула ищет в C2:C10 первое значение, соответствующее значению «Ольга» (в B7), и возвращает значение в C7(100),которое является первым значением, которое соответствует значению «Ольга».
Дополнительные сведения см. в функциях ИНДЕКС иФУНКЦИЯ MATCH.
К началу страницы
Подыыывка значений по вертикали в списке с помощью приблизительного совпадения
Для этого используйте функцию ВЛВП.
Важно: Убедитесь, что значения в первой строке отсортировали в порядке возрастания.
В примере выше ВРОТ ищет имя учащегося, у которого 6 просмотров в диапазоне A2:B7. В таблице нет записи для 6 просмотров, поэтому ВРОТ ищет следующее самое высокое совпадение меньше 6 и находит значение 5, связанное с именем Виктор,и таким образом возвращает Его.
Дополнительные сведения см. в этой информации.
К началу страницы
Подстановка значений по вертикали в списке неизвестного размера с использованием точного совпадения
Для этого используйте функции СМЕЩЕНИЕ и НАЙТИВМЕСЯК.
Примечание: Используйте этот подход, если данные в диапазоне внешних данных обновляются каждый день. Вы знаете, что цена находится в столбце B, но вы не знаете, сколько строк данных возвращает сервер, а первый столбец не отсортировали по алфавиту.
C1 — это левые верхние ячейки диапазона (также называемые начальной).
MATCH(«Оранжевая»;C2:C7;0) ищет «Оранжевые» в диапазоне C2:C7. В диапазон не следует включать запускаемую ячейку.
1 — количество столбцов справа от начальной ячейки, из которых должно быть возвращено значение. В нашем примере возвращается значение из столбца D, Sales.
К началу страницы
Точное совпадение значений по горизонтали в списке
Для этого используйте функцию ГГПУ. См. пример ниже.
Г ПРОСМОТР ищет столбец «Продажи» и возвращает значение из строки 5 в указанном диапазоне.
Дополнительные сведения см. в сведениях о функции Г ПРОСМОТР.
К началу страницы
Подыыывка значений по горизонтали в списке с использованием приблизительного совпадения
Для этого используйте функцию ГГПУ.
Важно: Убедитесь, что значения в первой строке отсортировали в порядке возрастания.
В примере выше ГЛЕБ ищет значение 11000 в строке 3 указанного диапазона. Она не находит 11000, поэтому ищет следующее наибольшее значение меньше 1100 и возвращает значение 10543.
Дополнительные сведения см. в сведениях о функции Г ПРОСМОТР.
К началу страницы
Создание формулы подступа с помощью мастера подметок (толькоExcel 2007 )
Примечание: В Excel 2010 больше не будет надстройки #x0. Эта функция была заменена мастером функций и доступными функциями подменю и справки (справка).
В Excel 2007 создается формула подытов на основе данных на основе данных на основе строк и столбцов. Если вы знаете значение в одном столбце и наоборот, мастер под поисков помогает находить другие значения в строке. В формулах, которые он создает, используются индекс и MATCH.
-
Щелкните ячейку в диапазоне.
-
На вкладке Формулы в группе Решения нажмите кнопку Под поиск.
-
Если команда Подытов недоступна, вам необходимо загрузить мастер под надстройка подытогов.
Загрузка надстройки «Мастер подстройок»
-
Нажмите кнопку Microsoft Office , выберите Параметры Excel и щелкните категорию Надстройки.
-
В поле Управление выберите элемент Надстройки Excel и нажмите кнопку Перейти.
-
В диалоговом окне Доступные надстройки щелкните рядом с полем Мастер подстрок инажмите кнопку ОК.
-
Следуйте инструкциям мастера.
К началу страницы
Нужна дополнительная помощь?
Функции ИНДЕКС и ПОИСКПОЗ в Excel – лучшая альтернатива для ВПР
Смотрите также от пользователя. соответствующее ему имя. но если слово: Имеются две таблицы,vikttur добавить еще и_Boroda_ исходного списка, определяет,Как Вы, вероятно, уже/ на формулы, которые функцииВПР все преимущества переходаПОИСКПОЗ(ИНДЕКС):Этот учебник рассказывает о
Когда человек вводит не в начале на лист 1: Я о чем? запятую и использовать: Такой вариант содержится ли в заметили (и неПОИСКПОЗ мы уже обсуждалиINDEX, которая ищет в сопределяет относительную позицию=INDEX(A1:C10,2,3) главных преимуществах функций
массу (пример -Одним из простых способов предложения — сыпется. расписаны объемы металлоконструкцийДопустим, найти «5» формулу200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПРОСМОТР(;-ПОИСК(» «&A2&»,»;» «&D2:D5&»,»);E2:E5) нем значение-критерий. Если раз), если вводитьможет искать по в этом уроке,(ИНДЕКС), из которого ячейках отВПР искомого значения в=ИНДЕКС(A1:C10;2;3)ИНДЕКС 34,0) и плотность решения проблемы являетсякитин и их вес: в строке «15324».=ПРОСМОТР(;-ПОИСК(«, «&A2&»,»;», «&D2:D5&»,»);E2:E5)
- Если есть тексты значение не содержится,
- некорректное значение, например, значениям в двух
- с одним лишь нужно извлечь значение.
- B5на связку
- заданном диапазоне ячеек,Формула выполняет поиск в
- и (пример — 1290)
- использование вспомогательного столбца.: легко
- _____________A________________________ B_______C
- ЕОШ(ПОИСК(5;»15324″)) обязана перебратьdevray
Базовая информация об ИНДЕКС и ПОИСКПОЗ
«один» и «одиннадцать», то возвращается ошибка которого нет в столбцах, без необходимости отличием. Угадайте каким? В нашем случаедоИНДЕКС а диапазонеПОИСКПОЗ
в соответствующие ячейки, В ячейках этого200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ЕНД(ПОИСКПОЗ(1;—ЕЧИСЛО(ПОИСК({«Дефектоскопист»:»Электрогазосварщик»:»Электросварщик»};B2));0));»»;»+ретик»)- швеллер [24У все элементы массива.: _Boroda_, спасибо большое а ищем «один», #ЗНАЧ! В противном просматриваемом массиве, формула создания вспомогательного столбца!Как Вы помните, синтаксис это
ИНДЕКС – синтаксис и применение функции
D10иИНДЕКСA1:C10в Excel, которые то excel ищет столбца будут находитьсяAlexM
по ГОСТ 8240-93
То же касается
за пояснения! А то найдет именно
- случае возвращается числовоеИНДЕКСПредположим, у нас есть функцииA2:A10
- значение, указанное вПОИСКПОЗиспользует это числои возвращает значение делают их более в массиве совпадение абсолютные значения разности: С245)…….т……5.00 1/ПОИСК(5;»15324″).
- то и сегодня «один» значение, соответствующее номеру/ список заказов, иINDEX. ячейке, а тратить время (или числа) и
ячейки во привлекательными по сравнению и выдает его исходного числа икитин- уголки L50x5ЕЧИСЛО(ПОИСК(5;»15324″)) находит второй
полдня сижу надесли ищем фразу, начальной позиции вхождения
ПОИСКПОЗ
мы хотим найти
(ИНДЕКС) позволяет использоватьЗатем соединяем обе частиA2 на изучение более возвращает результат из2-й с в ячейке Результат баллов из списка., зачем ПОИСКПОЗ() по ГОСТ 8509-93 символ и успокаивается.
этой задачей и в которой не критерия в значениесообщает об ошибке сумму по двум три аргумента: и получаем формулу:: сложной формулы никто
ПОИСКПОЗ – синтаксис и применение функции
соответствующей ячейки.строке иВПР (пример — 31,87).Разумеется, решение нашей проблемы200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК({«Дефектоскопист»:»Электрогазосварщик»:»Электросварщик»};B2)));»+ретик»;»») C235………т……7.00Т.е. применение ЕЧИСЛО()
все без особых должно быть запятых, из списка (здесь#N/A критериям –INDEX(array,row_num,[column_num])=INDEX($A$2:$A$10;MATCH(«Russia»;$B$2:$B$10;0))=VLOOKUP(A2,B5:D10,3,FALSE) не хочет.Ещё не совсем понятно?
3-м
. Вы увидите несколько
Только вот не будет найдено вкитин- пластины t24
выгоднее.
успехов... Попробую разобраться!
- то вот так нам не важен(#Н/Д) илиимя покупателяИНДЕКС(массив;номер_строки;[номер_столбца])=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))=ВПР(A2;B5:D10;3;ЛОЖЬ)Далее я попробую изложить
- Представьте функциистолбце, то есть примеров формул, которые знаю как это
- строке, в которой: по ГОСТ 8200-70vikttur :))Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПРОСМОТР(;-ПОИСК(«, «&A2&»,»;», «&D2:D5&»,»);E2:E5) номер позиции, важно,
- #VALUE!(Customer) иИ я поздравляю техПодсказка:Формула не будет работать, главные преимущества использованияИНДЕКС из ячейки помогут Вам легко значение на пересечении
- это значение являетсяAlexM С245……..т…….1.50: С делением поторопился.zssekii что это число);(#ЗНАЧ!). Если Выпродукт из Вас, ктоПравильным решением будет если значение вПОИСКПОЗи
- C2 справиться со многими строки и столбца наименьшим.,- пластины t20 Ведь тоже пересчет:: Nic70y,
Функция ЕСЛИОШИБКА() используется для хотите заменить такое(Product). Дело усложняется догадался! всегда использовать абсолютные ячейкеиПОИСКПОЗ
. сложными задачами, перед найти?Чтобы выбрать соответствующее значениепросто ПОИСК не по ГОСТ 8200-70 только до нахождения.=ЕСЛИ(ЕОШ(ПОИСК(«, один,»;»,»&» «&D7&»,»;1)>0);»не верно»;»верно»)Ну вот это подавления ошибки #ЗНАЧ! сообщение на что-то тем, что одинНачнём с того, что ссылки дляA2ИНДЕКСв таком виде:Очень просто, правда? Однако, которыми функцияЗаранее благодарен! и соответствующее ему работал, а до С245……..т……..0.30 Наверное, быстрее. Проверять
Как использовать ИНДЕКС и ПОИСКПОЗ в Excel
Writer конечно круто: заменяя ее на более понятное, то покупатель может купить запишем шаблон формулы.ИНДЕКСдлиннее 255 символов.в Excel, а=INDEX(столбец из которого извлекаем,(MATCH на практике ВыВПРCzeslav имя, достаточно использовать ИЛИ мозгов неНа листе 2 не хочется.: Очень нужно написать»*»&A2&»*» число 0;
можете вставить формулу сразу несколько разных Для этого возьмёми Вместо неё Вам Вы решите –
(искомое значение,столбец в далеко не всегдабессильна.
: Так? следующие формулы с хватило
имеется таблица сMCH условие для условногоСпасибо большое!Функция ЕСЛИ() заменяет числовые
с продуктов, и имена уже знакомую намПОИСКПОЗ
нужно использовать аналогичную
остаться с
котором ищем,0)) знаете, какие строкаВ нескольких недавних статьях
- Pain205 использованием функций ИНДЕКСAlexM данными о количестве: Виктор, ПОИСК(5;»15324″) возвращает форматирования.Nic70y значения, возвращенные функциейИНДЕКС покупателей в таблице формулу, чтобы диапазоны поиска формулу
- ВПР=ИНДЕКС(столбец из которого извлекаем;(ПОИСКПОЗ(искомое и столбец Вам мы приложили все: Не так. и ПОИСКПОЗ. Для: Для уменьшения количества м2 краски на одно единственное значениеПоиск значения ,: двадцать один и
ПОИСК(), на номер
и
на листеИНДЕКС не сбились приИНДЕКСили переключиться на значение;столбец в котором нужны, и поэтому усилия, чтобы разъяснитьПостараюсь объяснить не ближайшего значения: букв в формуле одну тонну разных — 2, например «Р», в
т.д. позиции значения в
ПОИСКПОЗLookup table/ копировании формулы в/ИНДЕКС ищем;0)) требуется помощь функции начинающим пользователям основы образно, а наДля имени соответствующему ближайшему можно поэкспериментировать с элементов:
и на мой массиве, при этомвот это я списке. Если значениев функциюрасположены в произвольномПОИСКПОЗ другие ячейки.ПОИСКПОЗ/Думаю, ещё проще будетПОИСКПОЗ
функции
своем конкретном примере:
значению: массивом, например так_A_____ B_______C взгляд, что ЕОШ, текс ищется как не учел =0 (соответствует ошибкеЕСЛИОШИБКА порядке.и добавим вВы можете вкладывать другие:ПОИСКПОЗ понять на примере..ВПРЯ приложил файлГде столбец «D» -200?’200px’:»+(this.scrollHeight+5)+’px’);»>{«ефект»:»рогаз»:»росва»}24У…….. т……….35 что ЕЧИСЛО будет
Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?
часть ячейки, таквсё, ухожу на #ЗНАЧ!), то возвращается.Вот такая формула неё ещё одну функции Excel в=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0)). Предположим, у ВасФункцияи показать примеры и вставил туда наш вспомогательный столбец,Пытливый27У…….. т……….33.2 выполнятся одинаково по и полностью. Например, пенсию! число 30. ВСинтаксис функцииИНДЕКС функциюИНДЕКС=ИНДЕКС(D5:D10;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B5:B10=A2;0);0))1. Поиск справа налево. есть вот такойMATCH более сложных формул
пример с комментариями. а столбец «B»:L50x5….. т………52 времени. если в какая-тоsekii принципе, вместо 30ЕСЛИОШИБКА/ПОИСКПОЗи4. Более высокая скоростьКак известно любому
4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:
список столиц государств:(ПОИСКПОЗ) в Excel для продвинутых пользователей. Результат должен браться — столбец сAlexML75x6….. т……….44Вопрос в самой ячейка содержит «: Nic70y, можно указать любоеочень прост:ПОИСКПОЗ, которая будет возвращатьПОИСКПОЗ работы. грамотному пользователю Excel,Давайте найдём население одной ищет указанное значение Теперь мы попытаемся, именно с пересечения именами. Сразу же,L90x7….. т………37
функции ПОИСК(что_ищем;массив_где_ищем), она барабан», это тожеА вот только число, которое большеIFERROR(value,value_if_error)решает задачу: номер столбца., например, чтобы найтиЕсли Вы работаетеВПР из столиц, например, в диапазоне ячеек если не отговорить строки с заданным добавлю (для ясности),китин-t6……….т………42.5 и в том подходит не пойму, в номера последней заполненной
ЕСЛИОШИБКА(значение;значение_если_ошибка){=INDEX(‘Lookup table’!$A$2:$C$13,MATCH(1,(A2=’Lookup table’!$A$2:$A$13)*=INDEX(Ваша таблица,(MATCH(значение для вертикального минимальное, максимальное или с небольшими таблицами,не может смотреть Японии, используя следующую и возвращает относительную Вас от использования значением плотности и что столбец «C»,-t20……..т………12.7 и в другом
Михаил С.
конце точка с
позиции Исходного спискаГде аргумент(B2=’Lookup table’!$B$2:$B$13),0),3)} поиска,столбец, в котором ближайшее к среднему то разница в влево, а это формулу: позицию этого значенияВПР столбца с заданным является столбцом соМужики спасибо!Так вот не
варианте будет выполнятся: А что искать запятой после 2-ки (это нужно дляvalue{=ИНДЕКС(‘Lookup table’!$A$2:$C$13;ПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13)* искать,0)),(MATCH(значение для горизонтального значение. Вот несколько быстродействии Excel будет, значит, что искомое=INDEX($D$2:$D$10,MATCH(«Japan»,$B$2:$B$10,0)) в диапазоне., то хотя бы значением массовой доли значениями баллов.Вы не совсем могу сделать поиск одинаково, если нашла нужно, «Р» (эр) это зачем? правильной сортировки функцией(значение) – это(B2=’Lookup table’!$B$2:$B$13);0);3)}
поиска,строка в которой вариантов формул, применительно скорее всего, не значение должно обязательно=ИНДЕКС($D$2:$D$10;ПОИСКПОЗ(«Japan»;$B$2:$B$10;0))Например, если в диапазоне показать альтернативные способы селитры.Решение «хардкор» с использованием меня поняли: части текста в значение то сразу или «P» (pi)?E$5;2 НАИМЕНЬШИЙ()); значение, проверяемое наЭта формула сложнее других, искать,0)) к таблице из
заметная, особенно в находиться в крайнемТеперь давайте разберем, чтоB1:B3 реализации вертикального поискаP.S.: Массив на формул массива (длямне нужна была столбце A на выдала результат, не Впрочем, я неNic70y
Функция НАИМЕНЬШИЙ() сортирует массив
предмет наличия ошибки
которые мы обсуждали=ИНДЕКС(Ваша таблица,(MATCH(значение для вертикального предыдущего примера: последних версиях. Если левом столбце исследуемого делает каждый элементсодержатся значения New-York, в Excel. втором и третьем любителей и тех, формула, которая: лист 1, как
нашла - пробежит
нашел ни того,
: по правильному правилу номеров строк по (в нашем случае ранее, но вооруженные поиска,столбец, в котором1. же Вы работаете диапазона. В случае этой формулы: Paris, London, тогдаЗачем нам это? – листе еще только кто просто хочет- берет Ф.И.О в столбце A всю строку до ни другого… должно быть возрастанию; – результат формулы знанием функций искать,0)),(MATCH(значение для горизонтальногоMAX с большими таблицами, сФункция
следующая формула возвратит спросите Вы. Да, начал заполнять. Там потренироваться в создании человека (столбец 1), на листе 2 конца.ran200?’200px’:»+(this.scrollHeight+5)+’px’);»>;ЛОЖЬФункция ДВССЫЛ() возвращает массивИНДЕКСИНДЕКС поиска,строка в которой(МАКС). Формула находит которые содержат тысячиПОИСКПОЗMATCH цифру потому что огромное количество значений
формул массива).- находит его и сформировать наvikttur: Условие для УФ, что = последовательных чисел;/и
ИНДЕКС и ПОИСКПОЗ – примеры формул
искать,0)) максимум в столбце строк и сотни/(ПОИСКПОЗ) ищет значение3ВПР в очень плохомПоиск ближайшего значения в должность (столбец 2) листе 1 в
Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС
: А ведь действительно! — СОДЕРЖИТ «Р»!!!! точному поиску,Функция ИНДЕКС() возвращает текстовыеПОИСКПОЗПОИСКПОЗОбратите внимание, что дляD формул поиска, ExcelИНДЕКС «Japan» в столбце, поскольку «London» –
– это не скане с листа, массиве (CTRL+SHIFT+ENTER): и уже ПОТОМ… столбце D ячейку Зарапортовался.Writerно можно ;0 значения из Исходного); а аргументВы одолеете ее. двумерного поиска нужнои возвращает значение будет работать значительно, столбец поиска можетB это третий элемент единственная функция поиска напечатанного на печатнойПоиск соответствующего ему имениНо с Вашей с соответствущим числом
Прошу прощения общественности: Это не подходит, или ;ничего - списка, из строк,
value_if_error
Самая сложная часть
указать всю таблицу из столбца быстрее, при использовании быть, как в
- , а конкретно – в списке. в Excel, и машинке. И чтобы в массиве (CTRL+SHIFT+ENTER):
помощью у меня
из столбца С
- за невольное введение нужно задать массив, это равноценно. номера которых были(значение_если_ошибка) – это – это функция в аргументеCПОИСКПОЗ
- левой, так и в ячейках
=MATCH("London",B1:B3,0)
её многочисленные ограничения
не перебирать околоДва способа, которые показаны получилось!!! на лист 2. в заблуждение. где искать. Аbuchlotnik получены на предыдущем значение, которое нужноПОИСКПОЗarray
Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)
той же строки:и в правой частиB2:B10=ПОИСКПОЗ(«London»;B1:B3;0) могут помешать Вам 50 листов с выше, возвращают толькоЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК({«Дефектоскопист»:»Электрогазосварщик»:»Электросварщик»};ВПР(A2;Лист1!A:B;2;0))));»+ретик»;»») Надеюсь задача понятна.lapink2000 ячейка, которую надо
: затем, что по шаге. возвратить, если формула, думаю, её нужно(массив) функции=INDEX($C$2:$C$10,MATCH(MAX($D$2:I$10),$D$2:D$10,0))ИНДЕКС диапазона поиска. Пример:, и возвращает число
Функция
получить желаемый результат
этими таблицами хотел
одно значение. Поэтому,Второй лист.Пробовали варианты с: Еще думаю можно выделить, этого текста умолчанию последний аргументВ предельном случае м.б. выдаст ошибку. объяснить первой.
INDEX
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МАКС($D$2:I$10);$D$2:D$10;0))
вместо
Как находить значения,3MATCH во многих ситуациях. сделать вот такой когда нескольким именамСПАСИБО!!! функциями ПОИСК и так (но пробовал) не содержит. ИСТИНА, т.е. приблизительное
найдено столько же
Например, Вы можете вставить
MATCH(1,(A2=’Lookup table’!$A$2:$A$13),0)*(B2=’Lookup table’!$B$2:$B$13)
О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ
(ИНДЕКС).Результат: BeijingВПР которые находятся слева, поскольку «Japan» в(ПОИСКПОЗ) имеет вот С другой стороны, расчетный файл. соответствуют равные значенияZak ИНДЕКС, и другие,=ИЛИ(ЕЧИСЛО(ПОИСК(A1;$A$1:$A$2)))Writer совпадение, а нужно значений, сколько содержится формулу из предыдущегоПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13);0)*(B2=’Lookup table’!$B$2:$B$13)А теперь давайте испытаем2.. В целом, такая покажет эту возможность списке на третьем такой синтаксис: функцииPain205
- баллов, формула возвращает: Добрый день. Прошу соответствие не ищется.=ПОИСКПОЗ(9E307;ПОИСК(A1;$A$1:$A$2)): Р это для ЛОЖЬ (оно же в исходном списке примера в функцию
- В формуле, показанной выше, этот шаблон наMIN замена увеличивает скорость в действии. месте.MATCH(lookup_value,lookup_array,[match_type])ИНДЕКС
: Вот файл. только первое имя помочь, готов отблагодарить Может есть вариантlapink2000 примера, на самом ноль, оно же (когда все значенияЕСЛИОШИБКА искомое значение – практике. Ниже Вы(МИН). Формула находит работы Excel на2. Безопасное добавление илиФункцияПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])иVlad999
Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу
из списка. в денежном эквиваленте с промежуточной задачей.: * (не пробовал) деле желательно искать ничего) — точное удовлетворяют критерию). Поэтому
вот таким образом: это видите список самых минимум в столбце13% удаление столбцов.INDEXlookup_valueПОИСКПОЗ: для С7, для
Итак, каким же образом за достойную помощь. Уже несколько днейlapink2000 текст, присвоив его
совпадение.
формулу массива нужно распространять
=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),1 населённых стран мира.
D.Формулы с функцией(ИНДЕКС) использует(искомое_значение) – это– более гибкие С8 попробуйте сами можно заставить Excel Есть две таблицы, бьюсь, решил спросить: и так: из ячейки. Т.е,Можно переписать формулу на диапазон той
"Совпадений не найдено., а массив поиска Предположим, наша задачаи возвращает значениеВлияние
ВПР3 число или текст, и имеют ряд по аналогии.
вернуть список всех в двух из у бывалых.=СЧЁТЕСЛИ($A$1:$A$2;»*»&A1&»*») типа ПОИСК(А$2$; а как же размерности, что Попробуйте еще раз!»)
– это результат узнать население США из столбцаВПРперестают работать илидля аргумента который Вы ищите. особенностей, которые делают
Код =ИНДЕКС(‘Total nitrogen’!$B$3:$FY$63;ПОИСКПОЗ($C$3;’Total имен с интересующими них адреса объектовabtextimelapink2000 вот здесь не200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ВПР(«*»&A2&»*»;D$2:E$5;2;0)
и исходный список.=ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0)); умножения. Хорошо, что в 2015 году.Cна производительность Excel возвращают ошибочные значения,row_num
- Аргумент может быть их более привлекательными, nitrogen’!$A$3:$A$63;0);ПОИСКПОЗ($C$4;’Total nitrogen’!$B$2:$FY$2;0)) нас значениями баллов , необходимо взять: Сорри, ошибки …: и наверное так: ячейку , какКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ВПР(«*»&A2&»*»;D$2:E$5;2;ЛОЖЬ) это всё Вышеуказанная формула массива»Совпадений не найдено. же мы должны
Хорошо, давайте запишем формулу.
той же строки:
особенно заметно, если если удалить или(номер_строки), который указывает значением, в том по сравнению сКазанский при наличии дубликатов
- адреса из первойpabchek=ПОИСКПОЗ(«*»&A1&»*»;$A$1:$A$2;) в формуле, а одно и то будет возвращать несколько Попробуйте еще раз!») перемножить и почему? Когда мне нужно=INDEX($C$2:$C$10,MATCH(MIN($D$2:I$10),$D$2:D$10,0))
рабочая книга содержит
добавить столбец в
из какой строки числе логическим, илиВПР:
ближайших значений? и найти их: можно и формуламиlapink2000
массив, типа А2:L19)
же
значений, поэтому передИ теперь, если кто-нибудь Давайте разберем все создать сложную формулу=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МИН($D$2:I$10);$D$2:D$10;0)) сотни сложных формул
таблицу поиска. Для
нужно возвратить значение.
ссылкой на ячейку..Pain205Есть два решения с во второй. Точных200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ПРОСМОТР(;-ПОИСК(‘лист 2′!A$3:A$67;A4);’лист 2’!C$3:C$67);»»): Последний вариант дляМихаил С.sekii вводом формулы нужно введет ошибочное значение,
Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ
по порядку: в Excel сРезультат: Lima массива, таких как функции Т.е. получается простаяlookup_arrayБазовая информация об ИНДЕКС, зависимость очень линейная использованием вспомогательного столбца. совпадений может итолько нужно более одномерного массива ессно.:: buchlotnik, выделить сразу весь формула выдаст вотБерем первое значение в
вложенными функциями, то3.ВПР+СУММВПР формула:(просматриваемый_массив) – диапазон и ПОИСКПОЗ (по крайней мере, Первое без, а не быть, так точное соответствие. Например,lapink2000GuestАга, понял. Спасибо! диапазон, т.е. ячейки такой результат: столбце я сначала каждую
AVERAGE. Дело в том,любой вставленный или=INDEX($D$2:$D$10,3) ячеек, в котором
Используем функции ИНДЕКС и
для приведенных данных).
второе с использованием
как таблицы составлены
в ячейке А4: и второй -: {/post}{/quote}devrayС10:С19Если Вы предпочитаете вA вложенную записываю отдельно.(СРЗНАЧ). Формула вычисляет что проверка каждого удалённый столбец изменит=ИНДЕКС($D$2:$D$10;3) происходит поиск.
ПОИСКПОЗ в Excel
Поэтому можно составить
формул массива. не по единому значение 25К1 не тоже :)Прикрепила проблему: Здравствуйте!, ввести формулу в случае ошибки оставить(Customer) на листеИтак, начнём с двух среднее в диапазоне
- значения в массиве результат формулы, посколькуФормула говорит примерно следующее:match_typeПреимущества ИНДЕКС и ПОИСКПОЗ аналитическую формулу иСначала подготовим для себя правилу. Прошу сначала соответствует искомому изRSWriter
- Вижу, что формула Строке формул и ячейку пустой, тоMain table функцийD2:D10 требует отдельного вызова
- синтаксис ищи в ячейках(тип_сопоставления) – этот перед ВПР не таскать огромные
- вспомогательный столбец. Первая об говорить решение, листа 2 (скорее: Посмотрел, сколько коментов: {/post}{/quote} рабочая, но мне нажать можете использовать кавычкии сравниваем егоПОИСКПОЗ, затем находит ближайшее функцииВПР от аргумент сообщает функции
ИНДЕКС и ПОИСКПОЗ – таблицы. ячейка будет содержать дальше договоримся об всего рус/лат шрифты на мой вопрос,Прикрепила проблему{/post}{/quote} в ней многоеCRTL+SHIFT+ENTER
(«»), как значение со всеми именами, которые будут возвращать к нему иВПРтребует указывать весьD2ПОИСКПОЗ примеры формулА главное - формулу: оплате. Файл выложить — не проверял) в т.ч. поPardon, формат исправлен непонятно(( Не первый. второго аргумента функции покупателей в таблице номера строки и
возвращает значение из. Поэтому, чем больше диапазон и конкретныйдо, хотите ли ВыКак находить значения, которые не набивать их,которую затем перетягиваем (копируем) пока нет возможности.pabchek скорости обработки иМихаил С. день пытаюсь понятьДля скрытия ошибок #ССЫЛКА!,
ЕСЛИОШИБКА на листе столбца для функции столбца
ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel
значений содержит массив номер столбца, изD10 найти точное или находятся слева внося ошибки (см. в другие ячейкиСаня: проверил — так решил уточнить задачку: =СУММ(-НЕ(ЕОШ(ПОИСК(B$1;$A$2:$Q$2)))) синтаксис. возвращаемой формулой массива,. Вот так:Lookup tableИНДЕКСC и чем больше которого нужно извлечьи извлеки значение приблизительное совпадение:Вычисления при помощи ИНДЕКС примечания на втором вспомогательного столбца.: неточный поиск?
и есть — мне нужноWriter
1)В формуле отсутствует
к диапазону
IFERROR(INDEX(массив,MATCH(искомое_значение,просматриваемый_массив,0),»»)(A2:A13).:той же строки: формул массива содержит данные. из третьей строки,1 и ПОИСКПОЗ листе).Формула должна возвращать номересли опишешь алгоритм,abtextime было найти в: Михаил, огромное человеческое Искомое_значение, хотя в
С10:С19ЕСЛИОШИБКА(ИНДЕКС(массив;ПОИСКПОЗ(искомое_значение;просматриваемый_массив;0);»»)Если совпадение найдено, уравнениеПОИСКПОЗ для столбца=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)) медленнее работает Excel.
есть таблица
ячейки
не указан и столбцу помощью функции ЛИНЕЙН) находится значение, наиболее поиск, то можно200?’200px’:»+(this.scrollHeight+5)+’px’);»>Public Function MyF(Name As значения, которые содержатRS является обязательным. Но форматирования. одна формула, описанная1 в столбцеРезультат: MoscowС другой стороны, формула
A1:C10D4
– находит максимальное
Поиск по нескольким критериям
коэффициенты для линейной
office-guru.ru
Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть1. Обычный поиск
близкое к искомому. написать тебе обработку. String, TypesRange, Weight в себе часть: Добрый день, ведь работает!В этом случае будут в этом учебнике,(ИСТИНА), а еслиBИспользуя функцию с функциями
, и требуется извлечь, так как счёт значение, меньшее илиИНДЕКС и ПОИСКПОЗ в зависимости и с
Задача
В противном случаев другие дебри As Range) As определенного текста. Тоисть,
А. Найти значения, которые содержат критерий
применил вашу слегка2)»-» перед функцией
выведены все значения, показалась Вам полезной. нет –, а точнее вСРЗНАЧПОИСКПОЗ данные из столбца начинается со второй
равное искомому. Просматриваемый сочетании с ЕСЛИОШИБКА учетом квадратичных членов. возвращает пробел. не полезу. Variant показать колличество совпадений модифицированую формулу {=-СУММ(-НЕ(ЕОШ(ПОИСК(A1;$A$1:$A$2))))} ПОИСК — что
которые совпадают с Если Вы сталкивались0
диапазоне
в комбинации с
и
B строки. массив должен бытьТак как задача этого Для линейной разницаВспомогательный столбец уже готов,
- ZakDim Founded As в колонке (напр. в своих целях он означает? критерием (без учета с другими задачами(ЛОЖЬ).B2:B11ИНДЕКСИНДЕКС, то нужно задатьВот такой результат получится упорядочен по возрастанию, учебника – показать
- между табличным и мы можем вернуться: Вечером выложу файл. Boolean, S, SS
- сколько чисел имеют — всё работает,3) Вижу, что РЕгиСТра). Критерий вводится поиска, для которыхДалее, мы делаем то, значение, которое указаноипросто совершает поиск значение в Excel: то есть от возможности функций вычисленным значением не к нашему поиску. А вообще, адреса
- As String цифру 5). Значит но если убрать
- определяющую роль так в ячейку
- не смогли найти же самое для в ячейкеПОИСКПОЗ и возвращает результат,2
Важно! Количество строк и меньшего к большему.ИНДЕКС превышаетВ первой ячейке диапазона, объектов записаны такимMyF = «» нужно проверять все знак «-» перед же играют записиE6 подходящее решение среди значений столбцаH2, в качестве третьего выполняя аналогичную работудля аргумента столбцов в массиве,0и0,016 в котором вы
образом: московская обл.Founded = False значения … «НЕ», то результат » «&A2&»,» и.
Б. Найти значения, которые совпадают с критерием (точное совпадение)
информации в этомB(USA). Функция будет аргумента функции заметно быстрее.col_index_num который использует функция– находит первое
ПОИСКПОЗ, для квадратичной хотите иметь список
г Климовск Ул.
S = Name
Ещё попутно вопрос
B. Найти значения, которые начинаются с критерия
неверный. Если не » «&D2:D5&»,». НоДля создания списка, содержащего уроке, смело опишите(Product). выглядеть так:ПОИСКПОЗТеперь, когда Вы понимаете
(номер_столбца) функцииINDEX значение, равное искомому.
для реализации вертикального
0,006
всех имен, введите
Г. Найти значения, которые заканчиваются на критерий
театральная д.6. МогутFor i = о скорости выполнения трудно, то прокоментируйте, логику понять не найденные значения, воспользуемся свою проблему вЗатем перемножаем полученные результаты
=MATCH($H$2,$B$1:$B$11,0)чаще всего нужно причины, из-за которых
ВПР
(ИНДЕКС), должно соответствовать
Для комбинации
поиска в Excel,
. следующую формулу: быть еще районы 1 To TypesRange.Rows.Count — никогда не пожалуйста, принцип действия могу. Как я формулой массива: комментариях, и мы (1 и 0).=ПОИСКПОЗ($H$2;$B$1:$B$11;0) будет указывать
excel2.ru
Поиск текста в массиве (Формулы/Formulas)
стоит изучать функции, вот так:
значениям аргументовИНДЕКС мы не будемЕсли захотите последоватьа в ячейку ниже, деревни поселки.If (Not Founded)
измерял что быстрее
этого знака.
поняла, исходя из=ИНДЕКС(Список; НАИМЕНЬШИЙ(
все вместе постараемся Только если совпаденияРезультатом этой формулы будет
1
ПОИСКПОЗ=VLOOKUP(«lookup value»,A1:C10,2)
row_num
/ задерживаться на их этому совету, составьте которая будет возвращатьСаня
And (Replace(S, Replace(Replace(TypesRange(i, — воспользоваться штатнойЗаранее благодарен, этого ПОИСК ищет
ЕСЛИ($E$6=Список;СТРОКА(Список)-СТРОКА($A$9);30);
решить её. найдены в обоих
4или
и
=ВПР(«lookup value»;A1:C10;2)
(номер_строки) иПОИСКПОЗ синтаксисе и применении.
таблицу из каждого следующее имя, введите
: - 1).Value, «‘», «»),
функцией или стоитРоман
запись » один,»,СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список)))))Урок подготовлен для Вас столбцах (т.е. оба, поскольку «USA» –
-1
ИНДЕКСЕсли позднее Вы вставитеcolumn_numвсегда нужно точное
Приведём здесь необходимый минимум 10-го значения по
формулу:Zak «-«, «»), «»)
напить свой макросВладимир но ведь нуженВ этом случае будут командой сайта office-guru.ru критерия истинны), Вы это 4-ый элементв случае, если, давайте перейдём к
новый столбец между(номер_столбца) функции совпадение, поэтому третий
для понимания сути, вертикали и по=»&» «))))’ class=’formula’>
: Ваша манера общения <> Name) Then
(функцию)? Есть у
: Что такое унарное поиск просто «один».
выведены все значения,Источник: https://www.ablebits.com/office-addins-blog/2014/08/13/excel-index-match-function-vlookup/ получите списка в столбце Вы не уверены, самому интересному и
столбцамиMATCH аргумент функции а затем разберём горизонтали (т.е. 1/100
которую затем скопируйте еще не вызывает интересаMyF = Weight(i,
кого теоретический/практический опыт отрицание, почитайте здесь:В общем, нет которые начинаются илиПеревел: Антон Андронов1B что просматриваемый диапазон увидим, как можноA(ПОИСКПОЗ). Иначе результатПОИСКПОЗ
подробно примеры формул, объема исходной таблицы)
ниже. В результате
к сотрудничеству. Возможность 1).Value при работе сRS мне покоя…мозг взорван(((
совпадают с критерием.Автор: Антон Андронов. Если оба критерия(включая заголовок). содержит значение, равное применить теоретические знанияи формулы будет ошибочным.должен быть равен которые показывают преимущества и приложите файл. все выглядит более выйти в инетFounded = True
большим объемом данных?: Спасибо за ответ!Помогите понять, пожалуйста! Критерий вводится вНайдем текстовые значения, удовлетворяющие
ложны, или выполняетсяПОИСКПОЗ для строки среднему. Если же на практике.BСтоп, стоп… почему мы0 использованияPain205 или менее так,
появилась только сегодня,End IfSergeev_pВ принципе, всё_Boroda_ ячейку заданному пользователем критерию. только один из– мы ищем Вы уверены, чтоЛюбой учебник по, то значение аргумента не можем просто.ИНДЕКС: Совет отличный (действительно
как показано на к сожалению. ПоэтомуNext i: Всем доброго дня! прояснилось окончательно ;): Наталья, прежде всего
G6
Поиск будем осуществлять них – Вы значение ячейки такое значение есть,ВПР придется изменить с использовать функцию-1и
можно наплодить ошибок рисунке ниже. Как не нужно громких
excelworld.ru
Поиск части заданного текста в массиве
End FunctionПрошу помочь с О бинарном и посмотрите мою объяснялку
. в диапазоне с получитеH3 – ставьтетвердит, что эта2VLOOKUP– находит наименьшееПОИСКПОЗ
при таких объемах), видите, в результате слов. Ваша кандидатураGizmo2k данным вопросом: унарном отрицании я для ПРОСМОТРа вот
Для создания списка, содержащего повторяющимися значениями. При0
(2015) в строке0 функция не можетна(ВПР)? Есть ли значение, большее иливместо
вот только можно работы указанных формул снята. От дел: Спасибо всем огромное,Есть две таблицы. слыхал уже, но здесь http://www.excelworld.ru/forum/2-16573-138042-16-1427281717 найденные значения, воспользуемся наличии повторов, можно.1
для поиска точного смотреть влево. Т.е.
3 смысл тратить время,
равное искомому значению.
ВПР немного разъяснить, что
вы получаете список
Вас никто не
очень помогли! В левой таблице
в больших формулаха) Для нашей формулой массива:
ожидать, что критериюТеперь понимаете, почему мы
, то есть в совпадения. если просматриваемый столбец, иначе формула возвратит пытаясь разобраться в Просматриваемый массив должен. значит «составьте таблицу всех имен, которые отвлекал, Вы самиПытливый
в одной ячейке
с многими вложениями
формулы пункты а,=ИНДЕКС(Список;НАИМЕНЬШИЙ( будет соответствовать несколько
задали ячейках
Если указываете не является крайним результат из только лабиринтах быть упорядочен поФункция из каждого 10-го соответствуют искомому критерию. проявили интерес и: Здравствуйте. прописаны название компании, сразу трудно понять, б и вЕСЛИ(ЕСЛИОШИБКА(ПОИСК($G$6;Список);0)=1;СТРОКА(Список)-СТРОКА($A$9);30); значений. Для их1A1:E11 левым в диапазоне
что вставленного столбца.ПОИСКПОЗ
убыванию, то есть
INDEX значения по вертикалиВ завершении то же все было быМне необходимо собрать номер договора и на каком шаге
свернутся в одинСТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список))))) вывода в отдельный, как искомое значение?:, значения в столбце
поиска, то нетИспользуяи от большего к
(ИНДЕКС) в Excel и по горизонтали»?
самое, но с
возможно, прояви Вы формулу, которая: прочая информация. В и для какого
пункт — ПОИСКВ этом случае будут
диапазон удобно использовать Правильно, чтобы функция
=MATCH($H$3,$A$1:$E$1,0) поиска должны быть
шансов получить от
ПОИСКПОЗИНДЕКС
меньшему. возвращает значение из
Т.е. заполнить 10 использованием формул массива немного терпения.- берет Ф.И.О
правой таблице только аргумента идет отрицание.
значения выведены все значения,
формулы массива.ПОИСКПОЗ=ПОИСКПОЗ($H$3;$A$1:$E$1;0) упорядочены по возрастанию,ВПР/
?На первый взгляд, польза массива по заданным строку и 10
(мы используем вспомогательныйСаня человека (столбец 1), название компании. Необходимо Плюс иногда путает
» «&A2&»,» которые заканчиваются илиПусть Исходный список значенийвозвращала позицию только,Результатом этой формулы будет а формула вернётжелаемый результат.ИНДЕКС=VLOOKUP(«Japan»,$B$2:$D$2,3) от функции номерам строки и
столбик или каждую столбец, описанный ранее).: Простите, что обладая
- находит его в левой таблице различие между листом
в диапазоне совпадают с критерием. (например, перечень инструментов)
когда оба критерия
5
максимальное значение, меньшееФункции
, Вы можете удалять=ВПР(«Japan»;$B$2:$D$2;3)
ПОИСКПОЗ
столбца. Функция имеет 10 строку и
Выбираем диапазон ячеек, в
малым терпением и должность (столбец 2), выделить те компании,
Excel и VBA,» «&D2:D5&»,» Критерий вводится в
находится в диапазоне выполняются., поскольку «2015» находится или равное среднему.ПОИСКПОЗ или добавлять столбцыВ данном случае –вызывает сомнение. Кому вот такой синтаксис: столбик? которых мы хотим манерностью, не дождался- и если которые есть в поскольку есть различиядаст нам или ячейкуA10:A19
Обратите внимание: в 5-ом столбце.Если указываетеи к исследуемому диапазону, смысла нет! Цель нужно знать положениеINDEX(array,row_num,[column_num])Vlad999 спасибо за иметь список имен от Вас обещанного
в его должности правой таблице.
в возвращающемся значении какое-то положительное число
I6(см. Файл примера).В этом случаеТеперь вставляем эти формулы-1ИНДЕКС не искажая результат, этого примера – элемента в диапазоне?ИНДЕКС(массив;номер_строки;[номер_столбца]) формулу (например, G15:G19) и
вчера файла и
находит определенные словаФайл во вложении.
… Но
planetaexcel.ru
Поиск вхождения текста в массив
(если значение есть).Выведем в отдельный диапазон необходимо использовать третий в функцию, значения в столбцев Excel гораздо так как определен
исключительно демонстрационная, чтобы Мы хотим знатьКаждый аргумент имеет оченьКазанский используем формулу массива: начал пылить.
(в 1 ячейкеОчень надеюсь на
это уже дело или ошибку (еслиДля создания списка, содержащего значения, которые удовлетворяют
не обязательный аргументИНДЕКС поиска должны быть
более гибкие, и непосредственно столбец, содержащий Вы могли понять,
значение этого элемента!
простое объяснение:: Это значит для
0″)))))’ class=’formula’>
Очень жаль, что — 1 слово)
CyberForum.ru
Поиск части текста в ячейке из массива данных на другом лист (Формулы/Formulas)
Вашу помощь! практики. значения нет). найденные значения, воспользуемся критерию. Рассмотрим различные
функции
и вуаля: упорядочены по убыванию, им все-равно, где
нужное значение. Действительно, как функцииПозвольте напомнить, что относительное
array значений «Массовая доляФормула точно вернет то,
сняли мою кандидатуру, выдает в ячейкуС уважением, Павел.
viktturг) Минус переводит формулой массива: варианты поиска.ИНДЕКС=INDEX($A$1:$E$11,MATCH($H$2,$B$1:$B$11,0),MATCH($H$3,$A$1:$E$1,0))
а возвращено будет
находится столбец со
это большое преимущество,
ПОИСКПОЗ
положение искомого значения
(массив) – это
аммиачной селитры, %»:
что вы ожидаете.
я очень рассчитывал «+ ретик», еслиCyberFly: Лучше: положительное число из=ИНДЕКС(Список;НАИМЕНЬШИЙ(Для удобства создадим именованный. Он необходим, т.к.=ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($H$2;$B$1:$B$11;0);ПОИСКПОЗ($H$3;$A$1:$E$1;0)) минимальное значение, большее значением, которое нужно особенно когда работатьи (т.е. номер строки
диапазон ячеек, из 34, 35, …, Во всех «не на эту выгоду. слова не встречаются: Господа, дан массив=СУММ(—ЕЧИСЛО(ПОИСК(A1;$A$1:$A$2))) п. а) вЕСЛИ($I$6=ПРАВСИМВ(Список;ДЛСТР($I$6));СТРОКА(Список)-СТРОКА($A$9);30);
диапазон Список. в первом аргументе
Если заменить функции или равное среднему. извлечь. Для примера,
приходится с большимиИНДЕКС и/или столбца) – которого необходимо извлечь 51, 51,9. соответствующих результатам» ячейкахВсего доброго — оставляет ячейку
текста, нужно найтиЕОШ() обязана просмотреть отрицательное (ошибки так
СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список)))))Диапазон может охватить в
мы задаем всюПОИСКПОЗВ нашем примере значения снова вернёмся к
объёмами данных. Выработают в паре. это как раз
значение.
Для значений плотности:
формула вернет код
В данном примере Excel пустой.
заданные цифры в весь диапазон, ЕЧИСЛО() ошибками и остаются)СОВЕТ: том числе и
таблицу и должнына значения, которые
в столбце
таблице со столицами
можете добавлять и
Последующие примеры покажут
то, что мыrow_num 1290, 1300, …,
excelworld.ru
Поиск конкретного слова из текста в ячейке (Формулы/Formulas)
ошибки. При необходимости будем искать ячейки
200?’200px’:»+(this.scrollHeight+5)+’px’);»> массиве и сВПРить
— только дод) «Искомое значение»
О поиске текстовых незаполненные ячейки перечня.
указать функции, из они возвращают, формулаD государств и населением. удалять столбцы, не Вам истинную мощь должны указать для(номер_строки) – это 1350. их легко удалить
с наиболее близкими
=ЕСЛИ(ИЛИ(ВПР(A2;A:B;2;0)="Дефектоскопист";ВПР(A2;A:B;2;0)="Электрогазосварщик";ВПР(A2;A:B;2;0)="Электросварщик");"+ретик";"")
суммы… ох как найденного значения. Естественно,
не отсутствует, оно значений с использованием В дальнейшем пользователь какого столбца нужно станет легкой и
упорядочены по возрастанию,
На этот раз беспокоясь о том,
связки аргументов
номер строки в
Хотя для «массовой или поместить в значениями к какому-то
Нет формулы поиска то так, в
при отсутствии значения равно нулю. Такая подстановочных знаков читайте может расширить перечень извлечь значение. В понятной:
поэтому мы используем запишем формулу
что нужно будетИНДЕКСrow_num массиве, из которой
доли» можно даже аргументы функции ЕСЛИОШИБКА. числу, выбранному пользователем
слова в массиве. примере понятней))) обе функции перелопачивают запись в статье Поиск
инструментов, указанные ниже нашем случае это=INDEX($A$1:$E$11,4,5)) тип сопоставления ПОИСКПОЗ исправлять каждую используемуюи(номер_строки) и/или
нужно извлечь значение. каждое 20-е брать.Pain205 (меньшими, большими, равнымикитинВсё сводится к
диапазон полностью.ПРОСМОТР(;… текстовых значений в формулы автоматически учтут столбец=ИНДЕКС($A$1:$E$11;4;5))
1
/ функцию
ПОИСКПОЗcolumn_num
Если не указан,Pain205
: Всем привет! — без разницы.: может так?только нужные
тому — какТочно не знаю,подразумевает, что перед
списках. Часть2. Подстановочные
новые значения.
C
excelworld.ru
Поиск текста в массиве таблицы (найти по конкретным адресам из одной таблицы в другой)
Эта формула возвращает значение. ФормулаИНДЕКСВПР, которая легко справляется(номер_столбца) функции то обязательно требуется: Наконец то дошлиСовсем нуб в Важно, чтобы они слова надо вынести работает поиск Ctrl+F но «—» работает запятой стоит ноль. знаки. В статьеВыведем в отдельный диапазон(Sum), и поэтому на пересеченииИНДЕКС, которая покажет, какое.
с многими сложнымиINDEX
аргумент руки заполнить таблицу. этом вопросе, поэтому были как можно
в отдельный столбец — он находит
быстрее, чем два Это аналогично вот Выделение ячеек c все значения Исходного мы ввели4-ой/ место по населению3. Нет ограничения на
ситуациями, когда(ИНДЕКС). Как Вы
column_num»Казанский», если есть даже в поисковике ближе к искомому200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ЕНД(ПОИСКПОЗ(1;—ЕЧИСЛО(ПОИСК($E$6:$E$8;B2));0));»»;»+ретик») строку нужную с раздельных минуса. Иногда этому ТЕКСТом с применением списка, в которых3строки иПОИСКПО занимает столица России размер искомого значения.ВПР
помните, функция(номер_столбца). возможность, то подберите не смог правильно значению).формула массива нужным вхождением.
сам грешу «минусами»ПРОСМОТР(0;… Условного форматирования приведено решениесодержится
.
excelworld.ru
Поиск ближайшего значения в массиве и всех дубликатов в Excel
5-гоЗ (Москва).Используяоказывается в тупике.ИНДЕКСcolumn_num и для листа задать вопрос.Начнем с простой таблицы,только не понял
Как найти ближайшее большее значение по формуле в Excel
Vlad999 — смотрится нестандартно.запись » «&A2&»,» аналогичной задачи с
текст-критерий (например, словоИ, наконец, т.к. намстолбца в диапазоне
возвращает «Moscow», посколькуКак видно на рисункеВПРРешая, какую формулу использоватьможет возвратить значение,(номер_столбца) – это «ratio» коэффициент.Попробую объяснить: в которой имеется
причем тут ФИО?: Код =СУММЕСЛИ($B$2:$B$25;»*»&H2&»*»;$C$2:$C$25)vikttur — мы прилепляем
использованием Условного форматирования.
Поиск ближайшего значения без массива в Excel
дрель). Критерий вводится нужно проверить каждуюA1:E11 величина населения города ниже, формула отлично, помните об ограничении для вертикального поиска, находящееся на пересечении
номер столбца вЗаранее спасибо!Есть массив: список имен иYouGreed
CyberFly: Поправка: писал о к искомому слеваsekii в ячейку ячейку в массиве,, то есть значение
Москва – ближайшее справляется с этой
на длину искомого большинство гуру Excel заданных строки и массиве, из которогоCzeslav34,0 34,1 34,2 соответствующие им баллы.: Пытливый, Так?: То есть «*»&H2&»*»
Поиск ближайшего значения в массиве Excel
просмотре «диапазона», а пробел и справа: Добрый день.С6 эта формула должна ячейки
меньшее к среднему задачей:
значения в 255 считают, что
Повторяющиеся ближайшие значения в Excel
столбца, но она нужно извлечь значение.: Вариант с линейной 34,3 и т.д.Сразу стоит отметить что200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(СУММ(($E$5:$E$7=ПСТР(ВПР($A2;$A$2:$B$4;2;);1;НАЙТИ(» «;ВПР($A2;$A$2:$B$4;2;);1)-1))*СТРОКА($A2));»+ ретик»;»-«) ищет вхождение Н2 надо «строки».
запятую. Аналогично иЕсть массив строк.. быть формулой массива.E4 значению (12 269=INDEX($A$2:$A$10,MATCH(«Russia»,$B$2:$B$10,0))
символов, иначе рискуетеИНДЕКС не может определить, Если не указан, интерполяцией.
1290 32,87 32,83 для некоторых именОткровенно, накидал туда, в массиве?
Guest для записи « Нужно найти в
Для создания списка, содержащего Вы можете видеть. Просто? Да! 006).=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ(«Russia»;$B$2:$B$10;0)) получить ошибку
Без использования формул массива
/ какие именно строка то обязательно требуется
Pain205 32,79 32,75 и число баллов повторяются. всякого всякого, можноVlad999
: Можно еще так: «&D2:D5&»,». Зачем? А этом массиве строку найденные значения, воспользуемся
это по фигурным
В учебнике поЭта формула эквивалентна двумерномуТеперь у Вас не#VALUE!ПОИСКПОЗ и столбец нас аргумент: Добрый день! т.д.Хотелось бы, чтобы Excel попроще…
Поиск дублирующийся ближайших значений в массиве Excel
: скорее вхождение в=СЧЕТ(1/ПОИСК(A1;$A$1:$A$2)) чтобы четко ограничить в части текста формулой массива:
скобкам, в которыеВПР поиску должно возникать проблем(#ЗНАЧ!). Итак, если
намного лучше, чем
интересуют.row_numЕсть небольшие неточности1291 33,01 32,97 вернул значения баллов,Пытливый каждой строчке массива.только не знаю, поиск — слева
exceltable.com
Поиск в массиве
которой содержится слово=ИНДЕКС(Список; НАИМЕНЬШИЙ(
она заключена. Поэтому,мы показывали примерВПР с пониманием, как таблица содержит длинные
ВПР
Теперь, когда Вам известна
(номер_строки) в третьем знаке
32,93 32,89 и которые являются наиболее: китин,
учтите при такой будет ли деление от слова должен
(или фраза) (примерЕСЛИ(ЕСЛИОШИБКА(ПОИСК($C$6;Список);0)>0;СТРОКА(Список)-СТРОКА($A$9);30); когда закончите вводить формулы с функцией
и позволяет найти работает эта формула: строки, единственное действующее. Однако, многие пользователи базовая информация об
Если указаны оба аргумента, после запятой, но т.д. близкими к числу,Принцип работы очень записи может найти быстрее, но от быть пробел, а во вложении).СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(Список)))))
формулу, не забудьтеВПР значение на пересеченииВо-первых, задействуем функцию решение – это
Excel по-прежнему прибегают
этих двух функциях, то функция
это не стольи т.д. и
введенному в исходной нравится. Но можно лишнее, например
ЕЧИСЛО избавляемся справа — запятая.Помогите плиз.Алгоритм работы формулы следующий нажатьдля поиска по определённой строки иMATCH использовать к использованию
полагаю, что ужеИНДЕКС критично. т.д. и т.д. ячейке G2 рабочего без выноса? как-тоищем *21*MCH Чтобы не найтиСпасибо. (для просмотра промежуточныхCtrl+Shift+Enter нескольким критериям. Однако, столбца.
(ПОИСКПОЗ), которая находитИНДЕКС
ВПР становится понятно, каквозвращает значение изОгромное спасибо от
и т.д. и листа, а также
в формуле прописатьнайдет 0212, 1213,: Сорри, разлогинился «один» в «одиннадцать»Karataev шагов работы формулы
. существенным ограничением такогоВ этом примере формула положение «Russia» в
/, т.к. эта функция функции ячейки, находящейся на дружного коллектива химической
т.д. и т.д. и имена, соответствующие (документ итак забит а21в, в21вMCH или в «двадцать: … воспользуйтесь клавишейЕсли всё сделано верно, решения была необходимостьИНДЕКС списке:ПОИСКПОЗ
гораздо проще. ТакПОИСКПОЗ пересечении указанных строки лаборатории всем, ктоХочу сделать три тем значениям. до отказа).Добавлено через 2 минуты
: Кроме того: один».Nic70yF9 Вы получите результат добавлять вспомогательный столбец./=MATCH(«Russia»,$B$2:$B$10,0)). происходит, потому чтои и столбца. принял участие !!! ячейки Масса, ПлотностьПо одному запросу нужно
ПытливыйКод «*»&H2&».*» так
—ЕЧИСЛО(…) можно записатьКстати, поэтому (для:): как на рисунке Хорошая новость: формула
ПОИСКПОЗ=ПОИСКПОЗ(«Russia»;$B$2:$B$10;0))Предположим, Вы используете вот
очень немногие людиИНДЕКСВот простейший пример функции
Облегчили жизнь химикам. и Результат. Сам получить ближайшее значение
: YouGreed, будет меньше погрешность как 1-ЕОШ(…) «двадцать один») лучше
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ВПР(«*»&A2&»*»;D$2:E$5;2;)
Функция ПОИСК(), перебирая элементы ниже:ИНДЕКС
будет очень похожаДалее, задаём диапазон для
такую формулу с до конца понимаютмогут работать вместе.INDEXС уважением, Максим.
массив будет скрыт числа баллов иИзвини, формула хорошаяGizmo2k
вместо —НЕ(ЕОШ(…))
к пробелу слева
CyberForum.ru
вдруг правильно
Поиск значений в списке данных
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Предположим, вам нужно найти расширение телефона сотрудника с помощью его номера, а также правильно оценить коэффициент Комиссии для суммы продажи. Вы ищете данные, чтобы быстро и эффективно находить определенные данные в списке и автоматически проверять, правильно ли используются данные. После того как вы просмотрит данные, вы можете выполнить вычисления и отобразить результаты, указав возвращаемые значения. Есть несколько способов поиска значений в списке данных и отображения результатов.
В этой статье
Поиск значений в списке по вертикали по точному совпадению
Для выполнения этой задачи можно использовать функцию ВПР или сочетание функций индекс и ПОИСКПОЗ.
Примеры использования функции ВПР
Дополнительные сведения можно найти в разделе функция ВПР.
Примеры ИНДЕКСов и СОВПАДЕНИй
=ИНДЕКС(нужно вернуть значение из C2:C10, которое будет соответствовать ПОИСКПОЗ(первое значение «Капуста» в массиве B2:B10))
Формула ищет первое значение в ячейке C2: C10, соответствующее капусты (в B7), и возвращает значение в C7 (100) — первое значение, соответствующее капусты.
Дополнительные сведения можно найти в разделе Функция индекс и функция ПОИСКПОЗ.
Поиск значений в списке по вертикали по приблизительному совпадению
Для этого используйте функцию ВПР.
Важно: Убедитесь, что значения в первой строке отсортированы в возрастающем порядке.
В приведенном выше примере функция ВПР ищет имя учащегося, у которого есть 6 тардиес в диапазоне A2: B7. В таблице нет записи для 6 тардиес, поэтому функция ВПР ищет следующее самое высокое соответствие ниже 6 и находит значение 5, связанное с первым именем Дэйв, и, следовательно, возвращает Дэйв.
Дополнительные сведения можно найти в разделе функция ВПР.
Поиск значений по вертикали в списке неизвестного размера с точным соответствием
Для выполнения этой задачи используйте функции СМЕЩ и ПОИСКПОЗ.
Примечание: Этот подход используется, если данные находятся в диапазоне внешних данных, который вы обновляете каждый день. Вы знаете, что в столбце B есть Цена, но вы не знаете, сколько строк данных возвращает сервер, а первый столбец не отсортирован по алфавиту.
C1 — это верхняя левая ячейка диапазона (также называемая начальной ячейкой).
Match («апельсины»; C2: C7; 0) ищет оранжевый цвет в диапазоне C2: C7. Не следует включать начальную ячейку в диапазон.
1 — количество столбцов справа от начальной ячейки, для которых должно быть возвращено возвращаемое значение. В нашем примере возвращаемое значение находится в столбце D, Sales.
Поиск значений в списке по горизонтали по точному совпадению
Для выполнения этой задачи используется функция ГПР. Ниже приведен пример.
Функция ГПР выполняет поиск по столбцу Sales и возвращает значение из строки 5 в указанном диапазоне.
Дополнительные сведения можно найти в разделе функции ГПР.
Поиск значений в списке по горизонтали с использованием приблизительного совпадения
Для выполнения этой задачи используется функция ГПР.
Важно: Убедитесь, что значения в первой строке отсортированы в возрастающем порядке.
В приведенном выше примере функция ГПР ищет значение 11000 в строке 3 в указанном диапазоне. Он не находит 11000 и, следовательно, ищет следующее наибольшее значение, которое меньше 1100 и возвращает число 10543.
Дополнительные сведения можно найти в разделе функции ГПР.
Создание формулы подстановки с помощью мастера подстановок (толькоExcel 2007 )
Примечание: Надстройка «Мастер подстановок» прекращена в Excel 2010. Эти функциональные возможности заменены мастером функций и доступными функциями поиска и работы со ссылками (ссылками).
В Excel 2007 мастер подстановок создает формулу подстановки на основе данных листа, имеющих заголовки строк и столбцов. Мастер подстановок помогает находить другие значения в строке, когда вы знаете значение в одном столбце, и наоборот. Мастер подстановок использует индекс и СОВПАДЕНИе в создаваемых формулах.
Щелкните ячейку в диапазоне.
На вкладке формулы в группе решения нажмите кнопку Подстановка .
Если команда подстановка недоступна, необходимо загрузить мастер подстановок надстройка программу.
Загрузка программы-надстройки «Мастер подстановок»
Нажмите кнопку Microsoft Office , щелкните Параметры Excelи выберите категорию надстройки.
В поле Управление выберите элемент Надстройки Excel и нажмите кнопку Перейти.
В диалоговом окне надстройки установите флажок Мастер подстановоки нажмите кнопку ОК.
Поиск ТЕКСТовых значений в Excel. Бесплатные примеры и статьи.
Нахождение в MS EXCEL позиции n-го вхождения символа в слове
Находим позицию третьего, четвертого и т.д. вхождения символа в слове (в текстовой строке).
Поиск позиции последнего повтора MS EXCEL
В списке повторяющихся числовых или текстовых значений найдем позицию последнего повтора.
Выделение ячеек c ТЕКСТом с применением Условного форматирования в MS EXCEL
Выделяем ячейки, содержащие искомый текст. Рассмотрим разные варианты: выделение ячеек, содержащих значения в точности совпадающих с искомым текстом; выделение ячеек, которые содержат искомый текст в начале, в конце или середине строки. Также научимся выделять ячейку, в случае если ее значение совпадает с одним из нескольких заданных значений.
Есть ли слово в списке MS EXCEL
Найдем слово в диапазоне ячеек, удовлетворяющее критерию: точное совпадение с критерием, совпадение с учетом регистра, совпадение лишь части символов из слова и т.д.
Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть2. Подстановочные знаки
Найдем текстовые значения, удовлетворяющие заданному пользователем критерию. Критерии заданы с использованием подстановочных знаков. Поиск будем осуществлять в диапазоне с повторяющимися значениями. При наличии повторов, можно ожидать, что критерию будет соответствовать несколько значений. Для их вывода в отдельный диапазон удобно использовать формулы массива.
Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть1. Обычный поиск
Найдем текстовые значения, удовлетворяющие заданному пользователем критерию. Поиск будем осуществлять в диапазоне с повторяющимися значениями. При наличии повторов, можно ожидать, что критерию будет соответствовать несколько значений. Для их вывода в отдельный диапазон удобно использовать формулы массива.
Поиск позиции ТЕКСТа в MS EXCEL с выводом значения из соседнего столбца
Для нахождения позиции значения в столбце, с последующим выводом соответствующего значения из соседнего столбца в EXCEL, существует специальная функция ВПР() , но для ее решения можно использовать также и другие функции. Рассмотрим задачу в случае текстовых значений.
Выделение ячеек c ТЕКСТом с применением Условного форматирования (с учетом РЕгиСТра) в MS EXCEL
Выделяем ячейки, содержащие искомый текст с учетом РЕгиСТра. Рассмотрим разные варианты: выделение ячеек, содержащих значения в точности совпадающих с искомым текстом; выделение ячеек, которые содержат искомый текст в начале, в конце или середине строки.
Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть3. Поиск с учетом РЕГИСТРА
Найдем текстовые значения, удовлетворяющие заданному пользователем критерию с учетом РЕгиСТРА. Поиск будем осуществлять в диапазоне с повторяющимися значениями. При наличии повторов, можно ожидать, что критерию будет соответствовать несколько значений. Для их вывода в отдельный диапазон удобно использовать формулы массива.
Поиск позиции ТЕКСТа с учетом РЕгиСТра в MS EXCEL и выводом значения из соседнего столбца
Здесь развиваются идеи статьи Поиск позиции ТЕКСТового значения с выводом соответствующего значения из соседнего столбца. Для нахождения позиции значения с учетом РЕгиСТра, с последующим выводом соответствующего значения из соседнего столбца, функция ВПР() применена быть не может, т.к. она не чувствительна к регистру. Задача может быть решена с помощи функций БИЗВЛЕЧЬ() , НАЙТИ() или СОВПАД() .
Поиск в MS EXCEL текстового значения первого или последнего по алфавиту
Найдем текстовое значение, которое при сортировке диапазона по возрастанию будет выведено первым, т.е. первое по алфавиту. Также найдем последнее значение по алфавиту.
Разнесение в MS EXCEL ТЕКСТовых значений и ЧИСЕЛ по разным спискам
Если исходный список, содержит и текст и числа, то с помощью формул массива можно в один список отобрать все текстовые значения, а в другой – числовые.
Поиск в MS EXCEL третьего (n-го) повтора в списках с ТЕКСТом
Рассмотрим поиск текстовых значений в списке с повторами. Задав в качестве критерия для поиска нужное текстовое значение и номер его повтора в списке, найдем номер строки, в которой содержится этот повтор, а также выделим его и другие повторы с помощью Условного форматирования.
О классификации задач Поиска в EXCEL
В этой статье изложены попытки классификации задач по поиску значений в MS EXCEL. Статья может быть интересна для продвинутых пользователей EXCEL.
Поиск нескольких значений с максимальной длиной строки в MS EXCEL
Найдем в исходном списке текстовые значения, которые имеют максимальную длину строки, и выведем их в отдельный диапазон.
Поиск значения в MS EXCEL с максимальной или минимальной длиной строки
Найдем в списке текстовых значений строку с максимальной / минимальной длиной.
Пример функции ПОИСКПОЗ для поиска совпадения значений в Excel
Функция ПОИСКПОЗ в Excel используется для поиска точного совпадения или ближайшего (меньшего или большего заданному в зависимости от типа сопоставления, указанного в качестве аргумента) значения заданному в массиве или диапазоне ячеек и возвращает номер позиции найденного элемента.
Примеры использования функции ПОИСКПОЗ в Excel
Например, имеем последовательный ряд чисел от 1 до 10, записанных в ячейках B1:B10. Функция =ПОИСКПОЗ(3;B1:B10;0) вернет число 3, поскольку искомое значение находится в ячейке B3, которая является третьей от точки отсчета (ячейки B1).
Данная функция удобна для использования в случаях, когда требуется вернуть не само значение, содержащееся в искомой ячейке, а ее координату относительно рассматриваемого диапазона. В случае использования для констант массивов, которые могут быть представлены как массивы элементов «ключ» — «значение», функция ПОИСКПОЗ возвращает значение ключа, который явно не указан.
Например, массив <«виноград»;»яблоко»;»груша»;»слива»>содержит элементы, которые можно представить как: 1 – «виноград», 2 – «яблоко», 3 – «груша», 4 – «слива», где 1, 2, 3, 4 – ключи, а названия фруктов – значения. Тогда функция =ПОИСКПОЗ(«яблоко»;<«виноград»;»яблоко»;»груша»;»слива»>;0) вернет значение 2, являющееся ключом второго элемента. Отсчет выполняется не с 0 (нуля), как это реализовано во многих языках программирования при работе с массивами, а с 1.
Функция ПОИСКПОЗ редко используется самостоятельно. Ее целесообразно применять в связке с другими функциями, например, ИНДЕКС.
Формула для поиска неточного совпадения текста в Excel
Пример 1. Найти позицию первого частичного совпадения строки в диапазоне ячеек, хранящих текстовые значения.
Вид исходной таблицы данных:
Для нахождения позиции текстовой строки в таблице используем следующую формулу:
Из полученного значения вычитается единица для совпадения результата с id записи в таблице.
Сравнение двух таблиц в Excel на наличие несовпадений значений
Пример 2. В Excel хранятся две таблицы, которые на первый взгляд кажутся одинаковыми. Было решено сравнить по одному однотипному столбцу этих таблиц на наличие несовпадений. Реализовать способ сравнения двух диапазонов ячеек.
Вид таблицы данных:
Для сравнения значений, находящихся в столбце B:B со значениями из столбца A:A используем следующую формулу массива (CTRL+SHIFT+ENTER):
Функция ПОИСКПОЗ выполняет поиск логического значения ИСТИНА в массиве логических значений, возвращаемых функцией СОВПАД (сравнивает каждый элемент диапазона A2:A12 со значением, хранящимся в ячейке B2, и возвращает массив результатов сравнения). Если функция ПОИСКПОЗ нашла значение ИСТИНА, будет возвращена позиция его первого вхождения в массив. Функция ЕНД возвратит значение ЛОЖЬ, если она не принимает значение ошибки #Н/Д в качестве аргумента. В этом случае функция ЕСЛИ вернет текстовую строку «есть», иначе – «нет».
Чтобы вычислить остальные значения «протянем» формулу из ячейки C2 вниз для использования функции автозаполнения. В результате получим:
Как видно, третьи элементы списков не совпадают.
Поиск ближайшего большего знания в диапазоне чисел Excel
Пример 3. Найти ближайшее меньшее числу 22 в диапазоне чисел, хранящихся в столбце таблицы Excel.
Вид исходной таблицы данных:
Для поиска ближайшего большего значения заданному во всем столбце A:A (числовой ряд может пополняться новыми значениями) используем формулу массива (CTRL+SHIFT+ENTER):
Функция ПОИСКПОЗ возвращает позицию элемента в столбце A:A, имеющего максимальное значение среди чисел, которые больше числа, указанного в ячейке B2. Функция ИНДЕКС возвращает значение, хранящееся в найденной ячейке.
Для поиска ближайшего меньшего значения достаточно лишь немного изменить данную формулу и ее следует также ввести как массив (CTRL+SHIFT+ENTER):
Особенности использования функции ПОИСКПОЗ в Excel
Функция имеет следующую синтаксическую запись:
=ПОИСКПОЗ( искомое_значение;просматриваемый_массив; [тип_сопоставления])
- искомое_значение – обязательный аргумент, принимающий текстовые, числовые значения, а также данные логического и ссылочного типов, который используется в качестве критерия поиска (для сопоставления величин или нахождения точного совпадения);
- просматриваемый_массив – обязательный аргумент, принимающий данные ссылочного типа (ссылки на диапазон ячеек) или константу массива, в которых выполняется поиск позиции элемента согласно критерию, заданному первым аргументом функции;
- [тип_сопоставления] – необязательный для заполнения аргумент в виде числового значения, определяющего способ поиска в диапазоне ячеек или массиве. Может принимать следующие значения:
- -1 – поиск наименьшего ближайшего значения заданному аргументом искомое_значение в упорядоченном по убыванию массиве или диапазоне ячеек.
- 0 – (по умолчанию) поиск первого значения в массиве или диапазоне ячеек (не обязательно упорядоченном), которое полностью совпадает со значением, переданным в качестве первого аргумента.
- 1 – Поиск наибольшего ближайшего значения заданному первым аргументом в упорядоченном по возрастанию массиве или диапазоне ячеек.
- Если в качестве аргумента искомое_значение была передана текстовая строка, функция ПОИСКПОЗ вернет позицию элемента в массиве (если такой существует) без учета регистра символов. Например, строки «МоСкВа» и «москва» являются равнозначными. Для различения регистров можно дополнительно использовать функцию СОВПАД.
- Если поиск с использованием рассматриваемой функции не дал результатов, будет возвращен код ошибки #Н/Д.
- Если аргумент [тип_сопоставления] явно не указан или принимает число 0, для поиска частичного совпадения текстовых значений могут быть использованы подстановочные знаки («?» — замена одного любого символа, «*» — замена любого количества символов).
- Если в объекте данных, переданном в качестве аргумента просматриваемый_массив, содержится два и больше элементов, соответствующих искомому значению, будет возвращена позиция первого вхождения такого элемента.
Поиск на листе Excel
Поиск какого-либо значения в ячейках Excel довольно часто встречающаяся задача при программировании какого-либо макроса. Решить ее можно разными способами. Однако, в разных ситуациях использование того или иного способа может быть не оправданным. В данной статье я рассмотрю 2 наиболее распространенных способа.
Поиск перебором значений
Довольно простой в реализации способ. Например, найти в колонке «A» ячейку, содержащую «123» можно примерно так:
Минусами этого так сказать «классического» способа являются: медленная работа и громоздкость. А плюсом является его гибкость, т.к. таким способом можно реализовать сколь угодно сложные варианты поиска с различными вычислениями и т.п.
Поиск функцией Find
Гораздо быстрее обычного перебора и при этом довольно гибкий. В простейшем случае, чтобы найти в колонке A ячейку, содержащую «123» достаточно такого кода:
Вкратце опишу что делают строчки данного кода:
1-я строка: Выбираем в книге лист «Данные»;
2-я строка: Осуществляем поиск значения «123» в колонке «A», результат поиска будет в fcell;
3-я строка: Если удалось найти значение, то fcell будет содержать Range-объект, в противном случае — будет пустой, т.е. Nothing.
Полностью синтаксис оператора поиска выглядит так:
Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
What — Строка с текстом, который ищем или любой другой тип данных Excel
After — Ячейка, после которой начать поиск. Обратите внимание, что это должна быть именно единичная ячейка, а не диапазон. Поиск начинается после этой ячейки, а не с нее. Поиск в этой ячейке произойдет только когда весь диапазон будет просмотрен и поиск начнется с начала диапазона и до этой ячейки включительно.
LookIn — Тип искомых данных. Может принимать одно из значений: xlFormulas (формулы), xlValues (значения), или xlNotes (примечания).
LookAt — Одно из значений: xlWhole (полное совпадение) или xlPart (частичное совпадение).
SearchOrder — Одно из значений: xlByRows (просматривать по строкам) или xlByColumns (просматривать по столбцам)
SearchDirection — Одно из значений: xlNext (поиск вперед) или xlPrevious (поиск назад)
MatchCase — Одно из значений: True (поиск чувствительный к регистру) или False (поиск без учета регистра)
MatchByte — Применяется при использовании мультибайтных кодировок: True (найденный мультибайтный символ должен соответствовать только мультибайтному символу) или False (найденный мультибайтный символ может соответствовать однобайтному символу)
SearchFormat — Используется вместе с FindFormat. Сначала задается значение FindFormat (например, для поиска ячеек с курсивным шрифтом так: Application.FindFormat.Font.Italic = True), а потом при использовании метода Find указываем параметр SearchFormat = True. Если при поиске не нужно учитывать формат ячеек, то нужно указать SearchFormat = False.
Чтобы продолжить поиск, можно использовать FindNext (искать «далее») или FindPrevious (искать «назад»).
Примеры поиска функцией Find
Пример 1: Найти в диапазоне «A1:A50» все ячейки с текстом «asd» и поменять их все на «qwe»
Обратите внимание : Когда поиск достигнет конца диапазона, функция продолжит искать с начала диапазона. Таким образом, если значение найденной ячейки не менять, то приведенный выше пример зациклится в бесконечном цикле. Поэтому, чтобы этого избежать (зацикливания), можно сделать следующим образом:
Пример 2: Правильный поиск значения с использованием FindNext, не приводящий к зацикливанию.
В ниже следующем примере используется другой вариант продолжения поиска — с помощью той же функции Find с параметром After. Когда найдена очередная ячейка, следующий поиск будет осуществляться уже после нее. Однако, как и с FindNext, когда будет достигнут конец диапазона, Find продолжит поиск с его начала, поэтому, чтобы не произошло зацикливания, необходимо проверять совпадение с первым результатом поиска.
Пример 3: Продолжение поиска с использованием Find с параметром After.
Следующий пример демонстрирует применение SearchFormat для поиска по формату ячейки. Для указания формата необходимо задать свойство FindFormat.
Пример 4: Найти все ячейки с шрифтом «курсив» и поменять их формат на обычный (не «курсив»)
Примечание: В данном примере намеренно не используется FindNext для поиска следующей ячейки, т.к. он не учитывает формат (статья об этом: https://support.microsoft.com/ru-ru/kb/282151)
Коротко опишу алгоритм поиска Примера 4. Первые две строки определяют последнюю строку (lLastRow) на листе и последний столбец (lLastCol). 3-я строка задает формат поиска, в данном случае, будем искать ячейки с шрифтом Italic. 4-я строка определяет область ячеек с которой будет работать программа (с ячейки A1 и до последней строки и последнего столбца). 5-я строка осуществляет поиск с использованием SearchFormat. 6-я строка — цикл пока результат поиска не будет пустым. 7-я строка — меняем шрифт на обычный (не курсив), 8-я строка продолжаем поиск после найденной ячейки.
Хочу обратить внимание на то, что в этом примере я не стал использовать «защиту от зацикливания», как в Примерах 2 и 3, т.к. шрифт меняется и после «прохождения» по всем ячейкам, больше не останется ни одной ячейки с курсивом.
Свойство FindFormat можно задавать разными способами, например, так:
Следующий пример — применение функции Find для поиска последней ячейки с заполненными данными. Использованные в Примере 4 SpecialCells находит последнюю ячейку даже если она не содержит ничего, но отформатирована или в ней раньше были данные, но были удалены.
Пример 5: Найти последнюю колонку и столбец, заполненные данными
В этом примере используется UsedRange, который так же как и SpecialCells возвращает все используемые ячейки, в т.ч. и те, что были использованы ранее, а сейчас пустые. Функция Find ищет ячейку с любым значением с конца диапазона.
При поиске можно так же использовать шаблоны, чтобы найти текст по маске, следующий пример это демонстрирует.
Пример 6: Выделить красным шрифтом ячейки, в которых текст начинается со слова из 4-х букв, первая и последняя буквы «т», при этом после этого слова может следовать любой текст.
Для поиска функцией Find по маске (шаблону) можно применять символы:
* — для обозначения любого количества любых символов;
? — для обозначения одного любого символа;
— для обозначения символов *, ? и
. (т.е. чтобы искать в тексте вопросительный знак, нужно написать
?, чтобы искать именно звездочку (*), нужно написать
* и наконец, чтобы найти в тексте тильду, необходимо написать
Поиск даты с помощью Find
Если необходимо найти текущую дату или какую-то другую дату на листе Excel или в диапазоне с помощью Find, необходимо учитывать несколько нюансов:
- Тип данных Date в VBA представляется в виде #[месяц]/[день]/[год]#, соответственно, если необходимо найти фиксированную дату, например, 01 марта 2018 года, необходимо искать #3/1/2018#, а не «01.03.2018»
- В зависимости от формата ячеек, дата может выглядеть по-разному, поэтому, чтобы искать дату независимо от формата, поиск нужно делать не в значениях, а в формулах, т.е. использовать LookIn:=xlFormulas
Приведу несколько примеров поиска даты.
Пример 7: Найти текущую дату на листе независимо от формата отображения даты.
Пример 8: Найти 1 марта 2018 г.
Искать часть даты — сложнее. Например, чтобы найти все ячейки, где месяц «март», недостаточно искать «03» или «3». Не работает с датами так же и поиск по шаблону. Единственный вариант, который я нашел — это выбрать формат в котором месяц прописью для ячеек с датами и искать слово «март» в xlValues.
Тем не менее, можно найти, например, 1 марта независимо от года.
Пример 9: Найти 1 марта любого года.
4 способа поиска данных в таблице Excel
Добрый день уважаемый читатель!
В этой статье я хочу снова вспомнить о могуществе и пользе функции ВПР и покажу 4 способа поиска данных в таблице Excel при помощи других функций и их комбинаций с несколькими условиями. Очень и очень много действий можно выполнять с помощью этой функции, но, тем не менее, она обладает некоторыми ограничениями, к примеру, ВПР может искать только в левой стороне или по одному условию. В связи с этим будем искать варианты, и применять хитрости для расширения её базового функционала.
В ранее описанной статье, я описывал детально работу самой функции ВПР, поэтому с ней вы можете ознакомиться, перейдя по ссылке. Это важно если ваше знакомство происходит впервые. Также можете ознакомиться и с близнецом ВПР, функцией ГПР, ее я также описал детально, со всеми преимуществами и недостатками. А если с теорией вы познакомились, приступим к практическому применению.
Теперь на примерах рассмотрим все 4 способа поиска данных в таблице Excel и комбинаций работы функции ВПР с другими функциями:
Используем функцию СУММПРОИЗВ
Как я уже описывал ранее в своей статье о функции СУММПРОИЗВ, она является одной из мощнейших в арсенале Excel. И именно первый способ мы сделаем с помощью возможностей формулы при использовании функции СУММПРОИЗВ. Для наших целей формула будет выглядеть так:
=СУММПРОИЗВ((C2:C11=G2)*(B2:B11=G3);D2:D11) Принцип работы формулы следующий: создается условная таблица, в которой значения ячеек «G2» сравнивается с диапазоном «C2:C11» и ячейка «G3» с диапазоном «B2:B11». После этого сравниваются и сопоставляются все эти два массива и переводятся в единицы и нули, где значение единицы ставится строке, где все условия формулы выполнены. Следующая операция – это умножения полученного условного массива на диапазон «D2:D11», а поскольку в массиве всего одна единичка то формула получит результат 146.
Обращаю ваше внимание, если в диапазоне «D2:D11» будут найдены текстовые значения, формула откажется работать. Для более углублённого ознакомления с функцией СУММПРОИЗВ советую почитать мою статью.
Применение функции ВЫБОР
Я описывал уже функцию ВЫБОР, но в таком исполнении еще не упоминал. В нашем случае нужно создать новую таблицу, в которой будут совместными столбики «Период» и «Месяц», всё это виртуально создаст функция ВЫБОР. Формула для работы будет выглядеть так:
<=ВПР(G2&G3;ВЫБОР(<1;2>;C2:C11&B2:B11;D2:D11);2;0)> Основная работа, которую проделывает функция ВЫБОР в своей части «ВЫБОР(<1;2>;C2:C11&B2:B11;D2:D11)» это объединение значений столбиков «Период» и «Город» в общий массив, значения в котором будут прописаны как: «МоскваЯнварь», «БрянскФевраль», …. и т.д. Получив такое объединённое значения столбиков мы сможем легко сделать просмотр и отбор нужного значения, вот теперь я думаю, формула стала ближе.
Очень важно! Поскольку мы работаем с формулой массива, то ввод необходимо производить горячим сочетаниям клавиш Ctrl+Shift+Enter. В этом случае система определит формулу как созданную для массивов и установит фигурные скобочки по обеим сторонам формулы.
Создаем дополнительные столбики
Давайте немного отвлечемся от сложного и рассмотрим более простой пример, это когда мы вместо укрупнения формул разделим ее на составляющие и произведем работу по небольшим кусочкам.
Рассмотрим на стандартном примере, когда необходимо определить продажи по двум показателям: «Период» и «Город». В этом случае обыкновенное использование функции ВПР не будет нам подходить, так как функция может возвращать значение по одному условию. В таком случае нам необходимо создать дополнительный столбик, в котором произойдёт объединение двух критериев в один, поэтому в созданном столбике приписываем формулу слияния значений: =B2&C2. А вот теперь результат из столбика D, мы сможем использовать в ячейке H4 нашу формулу:
=ВПР(H2&H3;D2:E11;2;0)
Как видите, наши отдельные условия отбора значений также объединяются аргументом H2&H3 в один критерий. После поиска в указанном диапазоне D2:E11, формула вернёт найденное значение со столбика 2.
Совмещаем функции ПОИСКПОЗ и ИНДЕКС для работы
Последний способ в нашем списке будет конечно не самым лёгким, но достаточно простым и легко повторимым. Для его реализации будем снова использовать формулу массива, а также использованы функции ПОИСПОЗ и ИНДЕКС в эффективном и полезном симбиозе. Детально о работе этих функций вы можете ознакомиться в моих отдельных статьях.
А для нашего поиска данных в таблице Excel будем использовать такую формулу:
Что же она делает, такая большая и непонятная…. Рассмотрим ее в разрезе нескольких блоков или этапов. Формула для функции имеет такой вид ПОИСКПОЗ (1;(B2:B11=G3)*(C2:C11=G2);0) и происходит следующее, со значением в ячейке G3, последовательно сравниваются значения из диапазона B2:B11 и в случае совпадения условий получаем результат ИСТИНА, а если есть отличия получаем ЛОЖЬ. Такой же процесс происходит для значения G2 и диапазона C2:C11. После сравнения этих массивов, которые состоят из аргументов ИСТИНА и ЛОЖЬ, производится сравнения на соответствие значению 1, это ИСТИНА*ИСТИНА, все остальные комбинации будут проигнорированы.
Теперь, когда функция ПОИСКПОЗ нашла в массиве значение, которое соответствует «1» и указала его позицию в шестой строке, а значит, в функцию ИНДЕКС был передан аргумент «6» для диапазона D2:D11.
Ну, подведя итог можно ответить на закономерный вопрос: «а что же делать?» и «какой способ использовать?». Использовать вы можете абсолютно любой способ, но я бы рекомендовал выбрать вам наиболее удобный, простой и понятный. Я, к примеру, люблю использовать таблицы, которые просто изменять и просты для работы и понимания, чего советую и вам.
Я очень хочу, чтобы эти 4 способа поиска данных в таблице Excel вам пригодилось, и вы могли находить быстро и качественно нужную информацию. Если у вас есть чем дополнить меня пишите комментарии, я буду их ждать с нетерпением, ставьте лайки и делитесь полезной статьей в соц.сетях!
Поиск нужных данных в диапазоне
Как использовать функцию ВПР (VLOOKUP) для поиска и выборки нужных значений из списка мы недавно разбирали. Если вы еще с ней не знакомы — загляните сюда, не пожалейте пяти минут, чтобы сэкономить себе потом несколько часов.
Если же вы знакомы с ВПР, то — вдогон — стоит разобраться с похожими функциями: ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH), владение которыми весьма облегчит жизнь любому опытному пользователю Excel. Гляньте на следующий пример:
Необходимо определить регион поставки по артикулу товара, набранному в ячейку C16.
Задача решается при помощи двух функций:
=ИНДЕКС(A1:G13;ПОИСКПОЗ(C16;D1:D13;0);2)
Функция ПОИСКПОЗ ищет в столбце D1:D13 значение артикула из ячейки C16. Последний аргумент функции 0 — означает поиск точного (а не приблизительного) соответствия. Функция выдает порядковый номер найденного значения в диапазоне, т.е. фактически номер строки, где найден требуемыый артикул.
Функция ИНДЕКС выбирает из диапазона A1:G13 значение, находящееся на пересечении заданной строки (номер строки с артикулом выдает функция ПОИСКПОЗ) и столбца (нам нужен регион, т.е. второй столбец).
Ссылки по теме
- Использование функции ВПР (VLOOKUP) для поиска и подстановки значений.
- Улучшенная версия функции ВПР (VLOOKUP)
- Многоразовый ВПР
Поиск текста в массиве |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
На чтение 6 мин Опубликовано 13.01.2021
Чтобы в Microsoft Office Excel найти значения ячейки, находящейся на пересечении столбика и строчки в табличном массиве, необходимо применить функцию «ИНДЕКС», а также вспомогательную «ПОИСКПОЗ». Найти значение в массиве требуется, когда пользователь работает с большой табличкой, и ему необходимо «подтянуть» ряд данных. В этой статье будет рассмотрен подробный алгоритм использования функции «ИНДЕКС» для поиска значений в массиве.
Содержание
- Запись функции «ИНДЕКС»
- Запись функции «ПОИСПОЗ»
- Как найти значение в массиве
- Заключение
Запись функции «ИНДЕКС»
Такой оператор в форме массива записывается следующим образом: =ИНДЕКС (массив; номер строчки; номер столбика). Вместо слов в скобках указываются соответствующие номера ячеек в исходной таблице.
Запись функции «ПОИСПОЗ»
Этот вспомогательный оператор для первой функции, который также будет использоваться при поиске значений в массиве. Его запись в Excel оформляется так: =ПОИСКПОЗ (значение, которое надо найти; табличный массив; тип сопоставления).
Обратите внимание! При записи аргументов для функции «ИНДЕКС» номер столбца указывать не обязательно.
Как найти значение в массиве
Для понимания темы алгоритм выполнения поставленной задачи необходимо рассмотреть на конкретном примере. Составим в Excel таблицу заказов за один день, в которой будут столбцы: «№ заказа», «Клиент», «Товар», «Количество», «Цена за ед.», «Сумма». Необходимо найти значение в массиве, т.е. составить индивидуальную карточку заказа клиента, чтобы можно было в сжатом виде получить информацию из ячеек исходной таблицы.
Для этого надо выполнить ряд действий по алгоритму:
- Составить карточку заказа клиента.
- Для первой строчки карточки надо создать выпадающий список, в котором будут прописаны имена клиентов из основного массива. Впоследствии, выбрав то или иное имя, пользователь увидит сжатую информацию по нему, которая отобразится в других строках карточки заказа.
- Поставить курсор мышки в первую строку карточки и войти в раздел «Данные» сверху главного меню программы.
- Кликнуть по кнопке «Проверка данных».
- В отобразившемся окошке в поле «Тип данных» указать вариант «Список», а в качестве источника выделить диапазон ячеек исходного массива, в котором прописан перечень всех клиентов.
- В правой части ячейки первого столбца карточки появится стрелочка. Если кликнуть по ней, то можно увидеть список всех клиентов. Здесь надо выбрать любого клиента.
- В строке «№ заказа» прописать функцию «=ИНДЕКС(», после чего кликнуть по значку «fx» рядом со строкой формул Эксель.
- В открывшемся меню Мастера функций из списка выбрать форму массива для функции «ИНДЕКС» и нажать на «ОК».
- Откроется окно «Аргументы функции», в котором надо заполнить все строки, указывая соответствующие диапазоны ячеек.
- Сначала надо кликнуть по пиктограмме напротив поля «Массив» и выделить целиком исходную табличку вместе с шапкой.
- В поле «Номер строки» нужно заполнить функцию «ПОИСКПОЗ». На первом месте в скобке в качестве аргумента указываем название клиента, который был выбран в карточке заказа. В качестве второго аргумента функции «ПОИСКПОЗ» нужно указать весь диапазон клиентов в исходном табличном массиве. На месте третьего аргумента необходимо прописать число 0, т.к. будет искаться точное совпадение.
Важно! После заполнения каждого элемента для функции «ПОИСКПОЗ» потребуется нажимать на кнопку «F4», чтобы навесить знаки долларов перед каждым символом в аргументе. Это позволит формуле не «съехать» в процессе выполнения.
- В строчке «Номер столбца» еще раз прописать вспомогательную функцию «ПОИСКПОЗ» с соответствующими аргументами.
- В качестве первого аргумента для функции надо указать незаполненную ячейку в строке «Товар» в карточке заказа. При этом навешивать знаки долларов на аргументы теперь не надо, т.к. искомый аргумент должен получиться «плавающим».
- Заполняя второй аргумент функции «ПОИСКПОЗ», нужно выделить шапку исходного массива, а затем нажать на кнопку «F4» для закрепления символов.
- В качестве последнего аргумента необходимо прописать 0, закрыть скобку и щелкнуть по «ОК» внизу окошка «Аргументы функции». В данной ситуации число 0 является точным совпадением.
- Проверить результат. После проделывания таких длительных действий в строке «№ заказа» должно отобразиться число, соответствующее выбранному клиенту.
- На последнем этапе формулу потребуется растянуть на все ячейки карточки заказа до конца, чтобы заполнить оставшиеся строчки.
Дополнительная информация! При выборе клиента из выпадающего списка карточки заказов вся информация по этому человеку отобразится в остальных строках массива.
Заключение
Таким образом, для поиска нужного значения в массиве в Microsoft Office Excel пользователю придется проделать немало действий. В итоге должна получиться небольшая табличка данных, в которой отображается сжатая информация по каждому параметру из исходного массива. Метод поиска значений с соответствующими изображениями был подробно рассмотрен выше.
Оцените качество статьи. Нам важно ваше мнение:
Если произвести поиск по функциям подстановки, Google покажет, что ВПР намного популярнее функции ИНДЕКС. Оно и понятно, ведь чтобы придать функции ИНДЕКС тот же функционал, что и ВПР, необходимо воспользоваться еще одной формулой – ПОИСКПОЗ. Что касается меня, было всегда непросто попробовать и освоить две новые функции одновременно. Но они дают больше возможностей и гибкости в создании электронных таблиц. Но обо всем по порядку.
Функция ВПР()
Предположим, у вас есть таблица с данными о работниках. В первой колонке хранится табельный номер сотрудника, в остальных – другие данные (ФИО, отдел и т.д.). Если у вас есть табельный номер, то можно воспользоваться функцией ВПР, чтобы вернуть определенную информацию о сотруднике. Синтаксис формулы =ВПР(искомое_значение; таблица; номер_столбца; [интервальный_просмотр]). Она говорит Excel: «Найди в таблице строку, первая ячейка которой совпадает с искомым_значением, и верни значение ячейки с порядковым номером номер_столбца».
Но случаются ситуации, когда у вас есть имя сотрудника и необходимо вернуть табельный номер. На рисунке в ячейке A10 – имя работника и требуется определить табельный номер в ячейке B10.
Когда ключевое поле находится правее данных, которые вы хотите получить, ВПР не поможет. Если, конечно, была бы возможность задать номер_столбца -1, тогда проблем бы не было. Одним из распространенных решений является добавление нового столбца A, копирование имен сотрудников в этот столбец, заполнить табельные номера с помощью ВПР, сохранить их как значения и удалить временную колонку A.
Функция ИНДЕКС()
Чтобы решить нашу проблему в один шаг, необходимо воспользоваться формулами ИНДЕКС и ПОИСКПОЗ. Сложность данного подхода заключается в том, что требуется применить две функции, которые, возможно, вы никогда не применяли до этого. Для упрощения понимания решим эту задачу в два этапа.
Начнем с функции ИНДЕКС. Кошмарное название. Когда кто-нибудь говорит «индекс», у меня в голове не возникает ни единой ассоциации, чем же занимается эта функция. А требует она целых три аргумента: =ИНДЕКС(массив; номер_строки; [номер_столбца]).
Говоря по-простому, Excel идет в массив данных и возвращает значение, находящееся на пересечении указанной строки и столбца. Как будто бы просто. Таким образом, формула =ИНДЕКС($A$2:$C$6;4;2) вернет значение, находящееся в ячейке B5.
Применительно к нашей проблеме, чтобы вернуть табельный номер работника, формула должна выглядеть следующим образом =ИНДЕКС($A$2:$A$6;?;1). Выглядит как бессмыслица, но если мы заменим знак вопроса формулой ПОИСКПОЗ, у нас есть решение.
Функция ПОИСКПОЗ()
Синтаксис этой функции таков: =ПОИСКПОЗ(искомое_значение; просматриваемы_массив; [тип_сопоставления]).
Она говорит Excel: «Найди искомое_значение в массиве данных и верни номер строки массива, в которой это значение встречается». Таким образом, чтобы найти в какой строке находиться имя сотрудника в ячейке A10, необходимо прописать формулу =ПОИСКПОЗ(A10; $B$2:$B$6; 0). Если в ячейке A10 будет имя «Колин Фарел», тогда ПОИСКПОЗ вернет 5-ю строку массива B2:B6.
Ну, в принципе, все. Функция ПОИСКПОЗ указывает функции ИНДЕКС, в какой строке искать значение. Замените знак вопроса в формуле ИНДЕКС формулой ПОИСКОПОЗ и вы получите эквивалент ВПР с возможностью поиска данных, находящихся левее ключевого столбца. Получиться так:
=ИНДЕКС($A$2:$B$6;ПОИСКПОЗ(A10;$B$2:$B$6;0);1)
В начале было непривычно, был огромный соблазн вставить еще одну колону и работать, как всегда работал. Но со временем использование функции ИНДЕКС вошло в привычку. Оказалось, что это быстрее и требует меньших манипуляций. Так что в следующий раз, когда у вас возникнет желание задать номеру столбца отрицательное число в ВПР, воспользуйтесь сочетанием двух странных функций ИНДЕКС и ПОИСКПОЗ, чтобы решить свою проблему.
Время на прочтение
16 мин
Количество просмотров 236K
Добрый день, уважаемые хаброжители!
Время от времени некоторым (а может и более, чем некоторым) из нас приходится сталкиваться с задачами по обработке небольших массивов данных, начиная от составления и анализа домашнего бюджета и заканчивая какими-либо расчетами по работе, учебе и т.д. Пожалуй, наиболее подходящим инструментом для этого является Microsoft Excel (или возможно иные его аналоги, но они менее распространены).
Поиск выдал мне всего одну статью на Хабре по схожей тематике — «Талмуд по формулам в Google SpreadSheet». В ней дано хорошее описание базовых вещей для работы в excel (хотя он и не 100% про сам excel).
Таким образом, накопив определенный пул запросов/задач, появилась идея их типизировать и предложить возможные решения (пусть не все возможные, но быстро дающие результат).
Речь пойдет о решении наиболее распространенных задач, с которыми сталкиваются пользователи.
Описание решений построено следующим образом – дается кейс, содержащий исходное задание, которое постепенно усложняется, к каждому шагу дано развернутое решение с пояснениями. Наименования функций будут даваться на русском языке, но в скобках при первом упоминании будет приводиться оригинальное наименование на английском языке (т.к. по опыту у подавляющего большинства пользователей установлена русскоязычная версия).
Кейс_1: Логические функции и функции поиска совпадений
«У меня есть набор значений в табличке и необходимо что бы при выполнении определенного условия/набора условий выводилось определенное значение» (с) Пользователь
Данные, как правило, представлены в табличной форме:
Условие:
- если значение в столбце «Количество» больше 5,
- то нужно вывести в колонке «Результат» значение «Заказ не требуется»,
В этом нам поможет формула «ЕСЛИ» (IF), которая относится к логическим формулам и может выдавать в решении любые значения, которые мы заранее записываем в формуле. Обращаю внимание, что любые текстовые значения записываются, используя кавычки.
Синтаксис формулы следующий:
ЕСЛИ(лог_выражение, [значение_если_истина], [значение_если_ложь])
- Лог_выражение — выражение, дающее в результате значение ИСТИНА или ЛОЖЬ.
- Значение_если_истина — значение, которое выводится, если логическое выражение истинно
- Значение_если_ложь — значение, которое выводится, если логическое выражение ложно
Синтаксис формулы для решения:
Вывод результата в ячейку D2:
=ЕСЛИ(C5>5;«Заказ не требуется»;«Необходим заказ»)
На выходе получаем результат:
Бывает, что условие носит более сложный характер, например выполнение 2-х и более условий:
- если значение в столбце «Количество» больше 5, а значение в колонке «Тип» равно «А»
- то нужно вывести в колонке «Результат» значение «1», в обратном случае «0».
В данном случае мы уже не можем ограничиться использованием одной только формулы «ЕСЛИ», необходимо добавить в ее синтаксис другую формулу. И это будет еще одна логическая формула «И» (AND).
Синтаксис формулы следующий:
И(логическое_значение1, [логическое_значение2], …)
- Логическое_значение1-2 и т.д. — проверяемое условие, вычисление которого дает значение ИСТИНА или ЛОЖЬ
Синтаксис решения будет следующим:
Вывод результата в ячейку D2:
=ЕСЛИ(И(C2>5;B2=«А»);1;0)
Таким образом, используя сочетание 2-х формул, мы находим решение нашей задачи и получаем результат:
Попробуем усложнить задачу – новое условие:
- если значение в столбце «Количество» равно 10, а значение в колонке «Тип» равно «А»
- или же значение в столбце «Количество» больше или равно 5, а значение «Тип» равен «Б»
- то нужно вывести в колонке «Результат» значение «1», в обратном случае «0».
Синтаксис решения будет следующим:
Вывод результата в ячейку D2:
=ЕСЛИ(ИЛИ(И(C2=10;B2=«А»); И(C2>=5;B2=«Б»));1;0)
Как видно из записи, в формулу «ЕСЛИ» включено одно условие «ИЛИ» (OR) и два условия с использованием формулы «И», включенных в него. Если хотя бы одно из условий 2-го уровня имеет значение «ИСТИНА», то в колонку «Результат» будет выведен результат «1», в противном случае будет «0».
Результат:
Теперь перейдем к следующей ситуации:
Представим, что в зависимости от значения в столбце «Условие» должно выводиться определенное условие в столбце «Результат», ниже приведено соответствие значений и результата.
Условие:
- 1 = А
- 2 = Б
- 3 = В
- 4 = Г
При решении задачи с помощью функции «ЕСЛИ», синтаксис будет следующим:
Вывод результата в ячейку B2:
=ЕСЛИ(A2=1;«А»; ЕСЛИ(A2=2;«Б»; ЕСЛИ(A2=3;«В»; ЕСЛИ(A2=4;«Г»;0))))
Результат:
Как видно, написание подобной формулы не только не очень удобно и громоздко, но и может занять некоторое время на ее редактирование у неопытного пользователя в случае ошибки.
Минус подобного подхода в том, что он применим для небольшого количества условий, ведь, все их придется набирать вручную и «раздувать» нашу формулу до больших размеров, однако подход отличает полная «всеядность» к значениям и универсальность использования.
Альтернативное решение_1:
Использование формулы «ВЫБОР» (CHOOSE),
Синтаксис функции:
ВЫБОР(номер_индекса, значение1, [значение2], …)
- Номер_индекса — номер выбираемого аргумента-значения. Номер индекса должен быть числом от 1 до 254, формулой или ссылкой на ячейку, содержащую число в диапазоне от 1 до 254.
- Значение1, значение2,… — значение от 1 до 254 аргументов-значений, из которых функция «ВЫБОР», используя номер индекса, выбирает значение или выполняемое действие. Аргументы могут быть числами, ссылками на ячейки, определенными именами, формулами, функциями или текстом.
При ее использовании, мы сразу заносим результаты условий в зависимости от указанных значений.
Условие:
- 1 = А
- 2 = Б
- 3 = В
- 4 = Г
Синтаксис формулы:
=ВЫБОР(A2;«А»;«Б»;«В»;«Г»)
Результат аналогичен решению с цепочкой функций «ЕСЛИ» выше.
При применении этой формулы существуют следующие ограничения:
В ячейку «А2» (номер индекса) могут быть указаны только цифры, а значения результата будут выводиться в порядке возрастания от 1 до 254 значений.
Иными словами, функция будет работать только если в ячейке «А2» указаны цифры от 1 до 254 в порядке возрастания и это накладывает определенные ограничения при использовании этой формулы.
Т.е. если мы захотим, что бы значение «Г» выводилось при указании числа 5,
- 1 = А
- 2 = Б
- 3 = В
- 5 = Г
то формула будет иметь следующий синтаксис:
Вывод результата в ячейку B2:
=ВЫБОР(A31;«А»;«Б»;«В»;;«Г»)
Как видно, значение «4» в формуле нам приходится оставить пустым и перенести результат «Г» на порядковый номер «5».
Альтернативное решение_2:
Вот мы и подошли к одной из самых популярных функций Excel, овладение которой автоматически превращает любого офисного работника в «опытного пользователя excel» /sarcasm/.
Синтаксис формулы:
ВПР(искомое_значение, таблица, номер_столбца, [интервальный_просмотр])
- Искомое_значение – значение, поиск которого осуществляется функцией.
- Таблица – диапазон ячеек, содержащий данные. Именно в этих ячейках будет происходить поиск. Значения могут быть текстовыми, числовыми или логическими.
- Номер_столбца — номер столбца в аргументе «Таблица», из которого будет выводиться значение в случае совпадения. Важно понимать, что отсчет столбцов происходит не по общей сетке листа (A.B,C,D и т.д.), а внутри массива, указанного в аргументе «Таблица».
- Интервальный_просмотр — определяет, какое совпадение должна найти функция — точное или приблизительное.
Важно: функция «ВПР» ищет совпадение только по первой уникальной записи, если искомое_значение присутствует в аргументе «Таблица» несколько раз и имеет разные значения, то функция «ВПР» найдет только самое ПЕРВОЕ совпадение, результаты по всем остальным совпадениям показаны не будутИспользование формулы «ВПР» (VLOOKUP) связано с еще одним подходом в работе с данными, а именно с формированием «справочников».
Суть подхода в создании «справочника» соответствия аргумента «Искомое_значение» определенному результату, отдельно от основного массива, в котором прописываются условия и соответствующие им значения:
Затем в рабочей части таблицы уже прописывается формула со ссылкой на справочник, заполненный ранее. Т.е. в справочнике в столбце «D» происходит поиск значения из столбца «А» и при нахождении соответствия выводится значение из столбца «Е» в столбец «В».
Синтаксис формулы:
Вывод результата в ячейку B2:
=ВПР(A2;$D$2:$E$5;2;0)
Результат:
Теперь представим ситуацию, когда необходимо подтянуть данные в одну таблицу из другой, при этом таблицы не идентичны. См. пример ниже
Видно, что строки в столбцах «Продукт» обеих таблиц не совпадают, однако, это не является препятствием для использования функции «ВПР».
Вывод результата в ячейку B2:
=ВПР($A3;$H$3:$M$6;2;0)
Но при решении сталкиваемся с новой проблемой – при «протягивании» написанной нами формулы вправо от столбца «В» до столбца «Е», нам придется вручную заменять аргумент «номер_столбца». Дело это трудоемкое и неблагодарное, потому, на помощь нам приходит другая функция — «СТОЛБЕЦ» (COLUMN).
Синтаксис функции:
СТОЛБЕЦ([ссылка])
- Ссылка — ячейка или диапазон ячеек, для которых требуется возвратить номер столбца.
Если использовать запись типа:
=СТОЛБЕЦ()
то функция выведет номер текущего столбца (в ячейке которого написана формула).
В результате получается число, которое можно использовать в функции «ВПР», чем мы и воспользуемся и получаем следующую запись формулы:
Вывод результата в ячейку B2:
=ВПР($A3;$H$3:$M$6; СТОЛБЕЦ();0)
Функция «СТОЛБЕЦ» определит номер текущего столбца, который будет использоваться аргументом «Номер_столбца» для определения номера столбца поиска в справочнике.
Кроме того, можно использовать конструкцию:
=СТОЛБЕЦ()-1
Вместо числа «1» можно использовать любое число (а также не только вычитать его, но и прибавлять к полученному значению), для получения желаемого результата, если нет желания ссылаться на определенную ячейку в столбце с нужным нам номером.
Получившийся результат:
Продолжаем развивать тему и усложняем условие: представим, что у нас есть два справочника с разными данными по продуктам и необходимо вывести в таблицу с результатом значения в зависимости от того, какой тип справочника указан в колонке «Справочник»
Условие:
- Если в столбце «Справочник» указано число 1, данные должны тянуться из таблицы «Справочник_1», если число 2, то из таблицы «Справочник_2» в соответствии с указанным месяцем
Вариант решения, который сразу приходит на ум, следующий:
Вывод результата в ячейку C3:
=ЕСЛИ($B3=1; ВПР($A3;$G$3:$I$6; СТОЛБЕЦ()-1;0); ВПР($A3;$K$3:$M$6; СТОЛБЕЦ()-1;0))
Плюсы: наименование справочника может быть любым (текст, цифры и их сочетание), минусы – плохо подходит, если вариантов более 3-х.
Если же номера справочников всегда представляют собой числа, имеет смысл использовать следующее решение:
Вывод результата в ячейку C3:
=ВПР($A3; ВЫБОР($B3;$G$3:$I$6;$K$3:$M$6); СТОЛБЕЦ()-1;0)
Плюсы: формула может включать до 254 наименований справочников, минусы – их наименование должно быть строго числовым.
Результат для формулы с использованием функции «ВЫБОР»:
Бонус: ВПР по двум и более признакам в аргументе «искомое_значение».
Условие:
- Представим, что у нас как всегда есть массив данных в табличной форме (если нет, то мы к нему приводим данные), из массива по определенным признакам необходимо получить значения и поместить их в другую табличную форму.
Обе таблицы приведены ниже:
Как видно из табличных форм, каждая позиция имеет не только наименование (которое не является уникальным), но также и относится к определенному классу и имеет свой вариант фасовки.
Используя сочетание имени и класса и фасовки, мы можем создать новый признак, для этого в таблице с данными создаем дополнительный столбец «Доп.признак», который заполняем при помощи следующей формулы:
=H3&»_»&I3&»_»&J3
Используя символ «&», объединяем три признака в один (разделитель между словами может быть любым, как и не быть вовсе, главное использовать аналогичное правило и для поиска)
Аналогом формулы может быть функция «СЦЕПИТЬ» (CONCATENATE), в этом случае она будет выглядеть следующим образом:
=СЦЕПИТЬ(H3;»_»;I3;»_»;J3)
После того, как дополнительный признак создан для каждой записи в таблице с данными, приступаем к написанию функции поиска по этому признаку, которая будет иметь вид:
Вывод результата в ячейку D3:
=ЕСЛИОШИБКА(ВПР(A2&»_»&B2&»_»&C2;$G$2:$K$6;5;0);0)
В функции «ВПР» в качестве аргумента «искомое_значение» используем все ту же связку трех признаков (наименование_класс_фасовка), но берем ее уже в таблице для заполнения и заносим непосредственно в аргумент (как вариант, можно было бы выделить значение для аргумента в дополнительный столбец в таблице для заполнения, но это действие будет излишним).
Напоминаю, что использование функции «ЕСЛИОШИБКА» (IFERROR) необходимо, если искомое значение так и не будет найдено, и функция «ВПР» выведет нам значение «#Н/Д» (об этом ниже).
Результат на картинке ниже:
Данный прием можно использовать и для большего количества признаков, единственное условие – уникальность получаемых комбинаций, если она не соблюдается, то результат будет некорректным.
Кейс_3 Поиск значения в массиве, или когда ВПР не в силах нам помочь
Рассмотрим ситуацию, когда необходимо понять, есть ли в массиве ячеек нужные нам значения.
Задача:
- в столбце «Условие поиска» указано значение и необходимо определить, присутствует ли оно в столбце «Массив для поиска»
Визуально все выглядит в следующем виде:
Как мы видим, функция «ВПР» тут бессильна, т.к. мы ищем не точное совпадение, а именно наличие в ячейке нужного нам значения.
Для решения задачи необходимо использовать комбинацию нескольких функций, а именно:
«ЕСЛИ»
«ЕСЛИОШИБКА»
«СТРОЧН»
«НАЙТИ»
По порядку обо всех, «ЕСЛИ» мы уже разобрали ранее, потому перейдем к функции «ЕСЛИОШИБКА» (IFERROR)
ЕСЛИОШИБКА(значение, значение_при_ошибке)
- Значение — аргумент, проверяемый на возникновение ошибок.
- Значение_при_ошибке — значение, возвращаемое при ошибке при вычислении по формуле. Возможны следующие типы ошибок: #Н/Д, #ЗНАЧ!, #ССЫЛКА!, #ДЕЛ/0!, #ЧИСЛО!, #ИМЯ? и #ПУСТО!.
Важно: данная формула практически всегда обязательна при работе с массивами информации и справочниками, т.к. зачастую бывает, что искомое значение не находится в справочнике и в этом случае функция возвращает ошибку. Если же в ячейке выводится ошибка и ячейка участвует, например, в вычислении, то оно так же произойдет с ошибкой. Плюс ко всему, ячейкам, где формула возвратила ошибку можно присваивать различные значения, которые облегчают их статистическую обработку. Также, в случае ошибки можно выполнять другие функции, что очень удобно при работе с массивами и позволяет строить формулы с учетом довольно разветвленных условий.
«СТРОЧН» (LOWER)
СТРОЧН(текст)
- Текст — текст, преобразуемый в нижний регистр.
Важно: функция «СТРОЧН» не заменяет знаки, не являющиеся буквами.
Роль в формуле: поскольку функция «НАЙТИ» (FIND) осуществляет поиск и учетом регистра текста, то необходимо привести весь текст к одному регистру, в противном случае «чАй» будет не равно «чай» и т.д. Это актуально, если значение регистра не является условием поиска и отбора значений, в противном случае формулу «СТРОЧН» можно не использовать, так поиск будет более точным.
Теперь подробнее о синтаксисе функции «НАЙТИ» (FIND).
НАЙТИ(искомый_текст, просматриваемый_текст, [нач_позиция])
- Искомый_текст — текст, который необходимо найти.
- Просматриваемый_текст — текст, в котором нужно найти искомый текст.
- Нач_позиция — знак, с которого нужно начать поиск. Первый знак в тексте «просматриваемый_текст» имеет номер 1. Если номер не указан, он по умолчанию считается равным 1.
Синтаксис формулы-решения будет иметь вид:
Вывод результата в ячейку B2:
=ЕСЛИ(ЕСЛИОШИБКА(НАЙТИ(СТРОЧН(A2); СТРОЧН(E2);1);0)=0;«fail»;«bingo!»)
Разберем логику формулы по действиям:
- СТРОЧН(A2) – преобразует аргумент «Искомый_текст» в ячейке в А2 в текст с нижним регистром
- Функция «НАЙТИ» начинает поиск преобразованного аргумента «Искомый_текст» в массиве «Просматриваемый_текст», который преобразовывается функцией «СТРОЧН(E2)», также в текст с нижним регистром.
- В случае если, функция находит совпадение, т.е. возвращает порядковый номер первого символа совпадающего слова/значения, срабатывает условие ИСТИНА в формуле «ЕСЛИ», т.к. полученное значение не равно нулю. Как результат, в столбце «Результат» будет выведено значение «Bingo!»
- Если же, функция не находит совпадение т.е. порядковый номер первого символа совпадающего слова/значения не указывается и вместо значения возвращается ошибка, срабатывает условие, заложенное в формулу «ЕСЛИОШИБКА» и возвращается значение равное «0», что соответствует условию ЛОЖЬ в формуле «ЕСЛИ», т.к. полученное значение равно «0». Как результат, в столбце «Результат» будет выведено значение «fail».
Как видно из рисунка выше, благодаря функциям «СТРОЧН» и «НАЙТИ» мы находим искомые значения вне зависимости от регистра символов, и места нахождения в ячейке, но необходимо обратить внимание на строку 5.
Условие поиска задано как «111», но в массиве поиска указано значение «1111111 печенюшки», однако формула выдает результат «Bingo!». Это происходит потому, что значение «111» входит в ряд значений «1111111», как следствие находится совпадение. В обратном случае данное условие не сработает.
Кейс_4 Поиск значения в массиве по нескольким условиям, или когда ВПР тем более не в силах нам помочь
Представим ситуацию, когда необходимо найти значение из «Таблица с результатом» в двумерном массиве «Справочник» по нескольким условиям, а именно по значению «Наименование» и «Месяц».
Табличная форма задания будет иметь следующий вид:
Условие:
- В таблицу с результатом необходимо подтянуть данные в соответствии с совпадением условий «Наименование» и «Месяц».
Для решения подобной задачи подойдет комбинация функций «ИНДЕКС» и «ПОИСКПОЗ»
Синтаксис функции «ИНДЕКС» (INDEX)
ИНДЕКС(массив, номер_строки, [номер_столбца])
- Массив — диапазон ячеек, из которого будут показываться значения в случае совпадения условий их поиска.
- Если массив содержит только одну строку или один столбец, аргумент «номер_строки» или «номер_столбца» соответственно не является обязательным.
- Если массив занимает больше одной строки и одного столбца, а из аргументов «номер_строки» и «номер_столбца» задан только один, то функция «ИНДЕКС» возвращает массив, состоящий из целой строки или целого столбца аргумента «массив».
- Номер_строки — номер строки в массиве, из которой требуется возвратить значение.
- Номер_столбца — номер столбца в массиве, из которого требуется возвратить значение.
Иными словами функция возвращает из указанного массива в аргументе «Массив» значение, которое находится на пересечении координат, указанных в аргументах «Номер_строки» и «Номер_столбца».
Синтаксис функции «ПОИСКПОЗ» (MATCH)
ПОИСКПОЗ(искомое_значение, просматриваемый_массив, [тип_сопоставления])
- Искомое_значение — значение, которое сопоставляется со значениями в аргументе просматриваемый_массив. Аргумент искомое_значение может быть значением (числом, текстом или логическим значением) или ссылкой на ячейку, содержащую такое значение.
- Просматриваемый_массив — диапазон ячеек, в которых производится поиск.
- Тип_сопоставления — необязательный аргумент. Число -1, 0 или 1.
Функция ПОИСКПОЗ выполняет поиск указанного элемента в диапазоне ячеек и возвращает относительную позицию этого элемента в диапазоне.
Суть использования комбинации функций «ИНДЕКС» и «ПОИСКПОЗ» в том, то мы производим поиск координат значений по их наименованию по «осям координат».
Осью Y будет столбец «Наименование», а осью X – строка «Месяцы».
часть формулы:
ПОИСКПОЗ($A4;$I$4:$I$7;0)
возвращает число по оси Y, в данном случае оно будет равно 1, т.к. значение «А» присутствует в искомом диапазоне и имеет относительную позицию «1» в этом диапазоне.
часть формулы:
ПОИСКПОЗ(B$3;$J$3:$L$3;0)
возвращает значение #Н/Д, т.к. значение «1» отсутствует в просматриваемом диапазоне.
Таким образом, мы получили координаты точки (1; #Н/Д) которые функция «ИНДЕКС» использует для поиска в аргументе «Массив».
Полностью написанная функция для ячейки B4 будет иметь следующий вид:
=ИНДЕКС($J$4:$L$7; ПОИСКПОЗ($A4;$I$4:$I$7;0); ПОИСКПОЗ(B$3;$J$3:$L$3;0))
По сути, если бы мы знали координаты нужного нам значения, функция выглядела бы следующим образом:
=ИНДЕКС($J$4:$L$7;1;#Н/Д))
Поскольку, аргумент «Номер_столбца» имеет значение «#Н/Д», то результат для ячейки «B4» будет соответствующий.
Как видно из получившегося результата не все значения в таблице с результатом находят совпадение со справочником и в итоге мы видим, что часть значений в таблице выводится в виде «#Н/Д», что затрудняет использование данных для дальнейших расчетов.
Результат:
Что бы нейтрализовать этот негативный эффект используем функцию «ЕСЛИОШИБКА», о которой мы читали ранее, и заменяем значение, возвращающееся при ошибке на «0», тогда формула будет иметь вид:
Вывод результата в ячейку B4:
=ЕСЛИОШИБКА(ИНДЕКС($J$4:$L$7; ПОИСКПОЗ($A4;$I$4:$I$7;0); ПОИСКПОЗ(B$3;$J$3:$L$3;0));0)
Демонстрация результата:
Как видно на картинке, значения «#Н/Д» более не мешают нам в последующих вычислениях с использованием значений в таблице с результатом.
Кейс_5 Поиск значения в диапазоне чисел
Представим, что нам необходимо дать определенный признак числам, входящим в определенный диапазон.
Условие:
В зависимости от стоимости продукта ему должна присваиваться определенная категория
Если значение находится в диапазоне
- От 0 до 1000 = А
- От 1001 до 1500 = Б
- От 1501 до 2000 = В
- От 2001 до 2500 = Г
- Более 2501 = Д
Функция ПРОСМОТР (LOOKUP) возвращает значение из строки, столбца или массива. Функция имеет две синтаксических формы: векторную и форму массива.
ПРОСМОТР(искомое_значение; просматриваемый_вектор; [вектор_результатов])
- Искомое_значение — значение, которое функция ПРОСМОТР ищет в первом векторе. Искомое_значение может быть числом, текстом, логическим значением, именем или ссылкой на значение.
- Просматриваемый_вектор — диапазон, состоящий из одной строки или одного столбца. Значения в аргументе просматриваемый_вектор могут быть текстом, числами или логическими значениями.
- Значения в аргументе просматриваемый_вектор должны быть расположены в порядке возрастания: …, -2, -1, 0, 1, 2, …, A-Z, ЛОЖЬ, ИСТИНА; в противном случае функция ПРОСМОТР может возвратить неправильный результат. Текст в нижнем и верхнем регистрах считается эквивалентным.
- Вектор_результатов — диапазон, состоящий из одной строки или столбца. Вектор_результатов должен иметь тот же размер, что и просматриваемый_вектор.
Вывод результата в ячейку B3:
=ПРОСМОТР(E3;$A$3:$A$7;$B$3:$B$7)
Аргументы «Просматриваемый_вектор» и «Вектор_результата» можно записать в форме массива – в этом случае не придется выводить их в отдельную таблицу на листе Excel.
В этом случае функция будет выглядеть следующим образом:
Вывод результата в ячейку B3:
=ПРОСМОТР(E3;{0;1001;1501;2001;2501};{«А»;«Б»;«В»;«Г»;«Д»})
Кейс_6 Суммирование чисел по признакам
Для суммирования чисел по определенным признакам можно использовать три разных функции:
СУММЕСЛИ (SUMIF) – суммирует только по одному признаку
СУММЕСЛИМН (SUMIFS) – суммирует по множеству признаков
СУММПРОИЗВ (SUMPRODUCT) – суммирует по множеству признаков
Существует также вариант с использованием «СУММ» (SUM) и функции формулы массивов, когда формула «СУММ» возводится в массив:
({=СУММ(()*())}
но такой подход довольно неудобен и полностью перекрывается по функционалу формулой «СУММПРОИЗВ»
Теперь подробнее по синтаксису «СУММПРОИЗВ»:
СУММПРОИЗВ(массив1, [массив2], [массив3],…)
- Массив1 — первый массив, компоненты которого нужно перемножить, а затем сложить результаты.
- Массив2, массив3… — от 2 до 255 массивов, компоненты которых нужно перемножить, а затем сложить результаты.
Условие:
- Найти общую сумму по стоимости отгрузок по каждому из продуктов за определенный период:
Как видно из таблицы с данными, что бы посчитать стоимость необходимо цену умножить на количество, а полученное значение, применив условия отбора переносить в таблица с результатом.
Однако, формула «СУММПРОИЗ» позволяет проводить такие расчеты внутри формулы.
Вывод результата в ячейку B4:
=СУММПРОИЗВ(($A4=$H$3:$H$11)*($K$3:$K$11>=B$3)*($K$3:$K$11<C$3);($M$3:$M$11)*($L$3:$L$11))
Разберем формулу по частям:
($A4=$H$3:$H$11)
– задаем условие по отбору в столбце «Наименование» таблицы с данными по столбцу «Наименование» в таблице с результатом
($K$3:$K$11>=B$3)*($K$3:$K$11<C$3)
– задаем условие по временным рамкам, дата больше или равна первого числа текущего месяца, но меньше первого числа месяца следующего. Аналогично – условие в таблице с результатом, массив – в таблице с данными.
($M$3:$M$11)*($L$3:$L$11)
– перемножаем столбцы «Количество» и «Цена» в таблице с данными.
Несомненным плюсом данной функции является свободный порядок записи условий, их можно записывать в любом порядке, на результат это не повлияет.
Результат:
Теперь усложним условие и добавим требование, что бы отбор по наименованию «печеньки» происходил только по классам «малые» и «большие», а по наименованию «булки» все, кроме по классу «с джемом»:
Вывод результата в ячейку B4:
=СУММПРОИЗВ(($A4=$H$3:$H$11)*($J$3:$J$11>=B$3)*($J$3:$J$11<C$3)*(($I$3:$I$11=«малые»)+($I$3:$I$11=«большие»));($L$3:$L$11*$K$3:$K$11))
В формуле для отбора по печенькам добавилось новое условие:
(($I$3:$I$11=«малые»)+($I$3:$I$11=«большие»))
– как видно, два или более условия по одному столбцу выделяются в отдельную группу при помощи символа «+» и заключения условий в дополнительные скобки.
В формуле для отбора по булкам также добавилось новое условие:
=СУММПРОИЗВ(($A5=$H$3:$H$11)*($J$3:$J$11>=B$3)*($J$3:$J$11<C$3)*($I$3:$I$11<>«с джемом»);($L$3:$L$11)*($K$3:$K$11))
это:
($I$3:$I$11<>«с джемом»)
– на самом деле, в данной формуле можно было написать условие отбора также как и при отборе по печенькам, но тогда, пришлось бы перечислять три условия в формуле, в данном случае, проще написать исключение – не равно «с джемом» для этого используем значение «<>».
Вообще, если группы признаков/классов заранее известны, то лучше объединять их в эти группы, создавая справочники, чем записывать все условия в функцию, раздувая ее.
Результат:
Что ж, вот мы и подошли к концу нашего краткого мануала, который на самом деле мог бы быть намного больше, но целью было все-таки дать решение наиболее встречающихся ситуаций, а не описывать решение частных (но гораздо более интересных случаев).
Надеюсь, что мануал поможет кому-нибудь в решении задач при помощи Excel, ведь это будет значить, что мой труд не пропал зря!
Спасибо за уделенное время!