セルに入力された値が整数/非整数を判定する方法を紹介します。
【Excel】整数・非整数の判定
まず最初に INT 関数を用いる方法です。INT 関数は
=INT(数値)
のように記述し、引数の小数部分を切り捨てて整数部分だけ返します。たとえば
=INT(2.5)
と入力すると「2」という値が返されます。このとき元の値 2.5 と、小数部分を切り捨てた INT(2.5) の値は当然異なるわけです。すなわち論理式
2.5=INT(2.5)
の返す値は False(偽)となります。これを論理式の結果(真偽)に応じて値を返す IF 関数にネストして
=IF(2.5=INT(2.5),"整数","非整数")
という数式をセルに入力すると「非整数」という文字列が返ります。元の値が整数である場合、たとえば
=IF(10=INT(10),"整数","非整数")
のように記述すると、10 も INT(10) も同じ値ですから、この論理式は真であると判定されて「整数」という文字列が返ることになります。いくつかの数値の整数・非整数をまとめて判定するシートをつくってみましょう。B 列に数値を適当に並べて、セル C3 に
=IF(B3=INT(B3),"整数","非整数")
と入力して、数式をセル C7 までコピーします。
すると上図のように、B 列の数値の判定結果が C 列に並びます。
次は MOD 関数を用いる方法です。MOD 関数は
=MOD(数値,除数)
と記述して、数値を除数で割ったときの余りを返す関数です。たとえば
=MOD(10,4)
と入力すると 10 を 4 で除算したときの余りである「 2 」という値を返します。引数には小数も入れることができて、たとえば
=MOD(7.5,3)
とすれば「 1.5 」という余りが得られます。これは、
被除数 = 除数 × 商 + 余り
という定義によるもので、上の例では
7.5 = 3 × 2 + 1.5
となっています。そこで小数を 1 で割ることを考えます。たとえば 3.14 を 1 で割ったときの余りは
=MOD(3.14,1)
によって「 0.14 」が得られます。被除数が整数ならば 1 で割ったときの余りは 0 になるはずです。つまり、数値を 1 で割ったときの余りが 0 であるか否かで整数・非整数を判定することができます。たとえば
=IF(MOD(9,1)=0,"整数","非整数")
と記述すると、MOD(9,1) = 0 は正しい数式なので、真であるほうの引数の「整数」が表示されます。それでは、MOD 関数で数値の整数判定をするシートをつくってみます。B 列に数値を判定したい並べて、セル C3 に
=IF(MOD(B3,1)=0,"整数","非整数")
と入力して数式を C7 までコピーしてください。
判定結果が正しいことを確認してください。整数/非整数の判定は数値計算の様々な場面で応用することができます。
エクセルや数学に関するコメントをお寄せください
【AI連載小説】数学のリズム、エクセルの旋律(28)
「エクセルで整数・非整数を判定する方法について話し合います」
Excel VBAサークルのメンバーたちは、Excelを使って整数か非整数を判定する方法について議論していました。真琴が画面を共有し、「皆さん、今日はExcelを使って整数か非整数を判定する方法について考えてみましょう」と言いながら、例としてセルに数値を入力していました。
研伸が興味津々で手を挙げました。
「どうやって整数か非整数を判定するんですか?」
真琴は微笑みながら答えました。
「Excelには整数を判定する関数があります。その中でも、ISEVEN関数とISODD関数を使うことができます」
隆治が続けて質問しました。
「それぞれの関数の使い方はどうなんですか?」
真琴が画面を操作しながら説明しました。
「ISEVEN関数は、与えられた数が偶数の場合にTRUE、奇数の場合にFALSEを返します。逆に、ISODD関数は奇数の場合にTRUE、偶数の場合にFALSEを返します」
月子が考え込みながら言いました。
「でも、小数点以下の数字はどうなりますか?」
真琴が親切に説明しました。
「それはいい質問ですね。これらの関数は整数判定用なので、小数点以下がある場合は常にFALSEを返します」