はじめに
セル範囲どうしのデータが一致しているかどうか数式で判定したいという場面は意外に多いのではないでしょうか。
セル単体どうしの比較なら簡単な数式でできますが、範囲となるとなかなか難しいと思います。
この記事ではセル範囲どうしの一致を判定することのできる数式について解説します!
問題点や対策を施した数式も掲載していますので、最後までご覧頂けますと幸いです!
セル範囲同士の一致を判定する数式
どんな数式になるのでしょうか?
見てみましょう!
<例で使用している数式>
(配列数式です。スピル非対応バージョンでは Ctrl + Shift + Enterで数式を確定して下さい)
=IF(AND(B3:D5=F3:H5),"一致している","一致していない")
意外にシンプルな数式ですね。
IF関数は論理式の結果がTRUEかFALSEかで
分岐をするのがお仕事ですから、
AND関数のところが肝でしょうか。
そうですね。
AND関数の引数にはセル範囲動詞を『=』で評価する数式が入っています。
左上のセルから順にデータが一致しているかどうかを判定した結果を
範囲にあるセルの数だけ複数返すことになります。
図の例ではセルB3とセルF3が同じかどうか、
セルC3とセルG3が同じかどうか…
これらの結果をすべて、ということですね!
ここでAND関数が活躍します。
一致しているかどうかの答えがすべてTRUE(真)ならばAND関数はTRUEを返し
そうでなければFALSEを返します。
あとはIF関数による分岐で表示する文字列を指定します。
AND関数良い仕事しますね~!
そうでしょう、そうでしょう!
ただし、この数式では比較するセル範囲の中にエラーがあると
データが一致しているかどうかに関わらず結果がエラーになってしまいます。
対策した数式の解説を以下に掲載しますのでご覧ください。
(番外編)配列数式を回避した数式
<例で使用している数式>
Twitterで光希桃先生に教えて頂きました。配列数式を使用しない数式です。
『一致していない』の判定がすべて偽(FALSE)=すべて一致しているという天の邪鬼数式です。
=IF(SUMPRODUCT(N(B5:D7<>F5:H7))=0,"一致している","一致していない")
注意点と対策
比較演算子『=』ではエラー同士が正しいかどうかの判定はできないため、比較したいセル範囲にエラーが含まれる場合には数式の結果がエラーとなります。
セル範囲に入っているのがデータであれば生じない問題ですが、VLOOKUP関数で別のシートから引っ張ってくる数式が入力されている場合にはIFERROR関数などでエラーの対策を施す必要があります。
<例で使用している数式>
(スピル非対応バージョンでは Ctrl + Shift + Enterで数式を確定して下さい)
=IF(AND(IFERROR(B17:D19,"ERR"&ERROR.TYPE(B17:D19))=IFERROR(F17:H19,"ERR"&ERROR.TYPE(F17:H19))),"一致している","一致していない")
おわりに
今回はTwitterで教わった数式について記事にまとめてみました。
AND関数の使い方、非常に参考になりますね。
数式の中でセル範囲を扱うことは難しく感じると思います。
数式を入力してみて、少しずつ動かして慣れていくと良いと思います。
(私は苦手意識から配列数式が全く使えませんでした。)
最後までお付き合い頂き、ありがとうございました!
当ブログはエクセル関数の擬人化キャラクター記事をメインコンテンツとしています!
よろしければこちらの記事もどうぞ~!
コメント
[…] セル範囲同士の値がすべて一致しているかどうかを判定する数式についてかんたんに解説します!【エクセルTips】セル範囲どうしのデータが一致しているかどうか数式で判定したいとい […]