0047

В этой статье мы попытаемся получить позицию первого частичного совпадения в диапазоне.

Как мы знаем, link: / lookup-formulas-excel-match-function [MATCH function] возвращает индекс или позицию первого совпадения в диапазоне.

Следовательно, очевидно, что эту функцию можно использовать для получения позиции первого совпадения в диапазоне. Поскольку он поддерживает link: / tips-excel-wildcards [операторы с подстановочными знаками], мы также можем использовать MATCH для частичных совпадений.

Как только мы получим позицию первого совпадения, мы можем делать разные вещи. Подобно получению этого значения или соседнего или несмежного значения с помощью link: / lookup-formulas-excel-index-function [INDEX function], или создания динамической функции. Это зависит от ваших потребностей и творческих способностей.

Общая формула для первого найденного частичного совпадения

Для строки жесткого кода:

=MATCH("str",range,0)

Для справки по ячейке:

=MATCH(""&cell&"",range,0)

Str: это текст или строка, которые вы хотите частично сопоставить в диапазоне. Это может быть что угодно, ячейка или жестко заданная строка.

Диапазон: это диапазон, в котором вы будете искать str.

0: это параметр для точного совпадения. Вы также можете использовать FALSE.

Обратите внимание, что мы использовали (astrisks) в начале и в конце строки str. Это оператор с подстановочными знаками для сопоставления любого значения, имеющего любую строку до и после него .. *

Давайте посмотрим на примере.

Здесь у меня есть записи о победах, поражениях и ничьях. Мы хотим получить первую позицию выигрышей, проигрышей и ничьей.

0048

Итак, если я жестко запрограммировал, то формула для поиска первой позиции частичного совпадения в каждой ячейке будет:

=MATCH("won",A2:A10,0)

=MATCH("loss",A2:A10,0)

=MATCH("tie",A2:A10,0)

0050

=MATCH(""&C2&"",$A$2:$A$10,0)

0051

Как это работает

Он просто использует функциональность Excel для частичного совпадения. ПОИСКПОЗ ищет любую строку, которая содержит указанную строку между * (звездочками) и возвращает первую найденную позицию.

Найти позицию первого частичного совпадения в диапазоне с помощью функции FirstPartMatch VBA Если вы скопируете приведенный ниже код vba в модуль vba в Excel, вы можете использовать эту функцию, чтобы получить первую позицию частичного совпадения. Для примера выше просто напишите эту формулу:

=FirstPartMatch(C2,$A$2:$A$10)

Вы получите позицию первого матча. Нравится.

0052

Как это работает

Первый аргумент — это строка, в которой вы хотите найти частичное совпадение.

Второй аргумент — это диапазон, в котором вы хотите получить позицию своей строки.

=FirstPartMatch(str,range)

Чтобы использовать эту формулу для частичного сопоставления, скопируйте приведенный ниже код в модуль VBA.

Function FirstPartMatch(str As String, rng As Range)

Dim tmp, position As Long

position = 0

tmp = 0

For Each cll In rng

tmp = tmp + 1

If InStr(1, LCase(cll.Value2), LCase(str)) > 0 Then

position = tmp

Exit For

End If

Next cll

If position Then

FirstPartMatch = position

Else

FirstPartMatch = "#NA"

End If

End Function

0055

Частичное совпадение позиции с учетом регистра

Вышеуказанная пользовательская функция для поиска первого частичного совпадения не будет чувствительна к регистру. Если вы хотите, чтобы регистр учитывался, удалите функцию Lcase из строки 7.

0056

Тогда код для чувствительности к регистру будет:

Function FirstPartMatchCASE(str As String, rng As Range)

Dim tmp, position As Long

position = 0

tmp = 0

For Each cll In rng

tmp = tmp + 1

If InStr(1, cll.Value2, str) > 0 Then

position = tmp

Exit For

End If

Next cll

If position Then

FirstPartMatchCASE = position

Else

FirstPartMatchCASE = "#NA"

End If

End Function

0057

Вы можете видеть, что «выиграл» и «ничья» в данном случае не встречаются. Поскольку нет ни выигрыша в нижнем регистре, ни ничьей.

Так что да, ребята, это способы найти позицию первого частичного совпадения в Excel. Я сказал вам, что вы можете найти первую позицию частичного совпадения, используя предопределенную функцию ПОИСКПОЗ и определяемую пользователем функцию совпадения.

Если у вас есть другие идеи или вопросы, поделитесь с нами здесь, в разделе комментариев ниже.

Статьи по теме:

link: / lookup-formulas-excel-match-function [Как использовать функцию ПОИСКПОЗ в Excel]

link: / lookup-formulas-excel-index-function [Как использовать функцию ИНДЕКС в Excel]

link: / lookup-formulas-vlookup-top-5-values-with-duplicate-values-using-index-match-in-excel [5 лучших значений Vlookup с повторяющимися значениями с использованием INDEX-MATCH в Excel]

Популярные статьи:

link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel]

link: / tips-countif-in-microsoft-excel [СЧЁТЕСЛИ в Excel 2016]

link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel]