【Excel】エクセルで隣のセルに特定の文字があれば判定する方法
エクセルで一覧表を扱っていると、隣のセルに「済」「対象」「重要」などの特定文字が入っている行だけを確認したい場面があります。
目視で探す方法では、データ量が増えたときに見落としが起こりやすくなります。
そこで役立つのが、IF関数、COUNTIF関数、SEARCH関数などを使った文字列の判定です。
隣のセルが指定した文字と完全に一致するかを調べるならIF関数を使います。
隣のセルに指定した文字が含まれるかを調べるならCOUNTIF関数やSEARCH関数が便利です。
この記事では、1行目に見出しがある表を例に、隣のセルの文字を判定して表示する数式と活用方法を解説します。
隣のセルが特定文字と一致する場合の判定
それではまず、隣のセルの内容が指定した文字と完全に一致する場合の判定について解説していきます。
| 商品名 | 処理状況 | 判定結果 |
|---|---|---|
| りんご | 済 | 確認対象 |
| みかん | 未 | 確認対象外 |
| ぶどう | 済 | 確認対象 |
この例では、B列の処理状況を確認し、C列に判定結果を表示します。
IF関数による基本数式
最も基本的な方法は、C2セルにIF関数を入力してB2セルを判定する方法です。
=IF(B2=”済”,”確認対象”,”確認対象外”)
この数式では、B2セルが「済」と完全に一致するときだけ「確認対象」と表示されます。
B2セルが「未」である場合や、空白である場合は「確認対象外」となります。
文字列はダブルクォーテーションで囲む必要があります。

数式を入力したら、C2セル右下のフィルハンドルを下方向へドラッグしてコピーしましょう。
相対参照のB2は、次の行ではB3、その次はB4というように自動で変化します。
空白セルを判定対象外にする設定
元データに未入力行がある場合、空白セルに「確認対象外」と表示したくないことがあります。
その場合は、最初にB2セルが空白かどうかを確認する条件を追加します。
=IF(B2=””,””,IF(B2=”済”,”確認対象”,”確認対象外”))
最初のB2=””は、B2セルが空欄であればC2セルも空欄にするという意味です。
データが入力されている行だけに結果を出せるため、表全体が見やすくなります。

空白判定を先に置くことで、不要なメッセージが並ぶことを防げます。
後から並べ替えやフィルターを利用する場合にも、実務で扱いやすい設定です。
判定文字をセル参照にする方法
数式の中に「済」と直接書く代わりに、別セルに判定したい文字を入力する方法もあります。
たとえばE1セルに「済」と入力し、C2セルには次の数式を設定します。
=IF(B2=$E$1,”確認対象”,”確認対象外”)
$E$1は絶対参照です。
数式を下へコピーしても、判定文字を入力したセルが常にE1のままになります。
判定条件を「未」や「保留」へ変更したいときも、E1セルの文字を入れ替えるだけで済みます。
条件をセルに切り出す設計は、数式の修正ミスを減らす方法として有効です。
【操作のポイント】完全一致の判定では、全角と半角、余分なスペース、似た文字も別の文字として扱われます。
隣のセルに特定文字を含む場合の判定
続いては、隣のセルの中に特定の文字列が含まれているかを確認していきます。
| 案件名 | 連絡内容 | 判定結果 |
|---|---|---|
| A社 | 至急確認をお願いします | 要確認 |
| B社 | 通常連絡 | 通常 |
| C社 | 至急で見積もり希望 | 要確認 |
完全一致ではなく、B列の文章内に「至急」という語が含まれる行を探す例です。
COUNTIF関数とワイルドカードの利用
文字列の一部を判定するなら、COUNTIF関数にワイルドカードを組み合わせる方法がわかりやすいでしょう。
=IF(COUNTIF(B2,”*至急*”)>0,”要確認”,”通常”)
アスタリスクは、任意の文字列を表す記号です。
「*至急*」と指定すると、前後にどのような文字があっても、「至急」を含むセルを数えます。
COUNTIF関数の結果が1以上なら「要確認」、0なら「通常」と表示される仕組みです。

文章の途中にあるキーワードを調べたいときに、特に使いやすい数式です。
なお、COUNTIF関数による文字列判定は、通常は大文字と小文字を区別しません。
複数キーワードを条件にする数式

「至急」または「重要」のどちらかが入っている行を判定したい場合もあります。
この場合は、COUNTIF関数を複数使い、その結果を加算します。
=IF(COUNTIF(B2,”*至急*”)+COUNTIF(B2,”*重要*”)>0,”要確認”,”通常”)
どちらか一方でも文字が含まれていれば、合計値は1以上になります。
そのため、IF関数は「要確認」を返します。
キーワードが増えるほど数式は長くなりますが、少数の条件なら内容を読み取りやすい方法です。
複数の注意語を見逃したくない一覧表に向いています。
AND関数とOR関数の使い分け
複数条件で判定するときは、OR関数とAND関数の違いも理解しておきましょう。
「至急」または「重要」を含む場合に判定するならOR条件です。
=IF(OR(COUNTIF(B2,”*至急*”)>0,COUNTIF(B2,”*重要*”)>0),”要確認”,”通常”)
一方で、「至急」と「重要」の両方を含む場合だけを判定したいならAND関数を使用します。
=IF(AND(COUNTIF(B2,”*至急*”)>0,COUNTIF(B2,”*重要*”)>0),”最優先”,”通常”)
ORはどちらか一方、ANDはすべての条件を満たすかどうかを調べる関数です。
【操作のポイント】含む判定では、検索したい文字の前後をアスタリスクで囲むことが基本です。
SEARCH関数による部分一致とエラー処理
続いては、SEARCH関数を使って文字列の位置を調べる方法を確認していきます。
| 担当者 | 備考 | 検索結果 |
|---|---|---|
| 田中 | 折り返し連絡済み | 連絡あり |
| 佐藤 | 資料作成中 | 連絡なし |
| 鈴木 | 明日連絡予定 | 連絡あり |
SEARCH関数は、指定した文字がセル内の何文字目にあるかを返す関数です。
SEARCH関数の基本構文
SEARCH関数の基本構文は、SEARCH(検索文字列,対象セル)です。
B2セルに「折り返し連絡済み」と入力されている場合、次の数式は「連絡」が始まる位置を返します。
=SEARCH(“連絡”,B2)
文字列が見つかれば数値が返り、見つからなければエラーになります。
この性質を利用して、文字の有無を判定できます。
SEARCH関数は部分一致の検索に使えるため、文章の中から任意の語を抽出する前段階としても役立ちます。
ISNUMBER関数を組み合わせた判定
SEARCH関数の結果が数値かどうかを、ISNUMBER関数で確認します。
=IF(ISNUMBER(SEARCH(“連絡”,B2)),”連絡あり”,”連絡なし”)
SEARCH関数が文字を発見した場合、位置を示す数値が返ります。
ISNUMBER関数は数値ならTRUEを返すため、IF関数で「連絡あり」と表示できます。
文字が見つからない場合はSEARCH関数がエラーになりますが、ISNUMBER関数がFALSEとして扱うため、結果は「連絡なし」です。
エラー表示を直接見せずに判定結果へ変換できる点が、この組み合わせの利点です。
FIND関数との違い
似た関数としてFIND関数があります。
SEARCH関数は英字の大文字と小文字を区別しませんが、FIND関数は区別します。
日本語の文字列を検索する一般的な表ではSEARCH関数で十分なことが多いでしょう。
ただし、商品コードや英字の識別子で「ABC」と「abc」を別の条件として扱うなら、FIND関数を選ぶ場面があります。
検索で大文字と小文字を区別する必要があるかを基準に使い分けましょう。
【操作のポイント】SEARCH関数の結果は文字数の位置なので、単独では判定文になりません。ISNUMBER関数やIFERROR関数と組み合わせます。
隣のセルを参照する数式コピーと絶対参照
続いては、数式を複数行へ正しくコピーするためのセル参照を確認していきます。
| 商品 | 区分 | 判定 | 判定文字 |
|---|---|---|---|
| ノート | 対象 | 対象あり | 対象 |
| ペン | 除外 | 対象なし | |
| 消しゴム | 対象 | 対象あり |
数式をコピーした後に結果がずれる場合は、相対参照と絶対参照の指定を見直します。
相対参照による行ごとの判定
C2セルに=IF(B2=”対象”,”対象あり”,”対象なし”)と入力して下へコピーすると、B2はB3、B4へ自動で変わります。
このようにコピー先に応じて参照先が変わる形式を相対参照といいます。
各行の隣のセルを判定する今回の用途では、基本的にB2のような相対参照が適しています。
同じ行の隣セルを追いかける参照が必要だからです。
絶対参照による条件セルの固定
判定したい文字をD2セルに入力する場合は、数式の条件側を固定します。
=IF(B2=$D$2,”対象あり”,”対象なし”)
B2は行に応じて変化し、$D$2は常に同じセルを参照します。
F4キーを押すと、選択中のセル参照にドル記号を付けて絶対参照へ切り替えられます。
条件文字を変更する運用では、判定条件だけを固定する数式が管理しやすいでしょう。
テーブル機能での数式入力
元データをテーブルとして設定している場合は、通常のセル参照とは異なる構造化参照も利用できます。
たとえば処理状況列を判定する場合、=IF([@処理状況]=”済”,”確認対象”,”確認対象外”)のように列名を使えます。
数式の意味が読み取りやすく、データ行を追加したときも数式が自動で反映されやすい点がメリットです。
ただし、通常のセル参照に慣れていない場合は、まずB2形式の数式から理解しても問題ありません。
【操作のポイント】判定対象のセルは相対参照、条件を書いた固定セルは絶対参照にすると、オートフィル後のずれを防げます。
条件付き書式による判定行の見やすさ
続いては、数式の結果を視覚的に確認しやすくする条件付き書式を確認していきます。
| 顧客名 | 状態 | 判定 |
|---|---|---|
| 青木商店 | 要対応 | 確認 |
| 石川商事 | 完了 | 通常 |
| 上田産業 | 要対応 | 確認 |
判定結果を文字で出すだけでなく、該当行の背景色を変えると重要なデータを見つけやすくなります。
特定文字を含むセルの色付け
B列に「要対応」が含まれるセルを目立たせるには、条件付き書式の新しいルールを使います。
対象範囲を選択し、ホームタブの条件付き書式から新しいルールを選びます。
数式を使用して書式設定するセルを決定を選択し、=COUNTIF(B2,”*要対応*”)>0のような数式を入力します。
数式がTRUEになるセルだけに、選択した塗りつぶし色が適用されます。
行全体を強調する参照設定
A列からC列までの行全体を色付けしたい場合は、条件付き書式の適用先をA2:C100などに設定します。
数式は=$B2=”要対応”のように入力します。
列記号Bの前だけにドル記号を付けることで、どの列に書式を適用してもB列の状態を確認できます。
行番号の2は相対参照なので、各行ごとにB3、B4と判定対象が変わります。
列だけを固定する複合参照が、行全体の強調では重要です。
フィルターと判定列の併用
大量データでは、判定列に「確認対象」などを表示してからフィルターで絞り込む方法が便利です。
判定列の見出しにあるフィルターボタンを選び、「確認対象」だけにチェックを残します。
これにより、隣のセルに特定文字があったデータだけを一覧で確認できます。
条件付き書式は視認性の向上、フィルターは対象データの抽出に役立ちます。
【操作のポイント】判定列と条件付き書式を併用すると、抽出と目視確認の両方を効率化できます。
まとめ エクセルで隣のセルに特定の文字があれば判定する方法
エクセルで隣のセルに特定の文字があれば判定するには、まず判定の目的が完全一致か部分一致かを整理することが大切です。
B2セルが「済」と完全に一致するかを調べるなら、=IF(B2=”済”,”確認対象”,”確認対象外”)のようにIF関数を使います。
「至急」などの語を含むかどうかを確認するなら、COUNTIF関数にワイルドカードを組み合わせる方法が簡単です。
より柔軟に文字列を検索したい場合は、SEARCH関数とISNUMBER関数を組み合わせる方法も活用できます。
数式を下へコピーする場合は相対参照、条件を入力したセルを固定する場合は絶対参照を使い分けましょう。
判定結果を条件付き書式やフィルターと組み合わせれば、対象データの確認作業をさらに効率化できます。
隣のセルの文字判定を覚えて、日々の集計やチェック作業に役立てていきましょう。