ExcelVBA/マクロ

Excelで特定の文字が含まれていたらという関数をつくる

IFで特定の文字が含まれているか判定するには?

IFで特定の文字が含まれているか判定したいと思ったときにIF式がうまく使えない…

意外と自分で関数を組もうと思うと難しかったりします。

(IFで式を組もうとすると、=IF(セル=”*検索文字*”,”含まれる”,””)としてもエラーになってしまいます。)

そんなときのExcelテクニックを紹介します。

<B列に「2」という文字が含まれているときに、「2がある」と表示させたいけど、うまくいかないケース>

クリックすると拡大します

COUNTIFを使う

IFをCOUNTIFを使って、使って特定の文字が含まれていたら、

特定の文字を含まれていると返す方法です。

=IF(COUNTIF(セル,”*検索文字*”)>=1,”含まれる”,””)

という式を利用します。

COUNTIFで特定の文字とワイルドカードを使用することによって、特定の文字が含まれている場合には、COUNTIFの結果が「1」以上になります。

IFの結果としては、「1」以上で真、「0」で偽となりますので、結果として、検索文字が含まれている場合には、含まれると返されるわけです。

これでIFで特定の文字が含まれている場合に判定を行う関数が作成できます。

具体的なCOUNTIFを使った場合の関数の例

先ほどの例で実際にCOUNTIFを使って、特定の文字が含まれている場合に、関数で判定する式を記載します。

クリックすると拡大します

先ほどの解説したコードを使うと、以下の通りですので、今回のケースにあてはめます。

=IF(COUNTIF(セル,”*検索文字*”)>=1,”含まれる”,””)

まずはB2セルに数式を入力していきます。

「セル」にはA2をいれます(判定する箇所)。次に「検索文字」は「2」が含まれている場合に判定をしたいので、「2」をいれます。

=IF(COUNTIF(A2,”*2*”)>=1,”含まれる”,””)
クリックすると拡大します

これでB2のセルに数式をいれましたので、B3~B11セルにコピペします。

クリックすると拡大します

これで2が含まれている場合(「第2回 Excel費用」、「第2回 Word費用」)の際に「含まれる」という形で判定がされています。

解説のため、B3セルを「数式の検証」でみてみます。

クリックすると拡大します

最初の判定式でA3セルに「第2回 Excel費用」に「2」が含まれていますので、COUNTIFの結果が「1」になっています。

そのため、IFの1以上という条件が満たすことになるため、TRUEの「含まれる」という判定になるので、「含まれる」となります。

クリックすると拡大します

これがA2セルなどの場合には、「第1回 Excel費用」に「2」が含まれていないので、COUNTIFの結果が「0」になり、FALSEの””(空欄)という判定結果になります。

以上で特定の文字が含まれる場合の判定を関数で行う場合の対応方法です。

意外と簡単にできそうでつまづくこともあるかと思いますので、こちらの解説で業務の効率化の参考になれば幸いです。

コメントを残す

*