いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)数値が整数かどうか判定する方法

 Excelで数値が整数かそうでない(小数部分を含む)かを関数を使って判定する方法についてです。いくつかやり方がありますが、ここではINT関数を使った例を紹介します。

数値が整数かどうか判定する方法

 C3セルに「=B3=INT(B3)」という数式を入力して、B3セルの数値が整数かどうかを判定しています。
 さらに式をC7セルまでフィルコピーして、B7セルまでの数値を判定しています。

 C3セル(下方にフィルコピー)

=B3=INT(B3)

 INT関数は、引数として指定した数値以下の整数のうち最も大きいものを返します。よって整数を指定すればそれ自身を返しますし、「1.23」という数値に対しては「1」を返します。「-0.2」に対しては「-1」を返します(整数部分を返すわけではないので注意)。
 いずれにせよ指定した引数が整数でないと引数と異なる値が返るので、それを利用して判定(整数ならTRUE、整数でなければFALSE)を行っています。



 次の画像は、分かりやすいように上記の判定式をIF関数に組み込んで結果を表示したものです。

 C3セル(下方にフィルコピー)

=IF(B3=INT(B3),"整数","整数でない")

備考:空白セルがある場合

 次の画像は上記の例と同じ式で、文字列や空白セルを判定した様子です。
 文字列がエラーになるのはともかくとして、空白セルは整数と判定されます。Excelでは空白セルを参照すると0に変換されることが原因です。

 


 対策としてはそもそも数値かどうかを判定に含め、次のような式にする例が挙げられます。

 C3セル

=IFS(NOT(ISNUMBER(B3)),"数値でない",B3=INT(B3),"整数",TRUE,"整数でない")

 IFS関数を使い、まず値が数値かどうかを判定し、そうでなければ引き続き整数かどうかを判定しています。