目次
Microsoft Excelでは、テキストの部分一致を検索し、その特定の一致に基づいてデータを抽出するいくつかの便利な方法があります。 この記事では、さまざまな検索関数と数式を組み込むことで、Excelでテキストの部分一致を検索するためのすべての適切な方法を学習します。
練習用ワークブックをダウンロードする
この記事の作成に使用したExcelワークブックをダウンロードすることができます。
ルックアップ部分テキストマッチ.xlsxExcelで部分一致のテキストを検索するための5つの適切な方法
1.ExcelのVLOOKUPを使った部分文字列照合
次の図に、ある受験生の科目別の点数が書かれた表があります。 さて、この表から、部分一致で B列 ということで、ある生徒の教科の点数を抽出することにします。
例えば、次のようなテキストを探すことができます。 "ダニ" の欄に 名称 部分一致をもとに、その生徒の実際の名前を調べ、対応する生徒の数学の点数を表から抽出します。
この例では ブイルック 関数は、表の左端の列から値を探し、指定した列から同じ行の値を返す関数なので、ここでは、この関数を使用します。 このVLOOKUP関数の一般的な式は、次のようになります。
=VLOOKUP(lookup_value、table_array、col_index_number、[range_lookup])
名前に文字が含まれる生徒の数学の点数を抜き出すので "ダニ" ということで、出力に必要な式 セルD17 になります。
=VLOOKUP(D16,B5:G14,5,FALSE)
あるいは
=VLOOKUP("*Tick*",B5:G14,5,FALSE)です。
を押した後 入力 をクリックすると、ティックナーの数学の点数が一度に表示されます。
続きを読む ExcelでVLOOKUPを使って部分一致させる方法(4つの方法)
2.INDEX-MATCH関数による部分一致の検索
では、その組み合わせで INDEX と MATCH INDEX 関数は、指定された範囲の特定の行と列の交点にあるセルの値または参照を返し、MATCH 関数は、指定された値と一致する項目の配列内での相対位置を指定された順序で返すものです。
前の方法で見つけたのと同じような出力を見つけることになります。 そこで、このセクションでは、出力中の必要な数式を セルD18 になります。
=index(b5:g14,match(d17,b5:b14,0),match(d17,b4:g4,0))
あるいは
=INDEX(B5:G14,MATCH("*Tick*",B5:B14,0),MATCH(D17,B4:G4,0))
を押してください。 入力 と入力すると、Ticknerが数学で取った点数である91点が返されます。
この式では、2つの MATCH 関数は,生徒の名前と教科の行番号と列番号をそれぞれ定義します. INDEX 関数は,定義された行番号と列番号の交点にある値を配列から返します.
続きを読む INDEXとMatchを使った部分一致の方法(2通り)
3.ワイルドカード文字を使ったXLOOKUPによる部分一致の検索
があります。 XLOOKUP 関数は,範囲や配列にマッチする項目を検索し,それに対応する項目を2番目の範囲や配列から返します. この関数の一般的な式は,次のとおりです.
=XLOOKUP(lookup_value、lookup_array、return_array、[if_not_found]、[match_mode]、[search_mode])
では、この XLOOKUP というテキストを含む生徒の数学の点数を直接抽出する関数です。 "ダニ" の中にあります。
出力において セルD18 の場合、必要な計算式は次のようになります。
=XLOOKUP("*"&D16&"*",B5:B14,F5:F14,,2)
を押した後 入力 と表示され、前の2つの例と同じような出力が表示されます。
この関数では、ワイルドカード文字のマッチを示す[match_mode]引数として2を使用しています。 この引数を使用しない場合、この関数の戻り値は #該当なし エラーになります。デフォルトでは、この関数はワイルドカード文字のマッチではなく、完全一致を探します。
4.XLOOKUP関数、ISNUMBER関数、SEARCH関数を組み合わせて部分一致を検索する
ルックアップ関数にワイルドカード文字を使用しないことを選択した場合、以下の複合式を適用する必要があります。 XLOOKUP、ISNUMBER、およびSEARCH の機能を持つ。
があります。 ISNUMBER 関数は、セルの値が数値であるかどうかをチェックする。 検索 は,特定の文字または文字列が最初に見つかった文字の番号を,左から右に並べて返す。 これら2つの関数の一般式は,以下の通りである。
=ISNUMBER(値)
そして
=SEARCH(find_text, within_text, [search_num])
そこで、出力に必要な式 セルD18 になります。
=xlookup(true,isnumber(search(d16,b5:b14)),f5:f14)のようになります。
を押した後 入力 と入力すると、すぐに結果の値が表示されます。
🔎 フォーミュラの仕組みは?
- があります。 検索 関数は、テキストを探します。 「ティック の範囲内で、セル B5:B14 の配列を返す。
{#value!;#value!;1;#value!;#value!;#value!;#value!;#value!;}。
- があります。 ISNUMBER 関数は、その配列から数値を検索し、別のブール値の配列を返します。
{false;false;true;false;false;false;false;false}となります。
- があります。 XLOOKUP 関数は、指定されたブール値を探します。 真 の配列から,その値の行番号を抽出します. B5:B14 .
- の戻り配列に基づき、最後に F5:F14 は、その XLOOKUP 関数は、名前にテキストが含まれている生徒の数学の点数を引き出します。 「ティック の中にあります。
5.FILTER、ISNUMBER、SEARCH関数を使った部分一致の調べ方
最後のメソッドでは、その組み合わせで FILTER、ISNUMBER、およびSEARCH の機能です。 フィルター この関数は,与えられた条件に基づいてセル範囲や配列をフィルタリングします. この関数の一般的な式は,次のとおりです.
=FILTER(配列、include、[if_empty])
同じようなデータセットを扱っているので、必要な数式に フィルター 関数を出力します。 セルD18 になります。
=filter(f5:f14,isnumber(search(d16,b5:b14)))
を押してください。 入力 をクリックすると、瞬時に結果値を得ることができます。
この式では フィルター 関数は、セルの範囲をフィルタリングします。 F5:F14 ブーリアン値に基づいて 真 のみです。 ISNUMBER と 検索 は,ブーリアン値の配列を返します。 真 と ファルス を定義し、第二引数 (を含む) の フィルター 関数を使用します。
結びの言葉
以上の方法で、Excelスプレッドシートのテキストの部分一致に基づいてデータを抽出できるようになれば幸いです。 ご質問やご意見がありましたら、コメント欄でお知らせください。 または、本サイトのExcel関数に関連する他の記事もご覧になってみてください。