今日も、生徒さんからの質問を取り上げます。
「どうしたらいいもんかねえ。」
「どうしたんですか?」
「いやあ、ねえ、こんな課題をいただいちゃってね、上司から。
それが、どうしたらいいのか分からないんだよ。」
「どんな課題ですか?」
「こんなのだよ、先生」
見せてもらうと、以下のような課題でした。

「なるほど、基準値と実測値という2つの数値があって、実測値が基準値の倍数かどうかを判定しろってことだね。」
「そんなことできるんかいね。」
「一緒に考えてみましょう。まず、明らかにしたいのは、倍数とは、どういうことなのかということですよ。」
「?? そうだね。う~~ん。そうだ、基準値に2とか3とか10とかを掛けた数のことだね。」
「そうですよね、でも、18を掛けたかもしれないし、100かもしれません。」
「ふ~~ん、そうか!分かったぞ。基準値で割り切れればいいんだ!」
「その通りです。お見事。実測値を基準値で割って、余りが0なら、倍数です。」
「余りを求めるにはどうしたらいいのかい?」
「関数を使います。MODという関数です。試しにC列11行目に余りを求めてみましょう。」
「ほう、余りは、1.2だね。」

ここまで解れば、あとは簡単。C11の答えが、0ならば、倍数なので、結果は、○。
0以外ならば、割り切れないので、結果は、×。
これは、IF関数を使えばいいですね。
はい、できました。

めでたしめでたし、と、これで終わらないのが、今回のネタなのです。
基準値を、1.4に変更してみてください。
4.2 は、1.4 で割り切れるので、答えは0のはずですが、変な答えが出ています。
結果も、×になっていますね。

整数同士の割り算なら、こんな現象は起きませんが、実数となると、こんなことも起きるのです。こわいですね。
さあ、どうしたらいいでしょうか。
そうです。整数にしちゃえばいいのです。
今回は、小数点以下1桁なので、基準値と実測値を10倍してしまいます。
こうすれば、整数同士だから、きちんと答えが出ます。
結果も、ほら、ちゃんと○になったでしょ。
めでたし、めでたし。

だい
「どうしたらいいもんかねえ。」
「どうしたんですか?」
「いやあ、ねえ、こんな課題をいただいちゃってね、上司から。
それが、どうしたらいいのか分からないんだよ。」
「どんな課題ですか?」
「こんなのだよ、先生」
見せてもらうと、以下のような課題でした。

「なるほど、基準値と実測値という2つの数値があって、実測値が基準値の倍数かどうかを判定しろってことだね。」
「そんなことできるんかいね。」
「一緒に考えてみましょう。まず、明らかにしたいのは、倍数とは、どういうことなのかということですよ。」
「?? そうだね。う~~ん。そうだ、基準値に2とか3とか10とかを掛けた数のことだね。」
「そうですよね、でも、18を掛けたかもしれないし、100かもしれません。」
「ふ~~ん、そうか!分かったぞ。基準値で割り切れればいいんだ!」
「その通りです。お見事。実測値を基準値で割って、余りが0なら、倍数です。」
「余りを求めるにはどうしたらいいのかい?」
「関数を使います。MODという関数です。試しにC列11行目に余りを求めてみましょう。」
「ほう、余りは、1.2だね。」

ここまで解れば、あとは簡単。C11の答えが、0ならば、倍数なので、結果は、○。
0以外ならば、割り切れないので、結果は、×。
これは、IF関数を使えばいいですね。
はい、できました。

めでたしめでたし、と、これで終わらないのが、今回のネタなのです。
基準値を、1.4に変更してみてください。
4.2 は、1.4 で割り切れるので、答えは0のはずですが、変な答えが出ています。
結果も、×になっていますね。

整数同士の割り算なら、こんな現象は起きませんが、実数となると、こんなことも起きるのです。こわいですね。
さあ、どうしたらいいでしょうか。
そうです。整数にしちゃえばいいのです。
今回は、小数点以下1桁なので、基準値と実測値を10倍してしまいます。
こうすれば、整数同士だから、きちんと答えが出ます。
結果も、ほら、ちゃんと○になったでしょ。
めでたし、めでたし。

だい
エクセルを100%使いこなせれば、鬼に金棒ですよね。
しかし私は「エクセル」の数パーセントしか解りません、真実情けないですね。
僕らも、毎日が勉強です。
少しでも、お役に立てることがあれば、幸いです。
また、来てくださいね。