Excel関数で一致したら○を返す方法をお探しですね。
広告
Excelで「2つのセルが同じなら○」を表示する方法──IF関数とCOUNTIFで照合を自動化しよう
Excelで名簿や在庫表を見ていると、「A列とB列が同じなら○をつけたい」とか「別シートに同じ名前があるか確認したい」って場面、けっこうありますよね。
手作業でチェックしていると見落としも起きやすいし、件数が多いとかなり時間がかかってしまいます。
この記事では、2つのセルを比較して「同じなら○」を返す基本の式から、別の表やシートを検索して一致したら丸をつける方法、空白や表記のゆれでうまくいかないときの対処法まで、実務でそのまま使える形でまとめました。
基本のIF関数で「A列とB列が同じなら○」を表示する
Excelで「2つのセルが同じなら○」を返したいときは、**IF関数**を使うのが一番シンプルです。
IF関数は「もし○○なら△△、そうでなければ××」という条件分岐ができる関数です。
たとえば、A2とB2が同じなら「○」、違うなら「×」を表示したいときは、C2に次のように入力します。
“`
=IF(A2=B2,”○”,”×”)
“`
この式の`A2=B2`が条件の部分です。
A2とB2の中身が同じならTRUE(条件を満たす)になって「○」が返ってきます。
違っていればFALSE(条件を満たさない)になって「×」が返ります。
名簿の氏名チェックや、商品コード、受験番号、社員番号など、「完全に同じかどうか」を確認したいときにぴったりです。
違うときは何も表示しない方法
違う場合に何も表示したくないときは、偽の場合を空白にすればOKです。
“`
=IF(A2=B2,”○”,””)
“`
これで、一致したときだけ○が表示されるようになります。
空白行に○が出ないようにする
A2が空白のときにも○が出てしまうと困りますよね。
実は、A2とB2がどちらも空っぽの場合、`A2=B2`では「同じ」と判定されてしまうんです。
未入力の行まで○が並ぶと見づらくなるので、次のように空白チェックを入れておくと安心です。
“`
=IF(A2=””,””,IF(A2=B2,”○”,”×”))
“`
この式は、まずA2が空白なら何も表示せず、A2に値があるときだけB2と比較します。
データが途中までしか入っていない表でも使いやすくなります。
B2側の空白も考慮したいなら、OR関数を組み合わせます。
“`
=IF(OR(A2=””,B2=””),””,IF(A2=B2,”○”,”×”))
“`
これで、A2かB2のどちらかが空白なら何も表示されなくなります。
「○」と「〇」は別の文字なので注意
ちなみに、「○」と「〇」って見た目がそっくりですが、Excelでは別の文字として扱われます。
どちらを使っても判定自体は問題ないんですが、表の中で混ざっていると検索や集計がしづらくなります。
「丸は○で統一する」とか「〇を使う」とか、最初にルールを決めておくと後々ラクです。
大文字小文字やスペースまで厳密にチェックするならEXACT関数
普通の`=A2=B2`による比較は、ほとんどの場面で十分使えます。
ただ、英字の大文字と小文字を区別したいときや、文字列として完全一致しているかを厳密に見たいときは、**EXACT関数**を使うのがおすすめです。
EXACT関数は、2つの文字列が完全に同じかどうかを判定してくれます。
“`
=IF(EXACT(A2,B2),”○”,”×”)
“`
EXACT関数は、`ABC`と`abc`を別の文字として判定します。
商品IDや管理コード、パスワードに近い文字列など、大文字小文字の違いも意味があるデータの確認に向いています。
逆に、一般的な氏名や部署名、商品名の照合では、大文字小文字を区別しなくてもいいケースが多いので、目的に応じて使い分けてください。
スペースや全角・半角の違いに注意
注意したいのが、スペースや全角・半角の違いです。
たとえば「山田太郎」と「山田 太郎」は、間にスペースがあるので一致しません。
また、「ABC」と「ABC」も、半角と全角が違うので別の文字列として扱われます。
見た目では同じように見えても、Excelでは違う値と判定されることがあるんです。
余分なスペースが原因で一致しない場合は、**TRIM関数**を組み合わせる方法があります。
TRIM関数は、文字列の前後や余分なスペースを整えてくれる関数です。
“`
=IF(TRIM(A2)=TRIM(B2),”○”,”×”)
“`
ただし、TRIM関数は主に半角スペースの整理に使われるので、全角スペースが混ざっている日本語データでは期待どおりにならないことがあります。
その場合は、**SUBSTITUTE関数**で全角スペースを削除してから比較する方法が有効です。
“`
=IF(SUBSTITUTE(A2,” ”,””)=SUBSTITUTE(B2,” ”,””),”○”,”×”)
“`
この式では、全角スペースを空文字に置き換えてから比較しています。
さらに半角スペースも消したいなら、SUBSTITUTEを重ねればOKです。
名前や住所みたいに、入力する人によってスペースの入れ方が変わりやすいデータでは、単純比較だけじゃなくて、表記のゆれを整えてから判定する考え方が大事になってきます。
別シートや別表に同じ値があるかチェックするならCOUNTIF関数
「2つのセルを横に並べて比較する」んじゃなくて、「ある値が別の一覧表の中にあるかどうか」を調べたいときは、**COUNTIF関数**が便利です。
COUNTIF関数は、指定した範囲の中に条件に一致するセルがいくつあるかを数える関数です。
検索範囲内に同じ値が1件以上あれば「存在する」と判断できるので、IF関数と組み合わせれば「一致したら○、なければ×」が簡単に作れます。
たとえば、Sheet2のB列にある名前が、Sheet1のA列に存在するかをSheet2のC列で判定したい場合、C2に次のように入力します。
“`
=IF(B2=””,””,IF(COUNTIF(Sheet1!A:A,B2)>0,”○”,”×”))
“`
この式では、まずB2が空白なら空白を返します。
B2に値がある場合、`COUNTIF(Sheet1!A:A,B2)`でSheet1のA列にB2と同じ値がいくつあるかを数えます。
結果が0より大きければ同じ値が存在するので「○」、0なら見つからないので「×」を返します。
この方法は、出席者一覧と社員名簿の照合とか、合格者番号と受験者一覧の照合、商品マスタに登録があるかの確認なんかに向いています。
VLOOKUP関数との使い分け
VLOOKUP関数でも似たようなことはできますが、単に「あるか・ないか」を判定するだけならCOUNTIF関数のほうがシンプルです。
検索範囲と検索値を指定するだけなので、Excel初心者でも理解しやすいのが大きなメリットです。
逆に、同じ社員番号があったら部署名や日付を取り出したいみたいな場合は、XLOOKUP関数やVLOOKUP関数、INDEX関数とMATCH関数の組み合わせを検討しましょう。
「○をつけるだけならCOUNTIF、関連情報も取り出すなら検索関数」と考えると使い分けやすくなります。
部分一致で判定したいときはワイルドカードを使う
部分一致で判定したい場合は、ワイルドカードの`*`が使えます。
たとえば、A2の文字を含むデータがSheet1のA列にあれば「○」を返す場合は、次のようにします。
“`
=IF(A2=””,””,IF(COUNTIF(Sheet1!A:A,”*”&A2&”*”)>0,”○”,”×”))
“`
ただし、部分一致は便利な反面、意図しない一致も起こります。
たとえば「田中」で検索すると「田中太郎」も「田中商店」も一致してしまいます。
正確な照合が必要な場面では完全一致を使って、あいまい検索で十分な場面だけ部分一致を使うようにしましょう。
複数の条件で一致したら○を返す方法
実務では、1つのセルだけじゃなくて「氏名と日付が同じ」とか「商品コードとサイズが同じ」みたいに、複数の条件で判定したい場面もありますよね。
この場合は、IF関数に**AND関数**を組み合わせる方法が基本です。
AND関数は、複数の条件をすべて満たしたときだけTRUEを返す関数です。
たとえば、A2とB2が同じ、かつC2とD2も同じなら「○」、どちらか一方でも違うなら「×」にする場合は、次のように入力します。
“`
=IF(AND(A2=B2,C2=D2),”○”,”×”)
“`
この式は、2つの比較条件を両方満たしたときだけ○を返します。
出荷予定日と実績日、商品コードとロット番号、氏名と生年月日など、1項目だけでは判定が不十分なデータ確認に向いています。
条件を増やしたいときは、AND関数の中にカンマ区切りで追加していけばOKです。
別表から複数条件で検索するならCOUNTIFS関数
別表の中から複数条件に一致するデータがあるかを調べる場合は、**COUNTIFS関数**を使います。
COUNTIFS関数は、複数の範囲と条件を指定して、すべてに一致する件数を数える関数です。
たとえば、Sheet1のA列に氏名、B列に日付があって、現在のシートのA2の氏名とB2の日付が両方一致する行があれば「○」を返すには、次のようにします。
“`
=IF(OR(A2=””,B2=””),””,IF(COUNTIFS(Sheet1!A:A,A2,Sheet1!B:B,B2)>0,”○”,”×”))
“`
この式では、A2またはB2が空白なら空白を返して、両方入力されている場合だけCOUNTIFSで照合します。
複数条件の照合では、どれか1つの項目だけで一致判定をすると誤判定が起きやすくなります。
同姓同名の名簿とか、同じ商品名でサイズ違いがある在庫表、同じ日付に複数の予定がある管理表では、複数条件で確認するほうが安全です。
うまく○が出ないときのチェックポイント
うまく○が出ない場合、数式そのものよりも**元データに原因がある**ことも少なくありません。
特に多いのが、次のようなケースです。
– **空白**:見えない空白や改行が入っている
– **全角・半角の違い**:「ABC」と「ABC」が混在している
– **日付の見た目と実データの違い**:表示形式だけ日付で、実体は文字列になっている
– **数値と文字列の混在**:見た目は「001」でも、片方は文字列、もう片方は数値の1
確認するときは、次の観点を優先してチェックすると原因を見つけやすくなります。
– 余分なスペースや改行が入っていないか
– 全角文字と半角文字が混ざっていないか
– 日付や番号が「文字列」と「数値」で分かれていないか
– 比較したい範囲と検索値の列を取り違えていないか
まとめ:条件を明確にすれば、使う関数も自然に決まる
Excelで「同じなら○」を返す関数は、シンプルな比較なら`IF(A2=B2,”○”,”×”)`で十分です。
別シートや一覧表との照合なら`IF`と`COUNTIF`、複数条件なら`AND`や`COUNTIFS`を組み合わせると、より実務に合った判定ができます。
大事なのは、○を表示すること自体じゃなくて、**どの条件を満たしたら「同じ」と判断するのかを先に決めること**です。
条件が明確になれば、使う関数も自然に選びやすくなって、確認作業の手間とミスを大きく減らせます。
ぜひこの記事を参考に、日々のExcel作業を効率化してみてください!
広告
