まず、部分一致の位置を取得する方法
この記事では、範囲内の最初の部分一致の位置を取得しようとします。
`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も使用できます。
文字列strの前と最後に(アストリスク)を使用していたことに注意してください。これは、前後に任意の文字列を持つ任意の値を照合するためのワイルドカード演算子です。*
例を見てみましょう。
ここに勝ち、負け、そして引き分けの記録があります。 Win、Loss、Tieの1位を獲得したいと考えています。
したがって、ハードコーディングすると、各セルで部分一致の最初の位置を見つけるための式は次のようになります。
=MATCH("won",A2:A10,0) =MATCH("loss",A2:A10,0) =MATCH("tie",A2:A10,0)
=MATCH(""&C2&"",$A$2:$A$10,0)
仕組み
単にExcelの機能を使用して部分一致を実行します。 MATCHは、*(アスタリスク)の間に指定された文字列を含む文字列を検索し、最初に見つかった位置を返します。
FirstPartMatch VBA関数を使用して範囲内の最初の部分一致の位置を検索するExcelのvbaモジュールで以下のvbaコードをコピーすると、この関数を使用して部分一致の最初の位置を取得できます。上記の例では、次の式を記述します。
=FirstPartMatch(C2,$A$2:$A$10)
最初の試合の位置を取得します。このような。
仕組み
最初の引数は、部分一致を検索する文字列です。
2番目の引数は、文字列の位置を取得する範囲です。
=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
位置の大文字と小文字を区別する部分一致
最初の部分一致を見つけるための上記のユーザー定義関数では、大文字と小文字は区別されません。大文字と小文字を区別する場合は、7行目からLcase関数を削除します。
大文字と小文字を区別するコードは次のようになります:
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で最初の部分一致の位置を見つける方法です。事前定義されたMATCH関数とユーザー定義の一致関数を使用して、最初の部分一致位置を見つけることができると言いました。
他にアイデアや質問がある場合は、下のコメントセクションで私たちと共有してください。
関連記事:
link:/ lookup-formulas-excel-match-function [ExcelでMATCH関数を使用する方法]
link:/ lookup-formulas-excel-index-function [ExcelでINDEX関数を使用する方法]
link:/ lookup-formulas-vlookup-top-5-values-with-duplicate-values-using-index-match-in-excel [Vlookup Top 5 Values with Duplicate Values Using INDEX-MATCH in Excel]
人気の記事:
link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数]
link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]
link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]