エクセル 関数 文字 列 を 含む

Excel(エクセル)の関数を使って、特定の文字列がセルに含まれているかを判定したり、条件に応じて処理を行うことは、業務やデータ分析で非常に役立ちます。特に「文字列を含む」かどうかを確認するケースは多く、IF関数と組み合わせて使用されるSEARCH関数やFIND関数、COUNTIF関数などがよく利用されます。
これらの関数を活用することで、大量のデータの中から目的の情報を効率よく抽出したり、条件に一致するデータに自動で処理を加えたりできます。本記事では、エクセルで「文字列を含む」判定を行うための代表的な関数の使い方と実用例をわかりやすく解説します。
エクセルで文字列を含むかどうかを判定する関数の使い方
Microsoft Excelにおいて、特定の文字列がセルに含まれているかどうかを確認したい場面は非常に多くあります。たとえば、データの中から「東京」というキーワードを含む行を抽出したり、ある商品名に「特注」という文字が入っているかをチェックするときなどです。
このような処理には、SEARCH関数、FIND関数、そしてIF関数と組み合わせた論理式がよく用いられます。特に、大文字・小文字を区別しないで検索できるSEARCH関数は、実務で広く使われており、これとISNUMBER関数を組み合わせることで「含まれるかどうか」の真偽を簡単に判定できます。
また、条件付きで処理を分岐させたい場合は、IF関数と組み合わせた数式が有効です。以下で、このテーマに関連する重要な関数とその使用法を詳しく説明します。
SEARCH関数で文字列の位置を検索する方法
SEARCH関数は、指定した文字列がセル内でどの位置にあるかを返す関数で、大文字・小文字を区別せず、ワイルドカードも使用できます。例えば、「A1」セルに「製品名:エクセルマニュアル」という文があり、「マニュアル」という文字列を探したい場合、「=SEARCH(マニュアル,A1)」と入力すると、結果として「8」が返されます。
これは「マニュアル」の最初の文字が8文字目から始まっていることを意味します。この関数の重要な特徴は、該当する文字列が存在しない場合には「VALUE!」エラーを返す点です。そのため、エラーを回避し、単に「含まれているか」を判定するために、通常はISNUMBER関数と組み合わせて使用します。
エクセル 空白 セル 詰める 関数| 関数 | 構文 | 説明 |
|---|---|---|
| SEARCH | =SEARCH(検索文字列, 対象セル) | 文字列の位置を返し、見つからない場合はエラー |
| ISNUMBER | =ISNUMBER(値) | 値が数値であればTRUE、そうでなければFALSE |
| IF | =IF(条件, 真の場合, 偽の場合) | 条件に応じて異なる値を返す |
IFとISNUMBER+SEARCHで「含まれる」を判定する応用
「特定の文字列が含まれているか」を判定する最も一般的な方法は、IF関数、ISNUMBER関数、SEARCH関数を組み合わせることです。たとえば、「A1」セルに「販売中止」という文字が含まれているかをチェックし、含まれていれば「該当」、そうでなければ「非該当」と表示させたい場合、次のような数式を使います:=IF(ISNUMBER(SEARCH(販売中止,A1)),該当,非該当)。
この数式では、まずSEARCH関数が「販売中止」の位置を探し、見つかれば数値(位置)を返し、ISNUMBERはその結果が数値かどうかをTRUE/FALSEで判定します。IF関数はこのTRUE/FALSEに基づいて表示を切り替えます。この手法は、データのフィルタリングや条件付き書式との連携にも非常に有効です。
| 数式の例 | 説明 | 結果(例) |
|---|---|---|
| =IF(ISNUMBER(SEARCH(特注,A1)),●,ー) | A1に「特注」が含まれていれば「●」を表示 | ● |
| =IF(ISNUMBER(SEARCH(在庫あり,A2)),出荷可,確認要) | 在庫ありが含まれるかで出荷可否を判定 | 出荷可 |
| =ISNUMBER(SEARCH(エラー,A3)) | 単純に含まれるかをTRUE/FALSEで判定 | FALSE |
FIND関数との違い:大文字・小文字の区別について
SEARCH関数と似た機能を持つFIND関数との大きな違いは、大文字と小文字を区別するかどうかです。FIND関数は「Excel」と「excel」を別の文字列として扱い、完全に一致する文字列のみを検索します。一方、SEARCH関数はこれらを同じと見なします。
たとえば、セルに「apple」と記載されていて、「Apple」と検索した場合、SEARCH関数では位置「1」を返しますが、FIND関数では「VALUE!」エラーになります。また、FIND関数はワイルドカード( や ?)を使用できない点も重要な違いです。実務では、正確な一致を要求される場合を除き、通常はSEARCH関数の方が使いやすく、柔軟性があります。
| 関数 | 大文字小文字の区別 | ワイルドカード使用可能 |
|---|---|---|
| SEARCH |
エクセル関数で文字列を含むセルを効率的に検索する方法
エクセルで特定の文字列を含むセルを検出する際、関数を活用することで手作業による確認の手間を大幅に削減できます。特に IF関数 と SEARCH関数 や FIND関数 を組み合わせることで、目的の文字列が含まれているかどうかを論理的に判断でき、条件に応じて自動的に結果を出力することが可能です。
また、大文字と小文字の区別が必要ない場合は SEARCH関数 を、区別が必要な場合は FIND関数 を使用することで、より精度の高い検索が実現します。さらに、結果を基にフィルタリングや条件付き書式を適用すれば、データの可視化も容易になり、大量のデータを扱う際の作業効率が格段に向上します。
SEARCH関数で部分一致する文字列を検出する
SEARCH関数 は、ある文字列の中で特定の文字列を含む位置を返す関数です。この関数は大文字と小文字を区別せず、ワイルドカードも使用可能です。
エクセル 関数 数字 のみ 抽出例えば、=SEARCH("東京", A1) と入力すると、A1セルに「東京支社」という文字列が含まれていれば、その開始位置である「1」を返します。該当しない場合は #VALUE! エラーが出るため、これを ISNUMBER関数 と組み合わせて使用することで、文字列を含むかどうかの真偽判定が可能になります。
FIND関数とSEARCH関数の違いを理解する
FIND関数 と SEARCH関数 は似た機能を持ちますが、主な違いは 大文字・小文字の区別 と ワイルドカードの扱い です。
- FIND関数: 大文字と小文字を厳密に区別し、ワイルドカードは無効。
- SEARCH関数: 大文字小文字を区別せず、アスタリスク(*)や疑問符(?)などのワイルドカードが使用可能。
そのため、文字列を含む検索で柔軟性が求められる場合は SEARCH関数 が適しており、正確な表記の一致が必要な場合は FIND関数 の使用が望まれます。
IF関数と組み合わせて条件判定を自動化する
文字列を含むセルに対して条件に基づいた処理を行うには、IF関数 と SEARCH関数 の組み合わせが効果的です。
例えば、以下のように設定します:
=IF(ISNUMBER(SEARCH("完了", A1)), "済", "未")
この式は、A1セルに「完了」が含まれていれば「済」、含まれていなければ「未」と表示します。このように、ISNUMBER で SEARCH の結果が数値かどうかを確認することで、エラーを回避しながら文字列の包含を簡単に判別できます。
COUNTIF関数で文字列を含むセルを数える
大量のデータの中で文字列を含むセルがいくつあるかを調べるには、COUNTIF関数 が非常に便利です。ワイルドカード「*」を使用することで部分一致のカウントが可能になります。
例えば、次のように設定します:
エクセル 割り算 関数 名=COUNTIF(A:A, "*エラー*")
この式により、A列の中で「エラー」という文字を含むセルの個数を自動で集計します。特定のキーワードに基づくデータの発生頻度を調査する際に非常に有効で、レポート作成時の分析にも活用できます。
FILTER関数で文字列を含むデータを抽出する(Excel 365)
最新版のExcelでは、FILTER関数 を使用して文字列を含む行を動的に抽出できます。
例えば、以下のように設定します:
=FILTER(A2:B100, ISNUMBER(SEARCH("山田", A2:A100)))
この式は、A列に「山田」を含む行のデータをA列とB列から自動でフィルタリングして表示します。この関数は配列を扱えるため、複数の条件を組み合わせることも可能で、従来のオートフィルターや並べ替えに比べて、より迅速かつ柔軟なデータ抽出が実現できます。
よくある質問(FAQ)
エクセルで文字列を含むセルを検索するにはどうすればよいですか?
文字列を含むセルを検索するには、「FIND」や「SEARCH」関数、または「IF」と組み合わせた「ISNUMBER」と「SEARCH」を使用します。
=ISNUMBER(SEARCH("文字列", A1)) と入力すると、A1に指定した文字列が含まれているかを判定できます。また、条件付き書式やフィルター機能でも、文字列を含むセルを色分けや抽出が可能です。
特定の文字列が含まれるか判定するには?
特定の文字列が含まれるか判定するには、「IF」と「SEARCH」を組み合わせた式を使います。
=IF(ISNUMBER(SEARCH("abc", A1)), "含まれる", "含まれない")
この場合、「SEARCH」は大文字小文字を区別しません。より厳密な判定が必要な場合は「FIND」を使用します。
複数の文字列のいずれかが含まれるかをチェックする方法は?
複数の文字列を判定する場合、「OR」関数と「SEARCH」を組み合わせます。
=IF(OR(ISNUMBER(SEARCH("abc", A1)), ISNUMBER(SEARCH("xyz", A1))), "該当", "なし")
数式が長くなる場合は、名前付き範囲やヘルパー列を使用して整理すると効率的です。
office365 家庭 向け 一般 法人 向け 違い文字列を含むセルの数をカウントする関数はありますか?
文字列を含むセルの数をカウントするには、「COUNTIF関数」を使用します。
=COUNTIF(A1:A10, "*abc*")
アスタリスク(*)はワイルドカードで、前後に任意の文字列を表します。大文字・小文字の区別はされません。

コメントを残す