TOPページ > Excel・IT開発 > Excel実務のノウハウ > if関数の落とし穴に気をつける

if関数の落とし穴に気をつける|Excel実務のノウハウのお勉強

if関数の落とし穴

簡単なデータを比較する際にif関数を使う人は少なくないのではないかと思います。
表1のA列と表2のA列の値が同じか確認する際に、並べ替えをしてif関数を入れてオートフィルで表の末尾までコピーして使う方法などです。
ここではif関数は便利な反面、if関数がどのようなときにどのような結果を返すのか知っておかないと気づかぬうちに同じデータにも関わらず、意図に反した結果を返すこともあります。

■例1:データ比較表
テスト値の入ったデータ表

【解説】
ここでは上記の表を用意しました。
A列の値とB列の値をif関数を使って同じかどうかを確認したいと思います。


■例2:if関数を設定する
if関数を設定

上記のようにC列に結果という項目を設けました。
if関数の式は簡単に言うと
A列の値とB列の値が同じ場合:C列に「OK」と表示
A列の値とB列の値が違う場合:C列に「NG」と表示

そしてこの数式を末尾の行までコピーします。

■例3:if関数を設定し、結果を見る前に
A列に値の属性を表示

皆さんはどのような結果が返ってくると思いますか?
「データ1」と「データ2」に入っている文字について簡単に説明しますと文字の1行目:同じ数値が入っている
文字の2行目:同じ文字が入っている
文字の3行目:同じ数値と文字が入っている
文字の4行目:同じ文字だが大文字と小文字が入っている
文字の5行目:同じ数値だが全角と半角の数値が入っている


■例4:if関数の結果
if関数を全ての値でチェック

いかがでしょうか?
上記で分かるように、全角と半角だけ「異なる」と認識していることが分かります。
つまりこのことから分かるのは
・大文字と小文字もチェックしたい場合はif関数では判別できない
・全角と半角が混在してる文字を同じとみなしたい場合はできない
ということが分かると思います。
このことにより、if関数を使って比較したい場合に、使える表と使えない表があるということが分かると思います。
皆さんも今使っている表にif関数がある場合、確認した方がいいかもしれませんね。

■値を比較するときの関数
Excelには値を比較する関数が用意されています。
exact関数について


exact関数の実行結果

「exact関数」というのがあります。
この場合は、上記の「結果2」にあるように「TRUE」、「FALSE」で結果を返しますが if関数と違うのは大文字と小文字も判別するということですね。

■おまけ
実はもっと簡単な方法もあります。
値を比較する別の方法

この方法ではセルに単純に「=」を入れた後に比較したいセルのアドレスを入れるだけです。
この場合の結果はif関数と同じです。
※全てのパターンを検証しているわけではないので、ご利用には気をつけてください。


このエントリーをはてなブックマークに追加

Excel実務のノウハウ 関連ページ


グローウィン有限会社
東京都三鷹市下連雀3-27-1 三協ビル2階-B 地図を見る
トップページ
入力代行関連
Excel・IT開発
中国アテンド
会社概要
プレスリリース
お問い合わせ
お問い合わせ内容一覧

英文ページ(English)
中文ページ
プレスリリース お問い合わせフォーム