Excel VBA для сопоставления значений в диапазоне (3 примера)

  • Поделись Этим
Hugh West

Во время работы с Microsoft Excel Иногда нам нужно найти совпадающее значение в диапазоне. Мы можем легко сделать это с помощью функций excel. В VBA есть функции, которые мы можем использовать, но ни одна из них не равна МАТЧ В этой статье мы узнаем, как сопоставить значение в диапазоне с помощью функции Excel VBA .

Скачать Практическое пособие

Вы можете скачать рабочую тетрадь и заниматься с ними.

VBA Сопоставление значений в диапазоне.xlsm

Введение в Excel VBA Функция сопоставления

Сайт Функция соответствия в Excel VBA - это полезная построенная функция поиска, которая, как и VLOOKUP , HLOOKUP , и ИНДЕКС функции, возвращает местоположение идентичного или сравнимого совпадения значений поиска, полученных в массивах или базе данных. Эта функция является функцией рабочего листа, которую использует программа. Поскольку это функция рабочего листа, параметры для функции Match аналогичны параметрам для функции рабочего листа.

3 примера использования Excel VBA для сопоставления значений в диапазоне

1. сопоставление значений в диапазоне с помощью функции сопоставления VBA в Excel

Для использования функция Excel VBA Match Для поиска совпадающего значения в диапазоне мы будем использовать следующий набор данных. Набор данных содержит имена студентов в столбце C , свои оценки по определенному предмету в столбик D , и порядковый номер каждого студента в столбце B Теперь, предположим, мы хотим найти позицию совпадения в ячейке G5 конкретной метки, а метка, которую мы хотим сопоставить, находится в ячейке F5 .

Давайте продемонстрируем процедуру поиска совпадающих значений в диапазоне с помощью функции Match в excel VBA .

ШАГИ:

  • Во-первых, перейдите к Разработчик на вкладке ленты.
  • Во-вторых, нажмите на Visual Basic чтобы открыть Редактор Visual Basic где мы пишем код. Или нажмите кнопку Alt + 11 чтобы открыть Редактор Visual Basic .

  • Другой способ открыть Редактор Visual Basic только для того, чтобы щелкните правой кнопкой мыши на рабочем листе и нажмите кнопку Посмотреть код .

  • В результате откроется Редактор Visual Basic Теперь напишите код там.

Код VBA:

 Sub example1_match() Range("G5").Value = WorksheetFunction.Match(Range("F5").Value, Range("D5:D10"), 0) End Sub 
  • После этого, чтобы запустить код, нажмите кнопку F5 на клавиатуре или нажмите на кнопку Rub Sub кнопка.

  • Наконец, вы можете увидеть, что совпадение найдено в позиции 5 .

🔎 Как работает код VBA?

  • Sub example1_match() : Это означает, что мы определяем подпроцедуру, давая макросу имя.
  • Диапазон("G5").Значение : Мы хотим, чтобы вывод хранился в ячейке G5 .
  • WorksheetFunction : Используя этот код, мы сможем получить доступ к функциям VBA.
  • Match(Range("F5").Value, Range("D5:D10"), 0) : Здесь мы используем функция Match в VBA. Поскольку мы хотим взять значение из ячейки F5 и выяснить положение в диапазоне D5:D10 .
  • End Sub : Это означает, что мы завершаем процедуру.

Подробнее: Excel VBA для сопоставления строки в столбце (5 примеров)

2. Использование Excel VBA для подбора значения из другого рабочего листа

Мы можем найти совпадающие значения в диапазоне из другого рабочего листа, используя функция VBA Match в Excel Предположим, что у нас есть набор данных на листе с именем " Данные " и мы хотим получить результат в имени листа " Результат ". И мы используем тот же набор данных. Теперь давайте выполним следующие шаги.

ШАГИ:

  • В начале, по тому же принципу, что и в предыдущем примере, перейдите в раздел Разработчик на вкладке ленты.
  • Затем нажмите на Visual Basic или нажмите Alt + F11 чтобы открыть Редактор Visual Basic .
  • Вместо этого, чтобы открыть Редактор Visual Basic просто щелкните правой кнопкой мыши на листе и выберите пункт Посмотреть код .

  • Теперь запишите код VBA.

Код VBA:

 Sub example2_match() Sheets("Result").Range("C5").Value = WorksheetFunction.Match(Sheets("Result").Range("C5").Value, Sheets("Data").Range("D5:D10"), 0) End Sub 
  • Затем запустите код, нажав клавишу F5 или нажав на клавишу Run Sub кнопка.

  • И, результат можно найти в " Результат " лист.

Читать далее: Как сопоставить данные в Excel из двух рабочих листов

Похожие чтения

  • Сумма всех совпадений с помощью VLOOKUP в Excel (3 простых способа)
  • Как найти соответствие с учетом регистра в Excel (6 формул)
  • Как сопоставить в Excel имена, написание которых отличается (8 методов)

3. Циклы Excel VBA для получения совпадающего значения в диапазоне

Предположим, мы хотим, чтобы несколько отметок совпадали со значением, для этого мы будем использовать циклы VBA. Мы используем тот же набор данных, что и раньше. Теперь нам нужна позиция совпадения в столбце G , а метки, которым мы хотим найти соответствие, находятся в столбце F . Давайте посмотрим на ступеньки вниз.

ШАГИ:

  • Во-первых, на ленте перейдите к пункту Разработчик вкладка.
  • Во-вторых, чтобы открыть Редактор Visual Basic , нажмите на Visual Basic или нажмите Alt + F11 .
  • Или просто щелкните правой кнопкой мыши на листе и выберите Посмотреть код .

  • В результате откроется Редактор Visual Basic .
  • Теперь введите там код.

Код VBA:

 Sub example3_match() Dim i As Integer For i = 5 To 8 Cells(i, 7).Value = WorksheetFunction.Match(Cells(i, 6).Value, Range("D5:D10"), 0) Next i End Sub 
  • После этого нажмите кнопку F5 или нажав на клавишу Run Sub запустит код.

  • И вы сможете увидеть результат в столбце G .

🔎 Как работает код VBA?

  • For i = 5 To 8 : Это означает, что мы хотим, чтобы цикл выполнялся, начиная с ряда 5 и заканчивая рядом 8 .
  • Cells(i, 7).Value : При этом сохраняется значение результирующего расположения в каждой строке из 5 на 8 строки в столбце G который является номером колонки 7 .
  • Match(Cells(i, 6).Value, Range("D5:D10"), 0) : Ячейки могут быть сопоставлены с помощью Матч функция (i, 6). Поиск значений для каждого значения Lookup, найденного в строках 5 через 8 из 6-й столбец. Затем выполняется поиск в массиве D5:D10 на листе excel, где имеются данные.

Читать далее: Excel Поиск совпадающих значений в двух столбцах

О чем следует помнить

  • Если тип соответствия отсутствует или не указан, предполагается, что это 1 .
  • Если совпадений не обнаружено, связанное поле excel будет пустым.
  • Значение поиска может быть числовыми, символьными или логическими данными или ссылкой на ячейку с количественным, текстовым или логическим значением.

Заключение

Приведенные выше методы помогут вам сопоставить значения в диапазоне в Excel VBA. Надеемся, это поможет вам! Если у вас есть вопросы, предложения или отзывы, пожалуйста, сообщите нам об этом в разделе комментариев. Вы также можете посмотреть другие наши статьи в разделе ExcelWIKI.com блог!

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.