Excelで文字列を比較する方法|IF・EXACTで一致/不一致を判定

Excelで文字列を比較する方法|IF・EXACTで一致/不一致を判定

Excelで同じ行の2つの文字列を比較するなら、=IF(A1=B1,"一致","不一致") を使います。大文字・小文字まで区別したいときはEXACT関数を組み合わせます。まず「同じ行を比べる」のか「別の一覧に存在するかを探す」のかを分けて考えましょう。

目次

IF関数で文字列が一致するかを表示する

A列に比較元、B列に比較先を用意し、C1に次の式を入力します。下へコピーすると、各行のA列とB列を比較できます。

=IF(A1=B1,"一致","不一致")
A列B列上の式の結果
appleApple一致
bananaBanana一致
grapegrape一致
appleapples不一致

通常の「=」による文字列比較は英字の大文字・小文字を区別しません。「一致なら〇、違えば空白」にするなら、返す文字を変更します。

=IF(A1=B1,"〇","")

IF関数の中で直接文字を指定するときは =IF(A1="完了","確認済み","") のように半角のダブルクォーテーションで囲みます。セル番地B1を指定する場合は囲みません。

EXACT関数で大文字・小文字まで比較する

=EXACT(A1,B1)

一致すればTRUE、不一致ならFALSEです。「apple」と「Apple」はFALSE、「grape」と「grape」はTRUEになります。判定を日本語で表示する式は次のとおりです。

=IF(EXACT(A1,B1),"一致","不一致")

EXACTは文字の内容を比較します。フォントの色や太字などの書式が同じかどうかは判定しません。

空白の行を判定から外す

未入力の行まで「一致」と表示させたくない場合は、先に空白を判定します。次は、どちらかが空白なら結果を空白にする例です。

=IF(OR(A1="",B1=""),"",IF(A1=B1,"一致","不一致"))

この式は数式で返された空文字 "" も空白として扱います。「一方だけ未入力」を見つけることが目的なら、空白にせず「未入力あり」と表示させてください。

見た目が同じなのに一致しないとき

余分なスペースを調べる

LEN(A1) と LEN(B1) で文字数を比べると、見えにくい空白に気付きやすくなります。前後の半角スペースを除いて比較する例です。

=IF(TRIM(A1)=TRIM(B1),"一致","不一致")

TRIMは途中の連続する半角スペースも1個にまとめます。氏名や商品コードで空白自体に意味がある場合は、勝手に除去しないでください。全角スペースや改行、Web由来の特殊な空白は別途確認が必要です。

数値と文字列を区別する

数値の100と文字列の「100」が混在していないか、ISNUMBERやISTEXTで確認します。金額など数値として比較する項目は数値へ統一し、先頭の0が必要な社員番号などは文字列へ統一します。文字列を数値に一括変換する方法も参考になります。

文字列を「含む」か判定する

次はA1に「営業」が含まれるかを調べる式です。SEARCHは英字の大文字・小文字を区別せず、見つからない場合はエラーになるため、ISNUMBERで判定します。

=IF(ISNUMBER(SEARCH("営業",A1)),"含む","含まない")

大文字・小文字を区別する部分一致にはFINDを使います。LIKEはExcelの通常のセル数式で使う演算子ではありません。

不一致の行に色を付ける・一致数を数える

A1:B100を選択し、[ホーム]→[条件付き書式]→[新しいルール]→[数式を使用して、書式設定するセルを決定]で、次の式と塗りつぶし色を設定します。

=$A1<>$B1

これはセル全体を色付けする方法で、違う文字だけを着色するものではありません。両列に値がある行だけで一致数を数える場合は、次の式を使います。

=SUMPRODUCT((A1:A100<>"")*(B1:B100<>"")*(A1:A100=B1:B100))

複数列の組み合わせを比べる場合は、単純連結による取り違えを避け、=IF(AND(A1=D1,B1=E1,C1=F1),"一致","不一致") のように列ごとに比較します。

順番が違う2つの名簿を比較したい場合

行の順番が違う名簿にA1=B1を使うと、同じ人が別の行にいても不一致になります。その場合はCOUNTIFなどで一覧内の存在を調べます。2つの名簿を比較して片方にしかないデータを抽出する方法へ進んでください。

仕様の確認:Microsoft公式・EXACT関数 / Microsoft公式・TRIM関数 / Microsoft公式・SEARCH関数

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次