この記事では、Excelで値の配列内のすべての部分一致を抽出する方法について学習します。

たとえば、値の配列が大きく、文字列に一致するすべての値を抽出する必要があります。 IF関数、ISNUMBER関数、SEARCH関数を組み合わせて使用​​します。これらの機能について理解してみましょう。

if関数はlogic_testに使用され、テストの結果に基づいて値を返します。

構文:

= IF (

logical_test , [value_if_true] , [value_if_false] )

ExcelのISNUMBER関数は、指定された値が数値であるかどうかにかかわらず、それぞれTRUEまたはFALSEを返すブール関数です。

構文

=

ISNUMBER

( value )

ExcelのSEARCH関数は、文字列内の部分文字列またはsearch_textの最初の文字の位置を返します。または、他の関数に入力することもできます。 SEARCH関数では大文字と小文字は区別されません。

構文:

= SEARCH (

find_text , within_text , [start_num] )

find_text:within_text内で検索されるテキスト。

within_text:within_textで見つかるfind_text。

[start_num]:開始する文字の位置。デフォルトは1です。

次に、上記で説明した関数を使用して式を作成します。次の式を使用します:

式:

= IF (

ISNUMBER

( SEARCH (

string , cell ) ) , cell , “” )

説明:

  • SEARCH関数は、セル値内の文字列を検索し、見つかった場合はセル値内の文字列の位置を返します。それ以外の場合は、#VALUEを返します。エラー。

  • ISNUMBER関数は、SEARCH関数が数値を返すかどうかをチェックします。

ISNUMBER関数は、戻り値がTrueの場合はTRUEを返し、#VALUEの場合はFALSEを返します。エラー。

  • IF関数はISNUMBER関数がTRUEを返す場合はセル値を返し、ISNUMBER関数がFALSEを返す場合は空のセルを返します。例でこの関数を使用して理解しましょう。

ここに値のリストと文字列値(Tシャツ)があります。

Partial matches in an array 1

[一致]列で一致のリストを見つける必要があります。次の式を使用して、文字列(Tシャツ)のすべての部分一致を抽出します。

次の式を使用します:

= IF ( ISNUMBER ( SEARCH ( string , A2 ) ), A2 , “” )

説明:

  • SEARCH関数は、セル値内の文字列を検索し、セル値(紫のTシャツ)内の文字列(Tシャツ)の位置として8を返します。

  • ISNUMBER関数は、値8が数値であるかどうかをチェックします。 ISNUMBER関数はTRUEを返します。

  • IF関数は、セル値であるvalue_if_Trueを返します(紫のTシャツ)。

Partial matches in an array 2

ここでは、セル値がセル参照として示されています。 Ctrl + DショートカットキーまたはExcelのドラッグダウンオプションを使用して、数式を残りのセルにコピーします。

Partial matches in an array 3

ご覧のとおり、式を使用してすべての値を取得しました。次に、一致からのリストが必要です。そのために、結果をフィルタリングします。以下の手順に従って、結果をフィルタリングします。

。 Ctrl + Shift + L *オプションを使用して、フィルターを適用します。 [一致]フィールドの矢印キーを右クリックします。

。 (空白)オプションのチェックを外し、[OK]をクリックします。