Home » Excel(エクセル)の関数・数式の使い方 » 論理・情報 » 小数点以下・小数部分があるかを判定する-IF・INT関数

小数点以下・小数部分があるかを判定する-IF・INT関数

対象:Excel2007, Excel2010, Excel2013

小数点以下・小数部分があるかを判定する

「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関数

「論理・情報」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.