プロが教える店舗&オフィスのセキュリティ対策術

こんにちわ。
エクセルにて割り算の計算式がA1/B1とC列に入力されています。
2行目以降はA2/B2といった感じで10行まで入力されています。
D列にC列が割り切れているか割り切れていないか判定をしたいのですが、どのように計算式を組めばいいでしょうか?

A 回答 (4件)

=IF(MOD(A1,B1)=0,"割り切れる","割り切れない")



という感じで。

この回答への補足

早速、ご回答ありがとうございます。
申し訳ありません。説明不足でした。
この関数だと整数で割り切れるか割り切れないかと判定になりますが、小数点でも最終的に割り切れれば割り切れるにしたいのですが。。。
割り切れないと表示される場合は、少数点以下でも完全に割り切れない場合になります。

補足日時:2008/10/15 13:04
    • good
    • 0

こんばんは。



>小数点でも最終的に割り切れれば割り切れるにしたいのですが。。。

他にやり方はあるようですが、大掛かりになりそうな気がします。簡単に出す方法は、こんな方法です。

'標準モジュール

Function divremain(a As Currency, b As Currency, k As Integer) As Currency
 'k は桁
 divremain = (a * 10 ^ (k - 1)) / b - Int((a * 10 ^ (k - 1)) / b)
End Function

手動になってしまいますが、k に整数を入れていき、ずっと数字が出てきたり、同じ数字の組み合わせが出てきたら、無限小数になります。桁は、18桁までで、それ以上ははっきり出来ません。



A1:=divremain(B1,C1,D1)   B1: 1   C1: 7   D1: =ROW()

これで、フィルをドラッグして、18行目までコピーします。
そうすると、1,7,13行目に、0.1429 と同じ数字(循環節)が出てきますから、無限小数と分かります。今の所、手動でしか判定できません。ただし、桁が、18までで、0にならなければ、おそらくは、無限小数ではないかと思います。
    • good
    • 0
この回答へのお礼

大変参考になりました。
ありがとうございました。

お礼日時:2008/10/16 09:59

要するに無限小数になることの判定ですね。



Excelはたかだか15桁程度の精度しかないので、20桁目で割り切れる
ようなものの判定が出来ません。どの桁までで諦めるかの指定が必
要です。たとえば14桁だとすると、

=(round(AC1,14)*B1)=A1

みたいな感じですね。1/16834は正しく割り切れると判定できます
が、1/32768は桁数が不足して失敗します。
    • good
    • 0

=MOD(A1,B1)=0


=NOT(MOD(A1,B1))
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!