Excelで数値切り捨てと桁制限を同時に行いたい方法
- Excelで数値の切り捨てと桁制限を同時に行いたい場合、入力規則を利用することができますが、注意が必要です。
- 入力規則の設定において、[>9.99]0##;[>.99]#.#; と入力すると、一部の場合で意図しない結果になることがあります。
- 具体的には、整数部分が2桁以上の数値や小数点以下が2桁以上の数値を入力した場合、切り捨てたい部分が四捨五入されてしまうことがあります。
- ベストアンサー
excelでの数値切り捨て、桁制限をひとつのセルで
数字を入力した時に、切り捨てと同時に、桁数を揃えることは可能でしょうか 具体的には、 (入力) 12.34 → 012 整数が2桁あるので、小数点以下を切り捨て、頭に「0」をつけ3桁にする 1.23 → 1.2 整数が1桁なので、小数点以下第二位を切り捨て、3桁(3文字?)にする 0.12 → .12 整数が「0」なので、小数点以下を3桁(3文字)を表示する となるようにしたいです。 入力規則で、[>9.99]0##;[>.99]#.#; と入れて試してみたのですが この場合、入力が「34.56」「3.45」等であると、切り捨てて欲しい部分を四捨五入してしまい (入力) 34.56 → 035 (034になってほしい) 3.45 → 3.5 (3.4になってほしい) となってしまいます。良い方法はあるでしょうか
- claymore0502
- お礼率75% (3/4)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける Private Sub Worksheet_Change(ByVal Target As Range) Dim h As Range Application.EnableEvents = False For Each h In Target If IsNumeric(h) Then If h >= 10 Then h = Int(h) h.NumberFormatLocal = "000" ElseIf h >= 1 Then h = Application.RoundDown(h, 1) h.NumberFormatLocal = "0.0" ElseIf h > 0 Then h = Application.RoundDown(h, 2) h.NumberFormatLocal = ".00" Else h.NumberFormatLocal = "G/標準" End If End If Next Application.EnableEvents = True End Sub ファイルメニューから終了してエクセルに戻る セルに数字を記入する。 >切り捨てと同時に、桁数を揃える エクセルの一般機能ではそういう事は出来ませんが、セルの書式設定の表示形式のユーザー定義で [>=10]000Ctrl+J.#########;[>=1]0.0Ctrl+J########;.00Ctrl+J######### Ctrl+Jはコントロールキーを押しながらJ と設定し、そのまま配置タブに移動して「折り返して全体を表示」にチェック、縦位置を「上詰め」に設定してOKしておくと、そのように表示できます。
その他の回答 (1)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.1さんが最後に書かれたのは、「Ctrl+J」で改行した部分の桁を、セルの行の高さを広げないことにより、見せない方法かと思います。 さて、入力した数値を加工し、別セルに結果を表示するのでも構わない場合は、話は簡単です。 =rounddown(a1,2-1-int(log10(a1))) ……「345.6」→「340」のように切り捨てる場合 あるいは =if(a1>=100,int(a1),rounddown(a1,2-1-int(log10(a1)))) ……「345.6」→「345」のように切り捨てる場合 ※数式中に出てくる「2」は、有効数字の桁数です。 後は B1 の書式として「[>=10]000;[>=1]0.0;.00」を設定します。
お礼
回答有り難うございます いろいろな方法があるのですね。古いPCでの作業なので、最も負担の少ないものにしてみます。
関連するQ&A
- エクセルで有効桁を指定して丸めることは出来る?
excelで普通に四捨五入をするとなると 「ROUND」などで小数点以下の桁数を指定しますよね。 そうではなく、有効桁数3桁で四捨五入…例えば、 0.1234ならば0.123 1.234ならば1.23 12.34ならば12.3 123.4ならば123…のように 数字を四捨五入させる関数(?)はあるのでしょうか。
- ベストアンサー
- オフィス系ソフト
- エクセルで切捨て表示はどうしたら・・・
セルの表示形式を通貨にして数値を入力し 数ヶ月の平均を出すと、小数点以下まで表示されます。桁数を指定すれば小数点以下は表示されませんが、指定した桁数以下は四捨五入されていますよね。 ここを切り捨て表示にしたい場合はどうすれば言いでしょうか?
- ベストアンサー
- オフィス系ソフト
- 化学での有効数字について(途中計算)
以下についてアドバイスいただけると助かります。 有効数字について 和・差について・・・小数点以下の桁数が少ない方に合わせる 積・商について・・・桁数が少ない方に合わせる については、分かったのですが、有効数字3桁での指定があるときに 19.1、24.5889、0.12553、3.2952の4つの数にたいして ○和を筆算で求める場合 小数第1位に合わせるために、 19.1→19.10(小数第2位表示) 24.5889→24.58(小数第3位切り捨て) 0.12553→0.12(小数第3位切り捨て) 3.2952→3.29(小数第3位切り捨て) として和を求め、小数第1位(小数第2位四捨五入)にする ○積を筆算で求める場合 有効数字3桁に合わせるために、 19.1→19.10(有効数字4桁表示) 24.5889→24.58(5桁目切り捨て) 0.12553→0.1255(5桁目切り捨て) 3.2952→3.295(5桁目切り捨て) として積を求め、有効数字を3桁(4桁目は四捨五入)にする と思っています。 1.このやり方で大学受験では問題ないのでしょうか。 特に気になっているのは、計算をする前の丸め方(すべて切り捨てにしているところ)です。 2.計算ステップがいくつもあり、一度に計算ができない場合、そのステップ毎に得られる数の 丸め方は切り捨て・四捨五入のどちらがよいのでしょうか。 よろしくお願いします。
- ベストアンサー
- 化学
- エクセルで有効桁を指定して丸める
以前、↓↓にて http://oshiete1.goo.ne.jp/qa1345491.html 「excelで普通に四捨五入をするとなると 『ROUND』などで小数点以下の桁数を指定しますよね。 そうではなく、有効桁数3桁で四捨五入…例えば、 0.1234ならば0.123 1.234ならば1.23 12.34ならば12.3 123.4ならば123…のように 数字を四捨五入させる関数(?)はあるのでしょうか。」 と質問し、 =ROUND(A1,-INT(LOG(A1))-1 + 3) とか =VALUE(TEXT(A1,"0.00E+00")) といった方法を教えていただいたのですが、 0.1234 なら 0.123 ・・・ 123.4 なら 123 までは同じなのですが、 1234.5 なら 1230ではなく1235 12345.6 なら 12300ではなく12346 つまり、1000未満の場合は以前と同じく有効数字3桁で 1000以上の場合は小数点以下四捨五入としたい場合は、 IF関数で =IF(1000>A1 ・・・のように条件指定してやるしかないのでしょうか。 (A1の部分にも長々した数式が入るもので) 数式がかなり長くなってしまい、見づらいので なにか良い方法があればと思ったのですが…
- ベストアンサー
- オフィス系ソフト
- エクセルで千桁以下を切り捨てで表示させるには?
今、エクセルで分析資料を作っているのですが、全ての数字の千桁以下を切り捨てで表示させたいのですが、うまくいきません。 とりあえず、書式設定のユーザー定義で「###,###,」を選択することで、千桁以下を表示させることはできたのですが、どうしても四捨五入になってしまいます。これを四捨五入せずに切り捨てで表示させるのはどうすればよろしいでしょうか?
- ベストアンサー
- オフィス系ソフト
- エクセル、小数点桁下げの意味
エクセルの小数点桁下げのボタンを押すのと、 ROUNDで桁数0にするのは同じことなのでしょうか?(四捨五入で整数で表すばあい)
- ベストアンサー
- その他(インターネット・Webサービス)
- エクセルの表示形式で、10の桁で四捨五入した値を表示させるには?
エクセルの表で、数字を四捨五入する方法にはROUND関数がありますが、関数で変換すると値そのものが変わってしまいます。 値はそのままで四捨五入した数字で表す方法を教えてください。 小数や一桁の整数までの四捨五入であれば、セルの書式設定・表示形式を「数値」にして小数点以下の桁数を指定してやれば簡単ですが、10の桁以上で丸めて表示させる方法を探しています。 例えば、9876→9880と表示させる書式設定の方法です。 値は計算に使うので、ROUND関数で実際に丸めたくないのです。 ユーザ定義を組み合わせるなどで、うまくできませんか?
- ベストアンサー
- オフィス系ソフト
- 1セルに6桁以上入力できない。小数点以下の表示が00になってしまう。
エクセルの1つのセルに1,000,000と入力するも1,000となってしまいます。 数式と値をクリアにしても、表示形式を標準や数値や文字列に設定しても下3桁が入りません。 それと小数点第2位まで計算したいのに、小数点第2位は.00なってしまいます。 それと小数点以下を切り捨てで表示させたいのに、四捨五入になってしまいます。
- ベストアンサー
- Windows XP
お礼
回答有り難うございます いろいろな方法があるのですね。古いPCでの作業なので、最も負担の少ないものにしてみます。