文字列から複数のキーワードを検索する、検索したキーワードに紐づく値を返す

セル内にコメントが入っており、その中から複数のキーワード(単語)を探して抽出したい場合。
またはその複数のキーワードに対する値を返したい場合。

どういうことかということ




入力されたコメントの中から下図の「A10:A14」にある複数のキーワードを検索します。

検索してヒットしたキーワードを抽出します。

または、検索してヒットしたキーワードに対する値を返します。

以下どちらも配列関数になるので「Ctrl+Shift+Enter」で閉じて式の前後にカッコ{}を付けるようにしてください。
セルの上部に式を入力して下方へオートフィルコピーすればOKです。

・キーワードを抽出する関数
(B2へ入力してCtrl+Shift+Enter)

=IFERROR(INDEX($A$11:$A$14,MATCH(TRUE,ISNUMBER(FIND($A$11:$A$14,A2)),0)),"")

・キーワードに対する値を返す関数
(B6へ入力してCtrl+Shift+Enter)

=IFERROR(VLOOKUP(INDEX($A$11:$A$14,MATCH(TRUE,ISNUMBER(FIND($A$11:$A$14,A6)),0)),$A$11:$B$14,2,0),"")

0714_1

・ISNUMBER テストの対象が数値を参照するとき TRUE を返します。
・FIND 文字列が他の文字列内で最初に現れる位置を返します。大文字小文字は区別されます。
・INDEXとMATCH 指定した範囲内で指定した検索値を検索します。
・VLOOKUP 指定した範囲内の1列目で特定の値を検索し、指定した列と同じ行にある値を返します。
・IFERROR 式がエラーの場合はエラーの場合の値を返し、エラーではない場合は式の値自体を返します。

「キーワードを抽出する関数(B2:B3)」
検索するコメントセル「A2」に対してFINDでキーワード「A11:A14」検索します。
その結果をTRUEかFALSEで返すためにISNUMBERでくくります。
キーワード「A11:A14」の中でTRUEで返ってきたセルを表示させています。
IFERRORはエラーが返ってきた場合はブランクにするようにしています。

「キーワードに対する値を返す関数(B6:B7)」
上記の式で返ってきた値に対してVLOOKUPで隣の列を表示するようにしています。