Excelで文字列を比較して一致したら◯を返す方法

当サイトはアフィリエイト広告を利用しています。

今回は、Excelで文字列を比較して一致したら◯を返す方法をご紹介します。

  • 2つの値を比較して一致した場合に◯を返したい
  • 複数セルの中に1つでも同じ値があった場合に◯を返したい

こんな方はぜひ参考にしてみてください。

なお、「完全に一致した場合」だけでなく、「部分的に一致した場合」のやり方もご紹介します。

Excelで文字列を比較して一致したら◯を返すときに使用する関数

Excelで文字列を比較して一致したら◯を返すときは、以下のような関数を使用します。

  • IF関数
  • EXACT関数
  • FIND関数
  • ISERROR関数
  • SUMPRODUCT関数
  • COUNTA関数

まずはこれらがどういった関数なのか簡単に説明します。

IF関数

IF関数(イフ関数)は、条件を満たす場合と満たさない場合とで処理を変える関数です。

IF関数の構文

IF(論理式, 真の場合, 偽の場合

論理式(必須)
条件を指定する。
真の場合(必須)
条件を満たす場合の処理を指定する。
偽の場合(必須)
条件を満たさない場合の処理を指定する。

IF関数を使うことで、「一致したら◯、一致しなければ×」といった、比較結果別の処理方法を指定できます。

EXACT関数

EXACT関数(イグザクト関数)は、2つの文字列を比較し、一致する場合は「TRUE」を返し、一致しない場合は「FALSE」を返す関数です。

EXACT関数の構文

EXACT(文字列1, 文字列2

文字列1(必須)
一方の文字列を指定する。
文字列2(必須)
もう一方の文字列を指定する。

EXACT関数は大文字と小文字を区別するため、「完全に一致するかどうか」を調べることができます。

FIND関数

FIND関数(ファインド関数)は、対象の中から指定された文字列を検索し、それが左端から数えて何番目にあるか返す関数です。

FIND関数の構文

FIND(検索文字列, 対象, [開始位置]

検索文字列(必須)
検索したい文字列を指定する。
対象(必須)
どの文字列から検索したいか指定する。
開始位置(省略可)
検索を開始する位置を指定する。省略すると1文字目として処理される。

FIND関数は大文字と小文字を区別し、かつ左端から数えて何番目にあるかを返すため、何らかの数字が返されれば「文字列が含まれる(=部分的に一致する)」ということがわかります。ちなみに一致するものがなければエラーになります。

ISERROR関数

ISERROR関数(イズエラー関数)は、テストの対象がエラーの場合に「TRUE」を返し、エラーでない場合に「FALSE」を返す関数です。

ISERROR関数の構文

ISERROR(テストの対象

テストの対象(必須)
エラーかどうかチェックしたい値を指定する。

ISERROR関数を使うことで、「FIND関数の計算結果がエラーかどうか」を調べることができます。

SUMPRODUCT関数

SUMPRODUCT関数(サムプロダクト関数)は、掛け算の結果を合計する関数です。

SUMPRODUCT関数の構文

SUMPRODUCT(配列1, [配列2], …)

配列1(必須)
計算の対象となる要素を指定する。
配列2(省略可)
計算の対象となる追加の要素を指定する。

なお、「配列」は最大255個まで指定できます。

SUMPRODUCT関数を使うことで、「完全一致するセルの個数」や、「エラーのセルの個数」をカウントできます。

COUNTA関数

COUNTA関数(カウントエー関数)は、空白ではないセルの個数を求める関数です。

COUNTA関数の構文

COUNTA(値1, [値2], …)

値1(必須)
検索する範囲を指定する。
値2(省略可)
検索する追加の範囲を指定する。

なお、「値」は最大255個まで指定できます。

COUNTA関数を使えば「空白ではないセルの個数-エラーのセルの個数」を計算できるため、「エラーではないセルの個数(=部分的に一致するセルの個数)」がわかります。

Excelで2つの値を比較して一致したら◯を返す方法

Excelで2つの値を比較して一致したら◯を返す方法を、「完全に一致した場合」と「部分的に一致した場合」の2パターンに分けてご紹介します。

完全に一致した場合

たとえば、2行目のA列とB列を比較し、完全に一致した場合に◯をC列に返すには、C2に以下のような数式を入力し、任意の行までオートフィルします。

=IF(EXACT(A2,B2),"○","×")
2つの値が完全に一致するかどうか比較した結果

部分的に一致した場合

たとえば、2行目のA列とB列を比較し、部分的に一致した場合に◯をC列に返すには、C2に以下のような数式を入力し、任意の行までオートフィルします。

=IF(ISERROR(FIND(A2,B2)),"×","◯")
2つの値が部分的に一致するかどうか比較した結果

Excelで複数セルの中に1つでも同じ値があれば◯を返す方法

Excelで複数セルの中に1つでも同じ値があれば◯を返す方法を、「完全に一致した場合」と「部分的に一致した場合」の2パターンに分けてご紹介します。

完全に一致した場合

たとえば、A2:A7の中にC2と完全に同じ値が1つでもあればD2に◯を返すには、D2に以下のような数式を入力します。例の場合だと完全に一致するものが1つあるので◯が返されます。

=IF(SUMPRODUCT(EXACT(A2:A7,C2)*1)>0,"◯","×")
複数セルの中に完全に同じ値があるかどうか調べたした結果
MEMO

完全に一致した件数を返したい場合は、数式を=SUMPRODUCT(EXACT(A2:A7,C2)*1)とします。

複数セルの中にある完全に同じ値の件数をカウントした結果

部分的に一致した場合

たとえば、A2:A7の中にC2と部分的に同じ値が1つでもあればD2に◯を返すには、D2に以下のような数式を入力します。例の場合だと部分的に一致するものが2つあるので◯が返されます。

=IF(COUNTA(A2:A7)-SUMPRODUCT(ISERROR(FIND(C2,A2:A7))*1)>0,"◯","×")
複数セルの中にに部分的に同じ値があるかどうか調べたした結果
MEMO

部分的に一致した件数を返したい場合は、数式を=COUNTA(A2:A7)-SUMPRODUCT(ISERROR(FIND(C2,A2:A7))*1)とします。

複数セルの中にある部分的に同じ値の件数をカウントした結果

Excelで一致したら別のセルの値を返す方法

「IDで検索して一致する名前を抽出したい」といったように、一致したら別のセルの値を返したい場合は、以下のような方法があります。

  • VLOOKUP関数を使う
  • HLOOKUP関数を使う
  • XLOOKUP関数を使う
  • INDEX関数を使う
  • FILTER関数を使う

詳しくは以下の記事をご覧ください。

Excelで一致したらセルの色を変更する方法

「『完了』という文字列と一致したらセルの色を変えたい」といったように、一致したらセルの色を変えたい場合は、条件付き書式を使い、色を変えたいセルに対し以下のような条件を設定します。

  • 一致したら色を付ける → =入力するセル番地="文字列"
  • 一致したら色を消す → =入力するセル番地<>"文字列"

たとえば、A1に「Excel」と入力した場合にA1に色を付けたい場合は、A1に対し=A1="Excel"という条件を設定します。

Excelのシート画面と「新しい書式ルール」画面

すると、「Excel」と入力した場合のみ色が付き、それ以外の文字列や空白の場合は色が付きません。

「Excel」と入力する前と入力した後の比較

条件付き書式について、詳しくは以下の記事をご覧ください。

まとめ

今回は、Excelで文字列を比較して一致したら◯を返す方法をご紹介しました。

Excelで文字列を比較して一致したら◯を返す方法は、比較の対象が「単一セル」か「複数セル」か、また「完全一致」か「部分一致」かによって微妙に異なります。

いずれも「IF関数」「EXACT関数」「FIND関数」「ISERROR関数」「SUMPRODUCT関数」「COUNTA関数」などの関数を使うことで実現できますよ。