「excel if 小数点がある時」
「excel2010 小数点があるか判断」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
数値データに小数点以下・小数部分があるかどうかを判定するにはどうしたらいいのか、どういう数式にすればいいのかを探している方による検索です。
INT関数を使った数式
さまざまな方法が考えられますが、もっとも理解しやすいのは、INT関数を使う数式だと思います。※A1セルのデータに小数部があるかをB1セルに表示する例
B1セルに
=IF(A1=INT(A1), "小数なし", "小数あり")
という数式を入力する
ExcelのINT関数は、引数に指定された数値の整数部分だけを返す関数です。
元々のA1セルの値と、INT関数を使ってA1セルの整数だけを比較したときに、もし等しければ、そもそも小数部分はなく、等しくなければ小数点以下が存在してることになります。
それを数式にしたのが
=IF(A1=INT(A1), "小数なし", "小数あり")
という数式です。
MOD関数を使った数式
割り算の余りを求めるMOD関数を使っても、小数点以下があるかどうか・小数部分があるかどうかを判定できます。※A1セルのデータに小数部があるかをB1セルに表示する例
B1セルに
=IF(MOD(A1,1)=0, "小数なし", "小数あり")
という数式を入力する
元のデータを「1」で割り算をしたときに、小数部分があれば、何らかの余りが返され、小数部分がなければ余りは「0」になります。
それを数式にしたのが
=IF(MOD(A1,1)=0, "小数なし", "小数あり")
です。
FIND関数を使った数式
小数点があるかどうか、で判定しようとした方は以下のような数式を考えるかもしれません。※A1セルのデータに小数部があるかをB1セルに表示する例
B1セルに
=IF(ISERROR(FIND(".", A1)), "小数なし", "小数あり")
という数式を入力する
FIND関数は、文字を探す関数です。
第1引数に指定された文字を、第2引数に指定された文字列で探して、見つかった場合はその位置を返します。指定した文字が見つからなかった場合にはエラーとなります。
その特性を活かして作ったのが
=IF(ISERROR(FIND(".", A1)), "小数なし", "小数あり")
という数式です。
ですが、私ならこの数式は使いません。
FIND関数を使った場合は、小数点そのものを探しているというニュアンスが感じられるため、例えば「5.00」という数値を判定した場合には、小数点ありという結果になるかのような気分になります。
しかし実際は、
=IF(ISERROR(FIND(".", A1)), "小数なし", "小数あり")
という数式でも「5.00」の場合は、「小数なし」という判定になります。先のINT関数やMOD関数と同じ結果になります。
小数点以下・小数部分があるかという数式は、理解しやすく誤解も与えにくいINT関数を使うのが一番だと感じます。
Home » Excel(エクセル)の関数・数式の使い方 » 論理・情報 » 小数点以下・小数部分があるかを判定する-IF・INT関数