Функция ПОИСКПОЗ (MATCH) – Справочник

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

Что возвращает функция

Возвращает число, соответствующее позиции искомого значения.

Синтаксис

выражения. Match (Arg1, Arg2, Arg3)

выражение Переменная, представляюная объект WorksheetFunction.

Примеры

Пример 1

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

SubPrimer1()

DimmyArray AsVariant,nAsLong

‘заполнение массива значениями, нумерация элементов массива начинается с нуля

myArray=Array(“Арка”,45,“Дуб”,“Клуб”,85.37,“Литр”,103,“Небо”,“Столб”)

‘определяем относительное положение элемента в массиве, при чем

‘нумерация относительного положения начинается с единицы

n=WorksheetFunction.Match(“Клуб”,myArray)

MsgBoxn‘Результат: 4

MsgBox myArray(n)‘Результат: 85.37, так как нумерация массива начинается с нуля

EndSub

Пример 2

Определение индекса элемента в массиве по его относительному положению, возвращенному методом WorksheetFunction.Match:

SubPrimer2()

DimmyArray(7To15)AsVariant,iAsLong,nAsLong

    ‘заполнение элементов массива значениями

    Fori=7To15

        myArray(i)=Choose(i,“”,“”,“”,“”,“”,“”,“Арка”,45,“Дуб”,“Клуб”,85.37,“Литр”,103,“Небо”,“Столб”)

    Next

n=WorksheetFunction.Match(“Клуб”,myArray)

MsgBoxn‘Результат: 4

‘находим индекс элемента в массиве по его относительному положению

n=n+LBound(myArray)1

MsgBox myArray(n)‘Результат: Клуб

EndSub

Пример 3

Определение адреса ячейки на рабочем листе по найденному методом WorksheetFunction.Match относительному положению этой ячейки в заданном диапазоне:

SubPrimer3()

DimnAsLong

n=WorksheetFunction.Match(“Брелок”,Range(“B1400:B1410”),0)

    WithRange(“B1400:B1410”)

        MsgBox“Значение = “&.Cells(n)&vbNewLine&_

        “Адрес = “&.Cells(n).Address&vbNewLine&_

        “Строка = “&.Cells(n).Row&vbNewLine&_

        “Столбец = “&.Cells(n).Column

    EndWith

EndSub

Подтягиваем данные из реестра помещений (функцией INDEX)

Опять формулируем что нужно сделать:

вытащить номер витрины из указанной строки.

Теперь повторяем то же самое про столбцы и строки по схеме работы функции:

  1. в столбце «номер витрины» на листе «помещения»
  2. найти значение в строке, указанной в столбце «premises index» на листе «договоры».

Пишем формулу, на этот раз сразу прописываем выключение вычислений если номер строки равен нулю:

если значение ячейки L6 на листе «договоры» равно нулю, то ничего не делать, в любом другом случае показать значение ячейки номер значение ячейки L6 в диапазоне C7:C506 на листе «помещения»

3.1.8 INDEX example

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

3.1.9 end result

Вы, конечно, обратили внимание на зелёную заливку в столбце E – так в «Азия Молл» обозначают ячейки с выпадающими списками (здесь я рассказываю как их делать). А теперь обещанное объяснение

Интерфейс

Настраиваем панель быстрого доступа

Начнем с самого простого — добавления самых часто используемых опций на панель быстрого доступа. Чтобы сделать это, заходите в параметры Excel — «Настроить ленту» — и ищите в параметрах «Панель быстрого доступа».

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

Другой вариант — просто щелкнуть по инструменту на ленте правой кнопкой мыши и нажать «Добавить…»:

Перемещаемся по ленте без мышки

Нажмите на Alt. На ленте инструментов появились цифры и буквы — у каждого инструмента на панели быстрого доступа и у каждой вкладки на ленте соответственно:

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

Скринкаст

maxresdefault.jpg

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

Синтаксис

=MATCH(lookup_value, lookup_array, [match_type]) – английская версия

=ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления]) – русская версия

Видео работы функции

Альтернатива ВПР#ExcelWordlChamp 1-2#ExcelWordlChamp 3-4

Функция ВЫБОР (CHOOSE)

Позволит вам выбрать значение из общего списка по указанному номеру позиции:

=ВЫБОР(2;”Стул”;”Стол”;”Шкаф”;”Диван”)Ssilki_i_massivi_2.jpg

Дополнительная информация

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

Рекомендуется Вам:

Updated: 05.05.2020 at 17:19

Пример

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

Sub HighlightMatches() Application.ScreenUpdating = False ‘Declare variables Dim var As Variant, iSheet As Integer, iRow As Long, iRowL As Long, bln As Boolean ‘Set up the count as the number of filled rows in the first column of Sheet1. iRowL = Cells(Rows.Count, 1).End(xlUp).Row ‘Cycle through all the cells in that column: For iRow = 1 To iRowL ‘For every cell that is not empty, search through the first column in each worksheet in the ‘workbook for a value that matches that cell value. If Not IsEmpty(Cells(iRow, 1)) Then For iSheet = ActiveSheet.Index + 1 To Worksheets.Count bln = False var = Application.Match(Cells(iRow, 1).Value, Worksheets(iSheet).Columns(1), 0) ‘If you find a matching value, indicate success by setting bln to true and exit the loop; ‘otherwise, continue searching until you reach the end of the workbook. If Not IsError(var) Then bln = True Exit For End If Next iSheet End If ‘If you do not find a matching value, do not bold the value in the original list; ‘if you do find a value, bold it. If bln = False Then Cells(iRow, 1).Font.Bold = False Else Cells(iRow, 1).Font.Bold = True End If Next iRow Application.ScreenUpdating = TrueEnd Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Примеры использования функции ПОИСКПОЗ в Excel

Функция MATCH (ПОИСКПОЗ) в Excel

Еще больше полезных приемов в работе со списками данных и функциями в Excel вы узнаете в практическом курсе “От новичка до мастера Excel“. Успей зарегистрироваться по ссылке!

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...