- ベストアンサー
小数点以下の取り扱い
通常=1/6と入力すると0.17(表示桁2桁)と表示されると思います。 =rounddown(1/6,2)として0.16にするのは分かります。 しかし、毎回入力の都度rounddownを入力するのも手間がかかりますし、忘れてしまいます・・・。 プルダウンして行く方法もありますが、セルに=1/6とすると計算結果が0.16となる方法はありませんでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 入力したセルで結果を表示させたい訳ですよね? VBAになってしまいますが一例です。 仮にA列に入力した場合とします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペースト → Excel画面に戻りA列にデータ入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count <> 1 Then Exit Sub Application.EnableEvents = False With Target If IsNumeric(.Value) And .Value <> "" Then .Value = WorksheetFunction.RoundDown(.Value, 2) End If End With Application.EnableEvents = True End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m
その他の回答 (2)
- ali_yuki
- ベストアンサー率45% (26/57)
No.2です >Aを印刷範囲外にしてA1に=380*1.08(8%)としてその結果410.4。B1に=rounddown(A1,0)で結果410ということでしょうか? はい、そうです。 しかし、そのセルでは、「*1.08」という計算しかしないのであれば Aを印刷範囲外にしてA1に「380」と数値のみ入力 B1に「=rounddown(A1*1.08,0)」として、計算もBでしてしまえば、Aへの入力時に楽になると思います また、乗数(1.08の部分)の値も変わるのであれば Aを印刷範囲外にしてA1に「380」と数値のみ入力 ⇒380と表示 Bも印刷範囲外にしてB1に「1.08」と数値のみ入力 ⇒1.08と表示 Cも印刷範囲外にしてC1に「=A1*B1」とし計算結果を出す ⇒410.4と表示 D1に「=rounddown(C1,0)」として 切捨て ⇒410と表示 計算に係わる数値を画面上で直接確認できるので、よりくわしく見る事が出来ます (Cは省略して D1に直接「=rounddown(A1*B1,0)」でもいいかな) 良ければ試してみてください
お礼
ご連絡ありがとうございました。 参考にさせて頂きます。
- ali_yuki
- ベストアンサー率45% (26/57)
ちょっとずれた回答になるかも知れませんが 入力セルの右側のセルを、「=rounddown([入力セルの座標],2)」とするのはどうでしょうか? 又は、印刷範囲外に入力セルを置いて、表示セル(切捨て)を印刷範囲の適切な部分に設置する等 入力セルと、それ以降の計算に使う値のセルを分けておくのです。 いかがでしょうか。 余談ですが、入力セルに「=1/6」と入力し、「0.17」と表示されても、 内部計算では「1.66666…」が使用されています。ご注意ください。 (「もちろん分かってるよ」という事でしたら聞き流してください、失礼しました)
お礼
ご回答ありがとうございます。
補足
>[0.17」と表示されても、内部計算では「1.66666…」 その見えない内部数字を消したいのです。かつ、必ず切り捨てです。消費税とか1円未満は切り捨てなように・・・。 方法としては計算セルを別に設けるということでしょうか? 2桁ではないですが、例えば、Aを印刷範囲外にしてA1に=380*1.08(8%)としてその結果410.4。B1に=rounddown(A1,0)で結果410ということでしょうか?
お礼
お察しの通り、入力したセル全てで小数点以下2桁切捨がしたいということです。 なるほど、こういう方法があるのですね。 ありがとうございました。 マクロ無しでできれば一番いいのですが・・・。