Для поиска значения на пересечении строки и столбца требуется наличие таблицы специального вида: в строке заголовков и самом левом столбце должны быть неповторяющиеся значения.
Для поиска значения на пересечении строки и столбца требуется 2 критерия: «координаты» по строке и столбцу. Для однозначного поиска требуется, чтобы в строке заголовков и самом левом столбце, по которым будет производиться поиск значений, находились
неповторяющиеся
значения.
Примером такой задачи может служить таблица умножения: первый множитель определяет координату в строке, а второй – в столбце, результат (произведение) – на пересечении.
Другой пример — табель учета рабочего времени: ищется дата (диапазон поиска — строка), затем сотрудник (диапазон поиска — столбец), а на их пересечении – результат (присутствовал на работе, был в отгуле или в отпуске).
Задача
Создадим таблицу продаж машин различных марок по месяцам. Выбирая марку машины и месяц, пользователь получает число проданных машин.
Для поиска значения на пересечении строки и столбца можно использовать разные подходы (см.
файл примера, лист Пример1
).
Поиск с помощью функции ИНДЕКС()
Запишем длинную, но простую для понимания формулу
=ИНДЕКС($B$13:$G$21;ПОИСКПОЗ(D10;$A$13:$A$21;0);ПОИСКПОЗ(E9;$B$12:$G$12;0))
Две функции
ПОИСКПОЗ()
определяют номер строки и столбца для функции
ИНДЕКС()
. Для однозначного поиска номера строки (столбца), в этих диапазонах не должно быть повторов.
Поиск с помощью функции СУММПРОИЗВ()
Другой вариант поиска – использование функции
СУММПРОИЗВ()
=СУММПРОИЗВ((B12:G12=J9)*(A13:A21=I10)*(B13:G21))
Поиск методом пересечения
В EXCEL существует малоизвестный
метод
Пересечений
, основанный на использовании
именованных диапазонов
. Для создания пересечения сделайте следующее:
-
выделите диапазон
A7:
G
16
(таблицу продаж вместе с заголовками); -
нажмите кнопку «
Создать из выделенного фрагмента
»
(
); -
убедитесь, что стоят галочки «
В строке выше
» и «
В столбце слева
»; - нажмите ОК.
Проверить, какие
имена
были созданы, можно через
Диспетчер Имен
(
).
EXCEL создал 15 именованных диапазонов. В качестве имен использованы 6 названий месяцев и 9 марок автомобилей. Теперь произведем, собственно, поиск.
-
введите в ячейки
А10
и
B9
два критерия:
Янв
и
Saab
(определим продажи Saab в январе) -
введите формулу
=ДВССЫЛ(A10) ДВССЫЛ(B9)
(между функциями
ДВССЫЛ()
— пробел). -
Нажмите
ENTER
.
При вычислении, вместо формул с
ДВССЫЛ()
будут подставлены, определенные ранее имена:
Янв
и
Saab
, совпадающие с критериями. Наличие пробела означает, что будет использован
метод Пересечений
– будет выведено значение на пересечении соответствующих именам строке и столбцу.
Разберем подробнее. В
Строке формул
выделите
ДВССЫЛ(A10)
и нажмите
клавишу
F9
.
Получим значения соответствующего именованного диапазона
Saab
{
3600
;1520;5480;4588;5336;2588}. Затем выделите
ДВССЫЛ(B9)
. Получим другой массив {4064:1992:812:3185:4617:
3600
:5594:4218:3637}. Метод пересечений вернет значение на пересечении строки и столбца, т.е.
3600
.
Пример 2
Второй пример — это определение зарплаты сотрудника по ведомости (см. файл примера, лист Пример2).
Выбрав Фамилию и Квартал, можно узнать зарплату.
Решение основано на использовании формул, рассмотренных в предыдущем примере.
Оператор пересечения – один из основных операторов в Microsoft Excel, однако знаком он только небольшому количеству пользователей. В данной статье я исправлю эту ситуацию и детально расскажу о том, что это за оператор и в каких ситуациях может использоваться.
Для чего нужен оператор пересечения
Обратите внимание на следующий скриншот. На нем вы видите таблицу со столбцами и строками. Выделен столбец со строкой, и есть ячейка, в которой они пересекаются. Оператор пересечения и нужен для поиска этой ячейки. По умолчанию он выведет как раз значение, которое находится в этом месте.
Стандартное использование оператора пересечения
Для начала давайте разберемся с тем, как просто использовать оператор пересечения и вывести в пустой ячейке то самое искомое значение. Вам понадобится любая таблица, состоящая из нескольких столбцов и строк с заполненными данными. Далее остается выполнить следующие действия:
-
Выделите пустую ячейку для вывода результата, в ней добавьте знак = и выделите левой кнопкой мыши всю строку.
-
После этого поставьте пробел. Этот знак и является оператором пересечения.
-
После пробела укажите диапазон столбца, точно так же выделив его левой кнопкой мыши.
-
Нажмите клавишу Enter, чтобы ознакомиться с результатом. Как видно, оператор узнал, какая ячейка есть как в столбце, так и в строке, отобразив ее значение в клетке.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Использование оператора пересечения в формулах
Описанная выше формула с применением оператора пересечения хоть и кажется интересной, но в чистом виде практически не используется, поскольку и внешне понятно, какое значение есть в столбце и строке. Чаще этот оператор используют вместе с разными функциями при расчетах. Вы можете сделать строку по примеру =СУММ(A3:E3 C1:C5)+500, чтобы оператором пересечения найти ячейку и добавить к ней еще 500. Это довольно простая и стандартная операция.
Примерно то же самое можно сделать и с функцией ЕСЛИ. Для логического значения используется оператор пересечения и срабатывает определенный результат лжи или истины, который вы настраиваете самостоятельно при помощи аргументов функции.
Дополнительные сведения про оператор пересечения
В завершение давайте рассмотрим еще несколько интересных моментов работы с оператором, которые могут оказаться полезными при проведении расчетов в электронной таблице. Например, вы можете взять диапазон, состоящий не только из одного столбца и строки, но и из нескольких, последовательно выделив все ячейки примерно так, как это показано на скриншоте.
По умолчанию оператор пересечения не сможет вывести два или более значений, поэтому такое выделение диапазонов используется исключительно с другими функциями. Например, вы можете суммировать все значения, подходящие под пересечение.
Вместе с этим можно найти минимальное значение среди них, применив знакомую всем формулу МИН. Не забывайте только ставить пробел между столбцами и строками, поскольку это и есть знак оператора пересечения.
Если вы используете умную таблицу или для каждого столбца со строками задали свои названия, то при выделении с использованием оператора вместо стандартных обозначений ячеек вы можете вводить целые названия диапазонов. Тогда вид формулы будет примерно такой, как это показано на следующем изображении.
В заключение
На этом все, и базовые принципы работы с оператором пересечения мы рассмотрели. Надеюсь, вы сможете применить эти навыки в будущих расчетах, чтобы упростить процесс работы с электронными таблицами.
Читайте также:
- Как включить калькулятор в Microsoft Excel.
- Как работать с шаблонами в Microsoft Excel.
- Как защитить диапазон, лист и книгу в Microsoft Excel.
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. Я благодарю вас за чтение и надеюсь еще увидеть вас в нашем блоге.
Еще несколько материалов по теме:
Если вы знакомы с функцией ВПР (VLOOKUP) или ее горизонтальным аналогом ГПР (HLOOKUP), то должны помнить, что эта замечательные функции ищут информацию только по одному параметру, т.е. в одномерном массиве — по строке или по столбцу. А если нам необходимо выбирать данные из двумерной таблицы по совпадению сразу двух параметров — и по строке и по столбцу одновременно? Давайте рассмотрим несколько жизненных примеров таких задач и их решения.
Пример 1. Найти значение по товару и городу
Предположим, что у нас имеется вот такой двумерный массив данных по городам и товарам:
Пользователь вводит (или выбирает из выпадающих списков) в желтых ячейках нужный товар и город. В зеленой ячейке нам нужно формулой найти и вывести число из таблицы, соответствующее выбранным параметрам. Фактически, мы хотим найти значение ячейки с пересечения определенной строки и столбца в таблице. Для наглядности, разобъем задачу на три этапа.
- Во-первых, нам нужно определить номер строки, соответствующей выбранному пользователем в желтой ячейке товару. Это поможет сделать функция ПОИСКПОЗ (MATCH) из категории Ссылки и массивы (Lookup and Reference). В частности, формула ПОИСКПОЗ(J2; A2:A10; 0) даст нам нужный результат (для Яблока это будет число 6). Первый аргумент этой функции — искомое значение (Яблоко из желтой ячейки J2), второй — диапазон ячеек, где мы ищем товар (столбец с товарами в таблице — A2:A10), третий аргумент задает тип поиска (0 — точное совпадение наименования, приблизительный поиск запрещен).
- Во-вторых, совершенно аналогичным способом мы должны определить порядковый номер столбца в таблице с нужным нам городом. Функция ПОИСКПОЗ(J3; B1:F1; 0) сделает это и выдаст, например, для Киева, выбранного пользователем в желтой ячейке J3 значение 4.
- И, наконец, в-третьих, нам нужна функция, которая умеет выдавать содержимое ячейки из таблицы по номеру строки и столбца — функция ИНДЕКС (INDEX) из той же категории Ссылки и массивы (Lookup and Reference). Первый аргумент этой функции — диапазон ячеек (в нашем случае это вся таблица, т.е. B2:F10), второй — номер строки, третий — номер столбца (а их мы определим с помощью функций ПОИСКПОЗ).
Итого, соединяя все вышеперечисленное в одну формулу, получаем для зеленой ячейки решение:
=ИНДЕКС(B2:F10; ПОИСКПОЗ(J2;A2:A10;0); ПОИСКПОЗ(J3;B1:F1;0))
или в английском варианте
=INDEX(B2:F10;MATCH(J2;A2:A10;0);MATCH(J3;B1:F1;0))
Пример 2. Приблизительный двумерный поиск
Слегка модифицируем предыдущий пример. Предположим, что у нас имеется вот такая ситуация:
Идея в том, что пользователь должен ввести в желтые ячейки высоту и ширину двери для, например, шкафа, которую он хочеть заказать у компании-производителя, а в серой ячейке должна появиться ее стоимость из таблицы. Важный нюанс в том, что если пользователь вводит нестандартные значения размеров, то они должны автоматически округлиться до ближайших имеющихся в таблице и в серой ячейке должна появиться стоимость изготовления двери для этих округленных стандарных размеров.
Решение для серой ячейки будет практически полностью аналогично предыдущему примеру:
=ИНДЕКС(C7:K16; ПОИСКПОЗ(D3;B7:B16;1); ПОИСКПОЗ(G3;C6:K6;1))
=INDEX(C7:K16; MATCH(D3;B7:B16;1); MATCH(G3;C6:K6;1))
Разница только в последнем аргументе обеих функций ПОИСКПОЗ (MATCH) — Типу сопоставления (здесь он равен минус 1). Это некий аналог четвертого аргумента функции ВПР (VLOOKUP) — Интервального просмотра (Range Lookup). Вообще говоря, возможных значений для него три:
- 1 — поиск ближайшего наименьшего числа, т.е. введенные пользователем размеры двери округлялись бы до ближайших наименьших подходящих размеров из таблицы. В нашем случае высота 500 округлилась бы до 450, а ширина 480 до 300, и стоимость двери была бы 135.
- -1 — поиск ближайшего наибольшего числа, т.е. нестандартная высота 500 округлялась бы до 700, а ширина 480 — до 600 и стоимость составила бы уже 462. Для бизнеса так гораздо интереснее!
- 0 — поиск точного соответствия без каких либо округлений. Используется для 100%-го совпадения искомого значения с одним из значений в таблице. Естественно, применяется при поиске текстовых параметров (как в прошлом примере), т.к. для них округление невозможно.
Важно отметить, что при использовании приблизительного поиска с округлением диапазон поиска — а значит и вся таблица — должна быть отсортирована по возрастанию (для Типа сопоставления = 1) или по убыванию (для Типа сопоставления = -1) по строчкам и по столбцам. Иначе приблизительный поиск корректно работать не будет!
Для точного поиска (Тип сопоставления = 0) сортировка не нужна и никакой роли не играет.
P.S. Обратная задача
В комментах неоднократно интересуются — а как сделать обратную операцию, т.е. определить в первом примере город и товар если мы знаем значение из таблицы? Тут потребуются две небольшие формулы массива (не забудьте ввести их с помощью сочетания клавиш Ctrl+Shift+Enter, а не обычного Enter):
Принцип их работы следующий:
- перебираем все ячейки в диапазоне B2:F10 и ищем совпадение с искомым значением (13) из ячейки J4 с помощью функции ЕСЛИ (IF)
- когда нашли совпадение, то определяем номер строки (столбца) первого элемента в таблице в этой строке (столбце) с помощью функций СТОЛБЕЦ (COLUMN) и СТРОКА (ROW)
- выдергиваем значение города или товара из таблицы с помощью функции ИНДЕКС (INDEX)
Ссылки по теме
- Использование функции ВПР (VLOOKUP) для подстановки значений
- Динамическая выборка из списка функциями ИНДЕКС и ПОИСКПОЗ
- Улучшаем функцию ВПР (VLOOKUP2)
- ВПР (VLOOKUP) с учетом регистра
- Многоразовый ВПР для вывода сразу всех значений
Содержание
- Excel пересечение двух ячеек
- Как найти пересечение двух списков столбцов в Excel?
- Значение в EXCEL на пересечении строки и столбца
- Задача
- Поиск с помощью функции ИНДЕКС()
- Поиск с помощью функции СУММПРОИЗВ()
- Поиск методом пересечения
- Пример 2
- Двумерный поиск в таблице (ВПР 2D)
- Пример 1. Найти значение по товару и городу
- Пример 2. Приблизительный двумерный поиск
- P.S. Обратная задача
- Как использовать оператор пересечения в Microsoft Excel
- Для чего нужен оператор пересечения
- Стандартное использование оператора пересечения
- Использование оператора пересечения в формулах
- Дополнительные сведения про оператор пересечения
- В заключение
Excel пересечение двух ячеек
Как найти пересечение двух списков столбцов в Excel?
Как показано на скриншоте ниже, как найти пересечение двух списков в Excel? Другими словами, как найти повторяющиеся значения в двух столбцах? В этой статье представлены два метода, которые помогут вам в этом.
Easily find intersection (same values) of two lists in Excel:
The Select Same & Defferent Cells utility of Kutools for Excel can help you to quickly find and select all intersections of two lists in Excel. See screenshot:
Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download the free trial Now!
Приведенная ниже формула может помочь вам найти пересечение двух списков в Excel. Пожалуйста, сделайте следующее.
1. Выберите пустой столбец, скопируйте формулу. =IF(ISERROR(MATCH(B2,$C$2:$C$9,0)),»»,B2) в панель формул и нажмите клавишу Enter. Смотрите скриншот:
Внимание: В формуле B2 — это первая ячейка первого списка, $ C $ 2: $ C $ 9 — это диапазон второго списка. Пожалуйста, измените их в зависимости от ваших потребностей.
2. Теперь обнаруживается первое пересечение, выберите его и перетащите маркер заливки вниз, чтобы получить все. Смотрите скриншот:
Если вы не хотите применять формулу, мы рекомендуем вам Выберите одинаковые и разные ячейки полезности Kutools for Excel чтобы легко найти все пересечения двух списков в Excel.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1. Нажмите Кутулс > Выбрать > Выберите одинаковые и разные ячейки.
2. в Выберите одинаковые и разные ячейки диалоговое окно, вам необходимо:
3. Затем появляется диалоговое окно, в котором указывается, сколько ячеек было выбрано, нажмите OK кнопка. И вы можете видеть, что все перекрестки выбраны и выделены в первом списке, как показано на скриншоте ниже:
Если вы хотите получить бесплатную пробную версию ( 30 -день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Office Tab — Tabbed Browsing, Editing, and Managing of Workbooks in Excel:
Office Tab brings the tabbed interface as seen in web browsers such as Google Chrome, Internet Explorer new versions and Firefox to Microsoft Excel. It will be a time-saving tool and irreplaceble in your work. See below demo:
Источник
Значение в EXCEL на пересечении строки и столбца
history 14 апреля 2013 г.
Для поиска значения на пересечении строки и столбца требуется наличие таблицы специального вида: в строке заголовков и самом левом столбце должны быть неповторяющиеся значения.
Для поиска значения на пересечении строки и столбца требуется 2 критерия: «координаты» по строке и столбцу. Для однозначного поиска требуется, чтобы в строке заголовков и самом левом столбце, по которым будет производиться поиск значений, находились неповторяющиеся значения.
Примером такой задачи может служить таблица умножения: первый множитель определяет координату в строке, а второй – в столбце, результат (произведение) – на пересечении.
Другой пример — табель учета рабочего времени: ищется дата (диапазон поиска — строка), затем сотрудник (диапазон поиска — столбец), а на их пересечении – результат (присутствовал на работе, был в отгуле или в отпуске).
Задача
Создадим таблицу продаж машин различных марок по месяцам. Выбирая марку машины и месяц, пользователь получает число проданных машин.
Для поиска значения на пересечении строки и столбца можно использовать разные подходы (см. файл примера, лист Пример1 ).
Поиск с помощью функции ИНДЕКС()
Запишем длинную, но простую для понимания формулу =ИНДЕКС($B$13:$G$21;ПОИСКПОЗ(D10;$A$13:$A$21;0);ПОИСКПОЗ(E9;$B$12:$G$12;0))
Две функции ПОИСКПОЗ() определяют номер строки и столбца для функции ИНДЕКС() . Для однозначного поиска номера строки (столбца), в этих диапазонах не должно быть повторов.
Поиск с помощью функции СУММПРОИЗВ()
Другой вариант поиска – использование функции СУММПРОИЗВ() =СУММПРОИЗВ((B12:G12=J9)*(A13:A21=I10)*(B13:G21))
Поиск методом пересечения
В EXCEL существует малоизвестный метод Пересечений , основанный на использовании именованных диапазонов . Для создания пересечения сделайте следующее:
- выделите диапазон A7:G16 (таблицу продаж вместе с заголовками);
- нажмите кнопку « Создать из выделенного фрагмента » ( Формулы/Определенные имена/ Создать из выделенного фрагмента );
- убедитесь, что стоят галочки « В строке выше » и « В столбце слева »;
- нажмите ОК.
Проверить, какие имена были созданы, можно через Диспетчер Имен ( Формулы/ Определенные имена/ Диспетчер имен ).
EXCEL создал 15 именованных диапазонов. В качестве имен использованы 6 названий месяцев и 9 марок автомобилей. Теперь произведем, собственно, поиск.
- введите в ячейки А10 и B9 два критерия: Янв и Saab (определим продажи Saab в январе)
- введите формулу =ДВССЫЛ(A10) ДВССЫЛ(B9) (между функциями ДВССЫЛ() — пробел).
- Нажмите ENTER .
При вычислении, вместо формул с ДВССЫЛ() будут подставлены, определенные ранее имена: Янв и Saab , совпадающие с критериями. Наличие пробела означает, что будет использован метод Пересечений – будет выведено значение на пересечении соответствующих именам строке и столбцу.
Разберем подробнее. В Строке формул выделите ДВССЫЛ(A10) и нажмите клавишу F9 . Получим значения соответствующего именованного диапазона Saab < 3600 ;1520;5480;4588;5336;2588>. Затем выделите ДВССЫЛ(B9) . Получим другой массив <4064:1992:812:3185:4617: 3600 :5594:4218:3637>. Метод пересечений вернет значение на пересечении строки и столбца, т.е. 3600 .
Пример 2
Второй пример — это определение зарплаты сотрудника по ведомости (см. файл примера, лист Пример2).
Выбрав Фамилию и Квартал, можно узнать зарплату.
Решение основано на использовании формул, рассмотренных в предыдущем примере.
Источник
Двумерный поиск в таблице (ВПР 2D)
Если вы знакомы с функцией ВПР (VLOOKUP) или ее горизонтальным аналогом ГПР (HLOOKUP), то должны помнить, что эта замечательные функции ищут информацию только по одному параметру, т.е. в одномерном массиве — по строке или по столбцу. А если нам необходимо выбирать данные из двумерной таблицы по совпадению сразу двух параметров — и по строке и по столбцу одновременно? Давайте рассмотрим несколько жизненных примеров таких задач и их решения.
Пример 1. Найти значение по товару и городу
Предположим, что у нас имеется вот такой двумерный массив данных по городам и товарам:
Пользователь вводит (или выбирает из выпадающих списков) в желтых ячейках нужный товар и город. В зеленой ячейке нам нужно формулой найти и вывести число из таблицы, соответствующее выбранным параметрам. Фактически, мы хотим найти значение ячейки с пересечения определенной строки и столбца в таблице. Для наглядности, разобъем задачу на три этапа.
- Во-первых, нам нужно определить номер строки, соответствующей выбранному пользователем в желтой ячейке товару. Это поможет сделать функция ПОИСКПОЗ (MATCH) из категории Ссылки и массивы (Lookup and Reference) . В частности, формула ПОИСКПОЗ(J2; A2:A10; 0) даст нам нужный результат (для Яблока это будет число 6). Первый аргумент этой функции — искомое значение (Яблоко из желтой ячейки J2), второй — диапазон ячеек, где мы ищем товар (столбец с товарами в таблице — A2:A10), третий аргумент задает тип поиска (0 — точное совпадение наименования, приблизительный поиск запрещен).
- Во-вторых, совершенно аналогичным способом мы должны определить порядковый номер столбца в таблице с нужным нам городом. Функция ПОИСКПОЗ(J3; B1:F1; 0) сделает это и выдаст, например, для Киева, выбранного пользователем в желтой ячейке J3 значение 4.
- И, наконец, в-третьих, нам нужна функция, которая умеет выдавать содержимое ячейки из таблицы по номеру строки и столбца — функция ИНДЕКС (INDEX) из той же категории Ссылки и массивы (Lookup and Reference) . Первый аргумент этой функции — диапазон ячеек (в нашем случае это вся таблица, т.е. B2:F10), второй — номер строки, третий — номер столбца (а их мы определим с помощью функций ПОИСКПОЗ).
Итого, соединяя все вышеперечисленное в одну формулу, получаем для зеленой ячейки решение:
=ИНДЕКС(B2:F10; ПОИСКПОЗ(J2;A2:A10;0) ; ПОИСКПОЗ(J3;B1:F1;0) )
или в английском варианте
Пример 2. Приблизительный двумерный поиск
Слегка модифицируем предыдущий пример. Предположим, что у нас имеется вот такая ситуация:
Идея в том, что пользователь должен ввести в желтые ячейки высоту и ширину двери для, например, шкафа, которую он хочеть заказать у компании-производителя, а в серой ячейке должна появиться ее стоимость из таблицы. Важный нюанс в том, что если пользователь вводит нестандартные значения размеров, то они должны автоматически округлиться до ближайших имеющихся в таблице и в серой ячейке должна появиться стоимость изготовления двери для этих округленных стандарных размеров.
Решение для серой ячейки будет практически полностью аналогично предыдущему примеру:
=ИНДЕКС(C7:K16; ПОИСКПОЗ(D3;B7:B16;1) ; ПОИСКПОЗ(G3;C6:K6;1) )
=INDEX(C7:K16; MATCH(D3;B7:B16;1); MATCH(G3;C6:K6;1))
Разница только в последнем аргументе обеих функций ПОИСКПОЗ (MATCH) — Типу сопоставления (здесь он равен минус 1). Это некий аналог четвертого аргумента функции ВПР (VLOOKUP) — Интервального просмотра (Range Lookup). Вообще говоря, возможных значений для него три:
- 1 — поиск ближайшего наименьшего числа, т.е. введенные пользователем размеры двери округлялись бы до ближайших наименьших подходящих размеров из таблицы. В нашем случае высота 500 округлилась бы до 450, а ширина 480 до 300, и стоимость двери была бы 135.
- -1 — поиск ближайшего наибольшего числа, т.е. нестандартная высота 500 округлялась бы до 700, а ширина 480 — до 600 и стоимость составила бы уже 462. Для бизнеса так гораздо интереснее! 🙂
- 0 — поиск точного соответствия без каких либо округлений. Используется для 100%-го совпадения искомого значения с одним из значений в таблице. Естественно, применяется при поиске текстовых параметров (как в прошлом примере), т.к. для них округление невозможно.
Важно отметить, что при использовании приблизительного поиска с округлением диапазон поиска — а значит и вся таблица — должна быть отсортирована по возрастанию (для Типа сопоставления = 1) или по убыванию (для Типа сопоставления = -1) по строчкам и по столбцам. Иначе приблизительный поиск корректно работать не будет!
Для точного поиска (Тип сопоставления = 0) сортировка не нужна и никакой роли не играет.
P.S. Обратная задача
В комментах неоднократно интересуются — а как сделать обратную операцию, т.е. определить в первом примере город и товар если мы знаем значение из таблицы? Тут потребуются две небольшие формулы массива (не забудьте ввести их с помощью сочетания клавиш Ctrl+Shift+Enter, а не обычного Enter):
Принцип их работы следующий:
- перебираем все ячейки в диапазоне B2:F10 и ищем совпадение с искомым значением (13) из ячейки J4 с помощью функции ЕСЛИ (IF)
- когда нашли совпадение, то определяем номер строки (столбца) первого элемента в таблице в этой строке (столбце) с помощью функций СТОЛБЕЦ (COLUMN) и СТРОКА (ROW)
- выдергиваем значение города или товара из таблицы с помощью функции ИНДЕКС (INDEX)
Источник
Как использовать оператор пересечения в Microsoft Excel
Оператор пересечения – один из основных операторов в Microsoft Excel, однако знаком он только небольшому количеству пользователей. В данной статье я исправлю эту ситуацию и детально расскажу о том, что это за оператор и в каких ситуациях может использоваться.
Для чего нужен оператор пересечения
Обратите внимание на следующий скриншот. На нем вы видите таблицу со столбцами и строками. Выделен столбец со строкой, и есть ячейка, в которой они пересекаются. Оператор пересечения и нужен для поиска этой ячейки. По умолчанию он выведет как раз значение, которое находится в этом месте.
Стандартное использование оператора пересечения
Для начала давайте разберемся с тем, как просто использовать оператор пересечения и вывести в пустой ячейке то самое искомое значение. Вам понадобится любая таблица, состоящая из нескольких столбцов и строк с заполненными данными. Далее остается выполнить следующие действия:
Выделите пустую ячейку для вывода результата, в ней добавьте знак = и выделите левой кнопкой мыши всю строку.
После этого поставьте пробел. Этот знак и является оператором пересечения.
После пробела укажите диапазон столбца, точно так же выделив его левой кнопкой мыши.
Нажмите клавишу Enter, чтобы ознакомиться с результатом. Как видно, оператор узнал, какая ячейка есть как в столбце, так и в строке, отобразив ее значение в клетке.
Использование оператора пересечения в формулах
Описанная выше формула с применением оператора пересечения хоть и кажется интересной, но в чистом виде практически не используется, поскольку и внешне понятно, какое значение есть в столбце и строке. Чаще этот оператор используют вместе с разными функциями при расчетах. Вы можете сделать строку по примеру =СУММ(A3:E3 C1:C5)+500, чтобы оператором пересечения найти ячейку и добавить к ней еще 500. Это довольно простая и стандартная операция.
Примерно то же самое можно сделать и с функцией ЕСЛИ. Для логического значения используется оператор пересечения и срабатывает определенный результат лжи или истины, который вы настраиваете самостоятельно при помощи аргументов функции.
Дополнительные сведения про оператор пересечения
В завершение давайте рассмотрим еще несколько интересных моментов работы с оператором, которые могут оказаться полезными при проведении расчетов в электронной таблице. Например, вы можете взять диапазон, состоящий не только из одного столбца и строки, но и из нескольких, последовательно выделив все ячейки примерно так, как это показано на скриншоте.
По умолчанию оператор пересечения не сможет вывести два или более значений, поэтому такое выделение диапазонов используется исключительно с другими функциями. Например, вы можете суммировать все значения, подходящие под пересечение.
Вместе с этим можно найти минимальное значение среди них, применив знакомую всем формулу МИН. Не забывайте только ставить пробел между столбцами и строками, поскольку это и есть знак оператора пересечения.
Если вы используете умную таблицу или для каждого столбца со строками задали свои названия, то при выделении с использованием оператора вместо стандартных обозначений ячеек вы можете вводить целые названия диапазонов. Тогда вид формулы будет примерно такой, как это показано на следующем изображении.
В заключение
На этом все, и базовые принципы работы с оператором пересечения мы рассмотрели. Надеюсь, вы сможете применить эти навыки в будущих расчетах, чтобы упростить процесс работы с электронными таблицами.
Источник