Как получить позицию первого частичного матча
В этой статье мы попытаемся получить позицию первого частичного совпадения в диапазоне.
Как мы знаем, 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. Это оператор с подстановочными знаками для сопоставления любого значения, имеющего любую строку до и после него .. *
Давайте посмотрим на примере.
Здесь у меня есть записи о победах, поражениях и ничьях. Мы хотим получить первую позицию выигрышей, проигрышей и ничьей.
Итак, если я жестко запрограммировал, то формула для поиска первой позиции частичного совпадения в каждой ячейке будет:
=MATCH("won",A2:A10,0) =MATCH("loss",A2:A10,0) =MATCH("tie",A2:A10,0)
=MATCH(""&C2&"",$A$2:$A$10,0)
Как это работает
Он просто использует функциональность Excel для частичного совпадения. ПОИСКПОЗ ищет любую строку, которая содержит указанную строку между * (звездочками) и возвращает первую найденную позицию.
Найти позицию первого частичного совпадения в диапазоне с помощью функции FirstPartMatch VBA Если вы скопируете приведенный ниже код vba в модуль vba в Excel, вы можете использовать эту функцию, чтобы получить первую позицию частичного совпадения. Для примера выше просто напишите эту формулу:
=FirstPartMatch(C2,$A$2:$A$10)
Вы получите позицию первого матча. Нравится.
Как это работает
Первый аргумент — это строка, в которой вы хотите найти частичное совпадение.
Второй аргумент — это диапазон, в котором вы хотите получить позицию своей строки.
=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
Частичное совпадение позиции с учетом регистра
Вышеуказанная пользовательская функция для поиска первого частичного совпадения не будет чувствительна к регистру. Если вы хотите, чтобы регистр учитывался, удалите функцию Lcase из строки 7.
Тогда код для чувствительности к регистру будет:
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
Вы можете видеть, что «выиграл» и «ничья» в данном случае не встречаются. Поскольку нет ни выигрыша в нижнем регистре, ни ничьей.
Так что да, ребята, это способы найти позицию первого частичного совпадения в 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]