質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

2回答

8527閲覧

Excelで表示上端数切捨てをしたい

DinKa

総合スコア40

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2017/07/06 09:25

編集2017/07/06 10:19

Excelで小数点以下の計算(少数第2位を切り捨て)を表示上のみで行いたい。

環境情報
・Micorosoft Excel 2010

背景
0. 表計算として、表示上の値と計算の値を別々に持たせたい
0. 計算値を手入力した場合は、表示上の値と一致させる
0. マクロでシートを複製しているので、外部シートで計算するなどは使わない

課題
0. 小数点以下の表示桁数を減らすと、四捨五入になってしまう

(BuyをInに渡す時に0.98を乗して、sumへ渡す)
・計算して算出した値

Buy(k)In(k)sum(k)
10.980.98
21.962.94
32.945.88
43.929.80
54.914.70

・表示したい値

Buy(k)In(k)sum(k)
10.90.9
21.92.9
32.95.8
43.99.8
54.914.7

・現状の値

Buy(k)In(k)sum(k)
11.01.0
22.02.9
32.95.9
43.99.8
54.914.7

質問
0. Excel上で関数を使わずに切り捨て表示にすることは可能でしょうか
0. 1.が不可能なら、同じセルに表示値と計算値を別々に持たせるのは可能でしょうか

条件
0. 基本的にはシートをコピーするマクロを使用するため、デフォルトの値は固定しない
0. シートをコピーした後に、セルの値をピンポイントに編集可能にする
0. 上記でも難しい場合は、最終的にはマクロやVBAで対応することになるかと思います

やってみたこと
0. 小数点以下の表示桁数を減らす ⇒ 四捨五入される(現状の値)
0. セルの書式設定のユーザー定義で#,##0.0 ⇒ 四捨五入される
0. In(k)の値を-0.05して、表示桁数を減らす ⇒ Sum(p)の2回目の計算で誤差が生じる

求めている目標
・計算して算出した値⇒表示したい値 のように、少数第2位を切り捨てで表示

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こちらの記事を参考にしたところ、一応できました(と言えるのか?)
内容としては「希望する桁の所に改行コードを入れる」という手法のようです。
目からうろこ的な感じですね。
具体的な設定としては、表示形式を0.00と入力した後、00の間でCtrl+Jと入力し改行コードを追加します。
つまりこんな感じです。

0.0[Ctrl+J]0

あとは折り返して全体を表示するの設定にしてください。
ただし、当然ながら改行して表示されているので、セルの高さが大きいと2行目が見えてしまいますのでご注意ください。

投稿2017/07/07 00:10

ttyp03

総合スコア16996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jawa

2017/07/07 00:28

1セルにオリジナルの情報を残しつつ見た目も整えるおもしろいアイデアですね。 同じ1セルに情報を残すやり方として、切捨て前の値をコメントに保管するよりも見た目がよさそうです。 この加工を施したセルの値は数値ではなくなってしまうので、集計などできなくなってしまうのが難点でしょうか。 Buy*Inなどの演算をセル上で行っているなら結果に直接改行を組み込むのは少々面倒くさそうですが、VBAマクロ内で演算していてシート上は表示だけということならよさそうですね。
DinKa

2017/07/07 00:30

回答ありがとうございます。 いろいろ試してみたところ、 #,##0.0[Ctrl+J]0、折り返して全体を表示する でやってたことを思い出しました。 問題はいろいろ隠れていそうですが、まずはこれで試してみます。 ありがとうございました。
ttyp03

2017/07/07 00:33

jawaさん> >集計などできなくなってしまう あくまでも見た目を変えているだけなので、集計などは問題なくできましたよ。
jawa

2017/07/07 00:35

なるほど、書式設定に改行コードを追加していたのですね! 失礼しましたm(__)m
DinKa

2017/07/07 00:53 編集

記事にも書いてありますが、1.9999999でしたら、2.0と表示されました。 0.0[Ctrl+J]0 #,##0.0[Ctrl+J]0 どちらも少数低下の桁数が既知である必要はありそうですね。 実際は小数点7位まで使用しますので、 #,##0.0[Ctrl+J]000000 でしばらく試してみます。 ありがとうございました。
DinKa

2017/07/07 01:15

追加ではありますが、私のように小数点以下の桁数が多い場合セルの幅を調整する必要がありますね。 整数部7桁の表示はセルの幅13程度で問題ありませんでしたが、小数点第2位以下6桁を折り返した場合、 セルの幅が14程度まで必要になりました。 フォントや文字の大きさにもよりますが、下部の数字は大き目に必要になりそうですね。 また、上揃えにしないと下部の数字が表示されてしまいますが、下のセルに何か値があると下揃えでもうまく表示できていました。 とはいっても、基本上揃えにするのがよさそうですね。
ttyp03

2017/07/07 01:23

なかなか制限がありますね。 幅については以下のように改行コードを細かく設定すれば防げると思ったんですが、ダメでした。残念。 #,##0.0[Ctrl+J]000[Ctrl+J]000 回答はしたものの、不便を強いられるようでしたら、素直に隠しセルを使うことをおすすめします。
DinKa

2017/07/07 01:33

今のところ標準に使用している範囲では不具合になることはなさそうです。 元の数値が変化するわけではないので、この形式でやるのがベストだと考えています。 もうしばらくテストを続けてみますが、おそらくttyp03さんが教えていただいた案が最善ではないかと思っています。 BAにさせていただきます、ありがとうございました。
guest

0

書式設定の小数点以下の桁がある場合に四捨五入した値で表示するのはExcelの仕様であり変更できる部分ではないと思います。
切り捨てた値を表示したいのであれば、表示用のセルと正確な値を保管するセルをわける必要があると思います。
(通常このようなことを行いたい場合は正確な値を非表示の列に格納し、表示用の列にはその列の値をRowndDownなどして表示すると思います。)

これの逆というか、四捨五入された値をセルの値としてしまうオプション設定ならあるんですけどね(^-^;

解決策ではなくて申し訳ありません。
参考になれば幸いです。

投稿2017/07/06 11:53

編集2017/07/06 11:57
jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DinKa

2017/07/06 12:00

回答ありがとうございます。 やはり計算用のセルを使用して、別途管理するしかないでしょうかね。 試しに1セルだけ計算用のセルを使って処理してみたら、そのセルだけでIF文が何重にも重なってしまい、やるとしたら幾つか計算セルを使うのが現実的かなと思いました。 ただ、実は、 >2.セルの書式設定のユーザー定義で#,##0.0 この部分で、切り捨てができた気がしたのですが、検索しても引っかからず、質問させていただきました。
jawa

2017/07/06 12:15

#,##0.0は普通の通貨設定だと思いますが、こちらの環境で同設定を行っても0.98は1.0と表示されております。(Windows7/Excel2010) どうしても1セルで両方の値を管理したいという場合、コメントを使っていないのならコメントにオリジナルの値を保管するという手もあるのですが、見た目的にもあまりよろしくないですよね。
DinKa

2017/07/07 00:33

以前誰かがやっている記憶があったので、ユーザー定義で真似してみようと思ってたのですが、調べてもできずって感じでした。 コメントに関しては面白そうですが、目的からは少し外れてしまいますね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問