[Excel/ワークシート関数]大量のセルとセルを比較し、その結果を一瞬で判別する方法はコレだ!

この記事のザックリした内容
  • Excelのワークシート関数を使います
  • IF関数、EXACT関数、COUNTIF関数
  • 各関数の細かな説明はしません(知識が無くても読めば分かると思いますよ)
  • セルとセルと比較します
  • 見易い比較結果の出し方を説明します

 

こんにちは。ナガオカ(@boot_kt)です。

 

Excelを使って2つのデータや表を比較することはないですか?

この記事では、ワークシート関数を使って簡単に比較する方法を説明します

 

 


 

 

本記事中のセルについて
比較対象のデータがA1セルとB1セルに、比較結果がC列に入っているものとしてお読みください

先に結論

記事全部を読むのが面倒な人はここに書いているものをコピって使えばいいでしょう

大文字小文字を区別して比較 or 数字を比較する場合

=IF(EXACT(A1,B1),”…”,”NG”)

大文字小文字を区別せず比較 or 数字を比較する場合

=IF(A1=B1,”…”,”NG”)

まずはこの2つの式を覚えてね

パターン1

=EXACT(A1,B1)

パターン2

=A1=B1

これらをExcelのセルの中に書きます

※=からコピってセルの中に貼り付ければOKです
※セル番地は各自の比較対象のセルバチに変更してね

 

どう違うの?

動きとしては同じです。
結果として、「TRUE」もしくは「FALSE」と表示されるだけです。

比較の判断基準が少し変わります。

 


パターン1:大文字と小文字を区別します

パターン2:大文字と小文字を区別しません

 

数字を比較する場合はどちらでもいいですが、
英文字を比較する場合は大文字小文字の区別があるので、必要な方を使ってください

 

応用編

さて、実際のところ、私はセルとセルを比較することはしょっちゅうありますが、パターン1・パターン2をそのまま使うことはしません
(もうちょっと言えば、大文字小文字を区別したいのでパターン2を使うこともありません)

最初の結論に書いた式を使います

大文字小文字を区別して比較 or 数字を比較する場合

=IF(EXACT(A1,B1),”…”,”NG”)

 

IF関数が付きましたね
なぜIF関数を使っているかと言うと、、、、、

以下の図をご覧ください

左と右と、どちらが間違いを見つけやすいですか?

excel-if-exact-compare

あなたはどちらの比較結果が分かり易いですか?

 

 

 

右側ですよね

NGの箇所がすぐに分かります

 

左側はTRUEとFALSEが混在しているのでFALSEを見落としかねません、いや、見落とすでしょう

EXACT関数をテーマにした記事では

=IF(EXACT(A1,B1),”正”,”誤”)
=IF(EXACT(A1,B1),”T”,”F”)
=EXACT(A1,B1)

みたいな感じで書きましょうという解説が多いように思います

 

「おいおい、君は本当にその書き方をしてるのかい?」
「”正”と”誤”の文字がずらっと並んだ時に見づらいと思わないのかい?」
「比較結果の見落としは無いのかい?」

 

といつも思っています(笑)

 

応用編の説明

NG の部分は好きに書き換えていいです
↓こんな感じで

サンプル
=IF(EXACT(A1,B1), “OK” , “…”)

=IF(EXACT(A1,B1), “” , “間違ってるやーーん!!”)

=IF(EXACT(A1,B1), “合致してるよーーーん” , “”)

=IF(EXACT(A1,B1), “合致してるよーーーん” , “間違ってるやーーん!!”)

 

NG はともかく、なぜ と表示してるの?
単純に見た目が分かりやすいですよね

EXACT関数を使ってまで比較するということは、比較対象が大量にあるはずです
その比較結果を見るとき、どこが不一致になっているか? or どこが合致しているか? のどちらかだけが分かればいいはずです

が目立たないお陰で、NG という文字がパッと目に飛び込んできますよね

 

そしたら、 すらも要らないんじゃないの?
ええ、書かなくてもいいですよ

でもね、さっきも言いましたが、比較対象は大量にあることが多いと想定します

=IF(EXACT(A1,B1),”…”,”NG”)

を一つのセルに書いたら、そのセルを大量にコピーしますよね
※コピーすると、自動的にセル番地を示す(A1,B1)の部分が書き換わってくれます

大量にあると、コピーしていない部分があるかも知れません

は式のコピー漏れ発見のために書いているだけです

コピー漏れが絶対に無いと思うなら

=IF(EXACT(A1,B1),””,”NG”)

でいいですよ

 

NGをカウントしよう

比較結果があまりにも大量にある場合、COUNTIF関数を書いておけばいいですよ。
NGが何個あるかすぐに分かります

特定の文字を数える式

=COUNTIF(C1:C30,”NG“)

 

まとめ

  • 比較用の式
    =IF(EXACT(A1,B1),”…”,”NG”)

    ↓以下の部分は各自の環境に合わせて書き換えてね

    • A1とB1は比較する対象
    • は比較一致した時に表示する文字
    • NG は比較不一致の時に表示する文字

     

  • NG数カウントの式
    =COUNTIF(C1:C30,”NG”)

    ↓以下の部分は各自の環境に合わせて書き換えてね

    • C1:C30 は比較結果が表示されているエリア
    • NG=IF(EXACT( のNG部分と合わせること

 

広告




 

さいごに、

私も仕事で大量のセルとセルを比較することがあります。

比較は一時的にやりたいだけだし、サクッと使い捨てで書くことが多いです。

今回説明したやり方だと、大して手間はかからないし、目視ですけど間違い箇所がすぐに分かります。
あまりにも大量だとCOUNTIF関数を使いますが、それも別に手間ではないです

Excelのワークシート関数知らない方だと、

IF ????
EXACT ????

ってなるかも知れませんが、

ちょっとまってください、数秒考えればきっと分かります!!!
難しそうと思うのは気のせいです、錯覚です、蜃気楼です

 

ぜひ一度お仕事で使ってみてください
きっと役に立ちます!

 

 

でもやっぱり分からないとおっしゃる場合は、私のプログラミングレッスンを一度無料で体験してみてください。

 

Excel VBA のレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!

 

 

1 個のコメント

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    ABOUTこの記事をかいた人

    Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。