2008-08-22 04:31:59 +0000 2008-08-22 04:31:59 +0000
77
77
Advertisement

Excelで任意の小数点以下の桁数で数値をフォーマットする

Advertisement

エクセルのセルに数字を入れています。小数点以下の桁数がある場合は最大2桁まで表示され、小数点以下の桁数がない場合は何も表示されないように書式設定したいのですが、どうすればよいでしょうか?

例えば

  • 15は15、15.00ではなく
  • 14.3453453は14.35としてフォーマットされます
  • 12.1は12.1としてフォーマットされます
  • 0は0としてフォーマットされます

私が考え出した最も近いカスタムフォーマットコードは0.##です。残念ながら、これは15.0015.としてフォーマットします(小数点以下が余分にあることに注意してください)。

問題をさらに複雑にするために、スプレッドシートはSQL Server Reporting Servicesからのエクスポートの結果です。そのため、マクロは使用できません。まあ、0.## が最善の策のようですが、彼らは余分なピリオドを我慢してくれます。

Advertisement
Advertisement

回答 (9)

33
33
33
2012-05-08 18:16:49 +0000

あるいは、以下の解法で「任意」の小数点の問題を解くこともできます。

数字の書式。General;[Red](General)

これは、負の数をより読みやすい方法でフォーマットしながら、小数点以下の位置と小数を適宜追加します。

ポスターの元の質問に関しては、やはり数式を使って「余分な」小数点を丸めたり、切り捨てたりする必要があります。しかし、これは=ROUND(<value>,<desired decimal places>)の簡単な計算式であり、計算量が極端に多くなることはありません。

の例。

2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)
15
15
15
2008-09-07 17:09:26 +0000

エクセルのカスタムフォーマットで部分的な答えが得られる

エクセルの数字のカスタムフォーマットは、このフォーマットで入力されます。

  • 正の数のフォーマット;負の数のフォーマット;ゼロのフォーマット;テキストのフォーマット

あなたの要件に近いが、小数点以下の桁数を持たない数値のために小数点以下の桁数を残すフォーマットの1つは以下の通りです。

  • # ,##…???;(#,##..??);0

例:

  • 15 は 15 と表示されます。
  • 14.3453453 は 14.35 と表示されます。
  • 12.1 は 12.1 と表示されます。
5
Advertisement
5
5
2011-08-26 00:28:32 +0000
Advertisement

ここでは、条件付き書式設定を使用した方法を一つ紹介します。

1.セルを右クリックし、"Format Cell" 2. カスタム」を選択 3. 0. ####」と入力します(小数点以下の最大桁数を制御するために、#を複数個追加します) 4. OK をクリック 5. セルが選択されたままの状態で、「条件付き書式設定」を使用します(Excel のバージョンによっては、「書式設定」のメニュー項目かホームのボタンになります) 6. 式"=MOD(H32,1)=0 “に基づいた新しいルールを追加する。このルールの書式は、数字タブを選択し、「カスタム」を選択

  1. 今回は "0”

9 の数式を入力します。OKを何度かクリックしてシートに戻ります(エクセルのバージョンによって異なります)

これで完成です。他のセルに書式をコピーしたい場合は、セルをコピーして「書式」オプションで「特殊貼り付け」を使うことを覚えておきましょう。

5
5
5
2010-02-03 17:31:42 +0000

私は最近Excel 2007でこの問題に遭遇し、値のセルに「TRUNC」関数を使用することになりました:

value =TRUNC(B5,1)
      0 0
      5 5
    5.4 5.4
  65.43 65.4
765.432 765.4

私が望んでいた通りに動作しました。

2
Advertisement
2
2
2012-03-01 20:57:08 +0000
Advertisement

Reporting Servicesでは、数字の書式設定の式も書けることを覚えておきましょう。私の場合は、

iif(floor(Fields!numericFieldName.Value)=Fields!numericFieldName.Value,"0","0.##")

を数値フォーマット式として使用しました。これにより、値が整数であるかどうかで選択された2つのセル形式のExcelファイルが生成されました。

1
1
1
2018-02-12 01:45:01 +0000

私の答えは小数点を削除します AND 条件付き書式設定の書き込みで0の値

を削除します。

General;#;;@

これでうまくいくはずです。

1
Advertisement
1
1
2013-12-04 16:57:19 +0000
Advertisement

これはそれほど複雑にする必要はありません - 条件付き書式設定のみで可能です。私はExcel 2010を使用しているので、それ以前のバージョンでは動作しないかもしれません。

1.セルを一般的な書式設定にします。数字によっては小数点以下の桁数が非常に多い場合があります。 2. セルをハイライトして、条件付き書式設定をクリックします。新規ルールをクリックし、「数式を使用」をクリックします。 3. 式を使用します =(B1-INT(B1))>0 (ここで、B1はフォーマットしているセルです) 4. 書式」ボタンをクリックして、「カスタム」を選択します。Typeフィールドに[=0]0;.##を入力します。 5. Enterキーを数回押します。 6. もう一度「条件付き書式設定」をクリックし、「ルールの管理」をクリックして、先ほど作成したルールを編集します。適用先」フィールドの範囲を、カバーしたい範囲に変更します。

すべて完了しました。

0
0
0
2014-01-17 17:34:13 +0000

これは、端数がある場合に十進数を表示し、整数の場合には十進数を表示しない、という最もシンプルな方法のようです。

=TEXT(ROUND(Base_Number,Max_Decimal_Places),"general")

またはセル参照の場合は、小数点以下は表示されません。

=TEXT(ROUND(A1,2),"general")

15 = 15 9.23432234 = 9.23 となります。

0
Advertisement
0
0
2013-06-04 11:16:43 +0000
Advertisement
B1=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.##"))
C1=IF(ROUND(B1,2)=INT(B1),TEXT(B1,"0"),TEXT(B1,"0.##"))

孤高の小数点はもうありません。

Advertisement

関連する質問

6
13
9
10
10
Advertisement
Advertisement