当サイトはアフィリエイト広告を利用しています。
今回は、Excelで文字列を比較して一致したら◯を返す方法をご紹介します。
- 2つの値を比較して一致した場合に◯を返したい
- 複数セルの中に1つでも同じ値があった場合に◯を返したい
こんな方はぜひ参考にしてみてください。
なお、「完全に一致した場合」だけでなく、「部分的に一致した場合」のやり方もご紹介します。
Excelで文字列を比較して一致したら◯を返すときに使用する関数
Excelで文字列を比較して一致したら◯を返すときは、以下のような関数を使用します。
- IF関数
- EXACT関数
- FIND関数
- ISERROR関数
- SUMPRODUCT関数
- COUNTA関数
まずはこれらがどういった関数なのか簡単に説明します。
IF関数
IF関数(イフ関数)は、条件を満たす場合と満たさない場合とで処理を変える関数です。
IF(論理式, 真の場合, 偽の場合)
- 論理式(必須)
- 条件を指定する。
- 真の場合(必須)
- 条件を満たす場合の処理を指定する。
- 偽の場合(必須)
- 条件を満たさない場合の処理を指定する。
IF関数を使うことで、「一致したら◯、一致しなければ×」といった、比較結果別の処理方法を指定できます。
EXACT関数
EXACT関数(イグザクト関数)は、2つの文字列を比較し、一致する場合は「TRUE」を返し、一致しない場合は「FALSE」を返す関数です。
EXACT(文字列1, 文字列2)
- 文字列1(必須)
- 一方の文字列を指定する。
- 文字列2(必須)
- もう一方の文字列を指定する。
EXACT関数は大文字と小文字を区別するため、「完全に一致するかどうか」を調べることができます。
FIND関数
FIND関数(ファインド関数)は、対象の中から指定された文字列を検索し、それが左端から数えて何番目にあるか返す関数です。
FIND(検索文字列, 対象, [開始位置])
- 検索文字列(必須)
- 検索したい文字列を指定する。
- 対象(必須)
- どの文字列から検索したいか指定する。
- 開始位置(省略可)
- 検索を開始する位置を指定する。省略すると1文字目として処理される。
FIND関数は大文字と小文字を区別し、かつ左端から数えて何番目にあるかを返すため、何らかの数字が返されれば「文字列が含まれる(=部分的に一致する)」ということがわかります。ちなみに一致するものがなければエラーになります。
ISERROR関数
ISERROR関数(イズエラー関数)は、テストの対象がエラーの場合に「TRUE」を返し、エラーでない場合に「FALSE」を返す関数です。
ISERROR(テストの対象)
- テストの対象(必須)
- エラーかどうかチェックしたい値を指定する。
ISERROR関数を使うことで、「FIND関数の計算結果がエラーかどうか」を調べることができます。
SUMPRODUCT関数
SUMPRODUCT関数(サムプロダクト関数)は、掛け算の結果を合計する関数です。
SUMPRODUCT(配列1, [配列2], …)
- 配列1(必須)
- 計算の対象となる要素を指定する。
- 配列2(省略可)
- 計算の対象となる追加の要素を指定する。
なお、「配列」は最大255個まで指定できます。
SUMPRODUCT関数を使うことで、「完全一致するセルの個数」や、「エラーのセルの個数」をカウントできます。
COUNTA関数
COUNTA関数(カウントエー関数)は、空白ではないセルの個数を求める関数です。
COUNTA(値1, [値2], …)
- 値1(必須)
- 検索する範囲を指定する。
- 値2(省略可)
- 検索する追加の範囲を指定する。
なお、「値」は最大255個まで指定できます。
COUNTA関数を使えば「空白ではないセルの個数-エラーのセルの個数」を計算できるため、「エラーではないセルの個数(=部分的に一致するセルの個数)」がわかります。
Excelで2つの値を比較して一致したら◯を返す方法
Excelで2つの値を比較して一致したら◯を返す方法を、「完全に一致した場合」と「部分的に一致した場合」の2パターンに分けてご紹介します。
完全に一致した場合
たとえば、2行目のA列とB列を比較し、完全に一致した場合に◯をC列に返すには、C2に以下のような数式を入力し、任意の行までオートフィルします。
=IF(EXACT(A2,B2),"○","×")
部分的に一致した場合
たとえば、2行目のA列とB列を比較し、部分的に一致した場合に◯をC列に返すには、C2に以下のような数式を入力し、任意の行までオートフィルします。
=IF(ISERROR(FIND(A2,B2)),"×","◯")
Excelで複数セルの中に1つでも同じ値があれば◯を返す方法
Excelで複数セルの中に1つでも同じ値があれば◯を返す方法を、「完全に一致した場合」と「部分的に一致した場合」の2パターンに分けてご紹介します。
完全に一致した場合
たとえば、A2:A7の中にC2と完全に同じ値が1つでもあればD2に◯を返すには、D2に以下のような数式を入力します。例の場合だと完全に一致するものが1つあるので◯が返されます。
=IF(SUMPRODUCT(EXACT(A2:A7,C2)*1)>0,"◯","×")
部分的に一致した場合
たとえば、A2:A7の中にC2と部分的に同じ値が1つでもあればD2に◯を返すには、D2に以下のような数式を入力します。例の場合だと部分的に一致するものが2つあるので◯が返されます。
=IF(COUNTA(A2:A7)-SUMPRODUCT(ISERROR(FIND(C2,A2:A7))*1)>0,"◯","×")
Excelで一致したら別のセルの値を返す方法
「IDで検索して一致する名前を抽出したい」といったように、一致したら別のセルの値を返したい場合は、以下のような方法があります。
- VLOOKUP関数を使う
- HLOOKUP関数を使う
- XLOOKUP関数を使う
- INDEX関数を使う
- FILTER関数を使う
詳しくは以下の記事をご覧ください。
Excelで一致したらセルの色を変更する方法
「『完了』という文字列と一致したらセルの色を変えたい」といったように、一致したらセルの色を変えたい場合は、条件付き書式を使い、色を変えたいセルに対し以下のような条件を設定します。
- 一致したら色を付ける →
=入力するセル番地="文字列"
- 一致したら色を消す →
=入力するセル番地<>"文字列"
たとえば、A1に「Excel」と入力した場合にA1に色を付けたい場合は、A1に対し=A1="Excel"
という条件を設定します。
すると、「Excel」と入力した場合のみ色が付き、それ以外の文字列や空白の場合は色が付きません。
条件付き書式について、詳しくは以下の記事をご覧ください。
まとめ
今回は、Excelで文字列を比較して一致したら◯を返す方法をご紹介しました。
Excelで文字列を比較して一致したら◯を返す方法は、比較の対象が「単一セル」か「複数セル」か、また「完全一致」か「部分一致」かによって微妙に異なります。
いずれも「IF関数」「EXACT関数」「FIND関数」「ISERROR関数」「SUMPRODUCT関数」「COUNTA関数」などの関数を使うことで実現できますよ。
Udemyでは、買い切りの動画講座で好きな分野について自分のペースで学ぶことができます。
パソコンだけでなくスマホにも対応しているので、移動時間や休憩時間にスマホで学習することも可能です。
30日間の返金保証付きなので、初めてでも安心して受講できますよ。
▼ おすすめのExcel VBA講座はこちら ▼