Excelでオプションの小数点以下の桁数で書式設定する


76

Excelのセルに数字があります。小数点以下の桁がある場合は最大2桁まで表示され、小数点以下の桁がない場合は表示されないように数値をフォーマットします。

例えば。

  • 15は15.00ではなく15としてフォーマットする必要があります
  • 14.3453453は14.35としてフォーマットする必要があります
  • 12.1は12.1としてフォーマットする必要があります
  • 0は0としてフォーマットする必要があります

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

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

回答:


29

または、次のソリューションを使用して、「オプションの」小数点の問題を解決できます。

数値形式: General;[Red](General)

これにより、小数点以下の値がそれに応じて追加され、負の数値がより読みやすい形式になります。

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

例:

2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)

3
この答えは、より多くの賛成に値します。条件付き書式を使用せずに小数点を正しく処理しました。私の特定のケースでは、すべての小数位を表示したいので、式を変更する必要さえありません。
ウィルソン

1
General数値の小数点以下が多すぎる場合、たとえばの2.6532E-06代わりに科学表記法になる問題があり0.0000026532ます。
ダンダスカレスク

+1これは、ピボットテーブルのラベル(条件付き書式が設定されていない場合)オプション)。フォーマットコード$General\kで完璧にできました!
ダンヘンダーソン

17

10進数以外の数値には条件付き書式を適用します。

たとえば、A1はターゲットセルです。

  1. A1を「###、###。00」としてフォーマットします。これは10進数に使用されます。
  2. 10進数以外の数値の条件付き書式を定義します。

    • 条件:= TRUNC(A1)に等しいセル値。
    • フォーマット: ###,###

結果は次のとおりです。

12       =>  12
14.231   => 14.23
15.00000 => 15
17.3     => 17.30

ディスプレイ上で4.00に丸められた番号4.001に問題がありましたが、条件付き書式設定式(4.001 <> 4)を満たさず、「4」として表示されたままになります。この条件式を使用して解決しました:= ROUND($ A1; 2)= TRUNC($ A1)
leokhorn

14

Excelカスタム形式は部分的な答えを提供できます

Excelの数値のカスタム形式は、次の形式で入力されます。

  • 正の数値形式、負の数値形式、ゼロ形式、テキスト形式

要件に近い形式ですが、小数のない数字の場合は小数位のままにします。

  • 、##。??;(#、##。??); 0

例:

  • 15は15として表示されます。
  • 14.3453453は14.35として表示されます
  • 12.1は12.1として表示されます
  • 0は0として表示されます

これが断然最良の答えです。
KyloRen

4
しかし、実際には有効な解決策、または可能な回避策さえ提供していません。カスタム数値形式に関する有用な情報があります。
片寄った

15は、15と表示されます。
ロジャーファー

6

私は最近Excel 2007でこれに遭遇し、値セルで「TRUNC」機能を使用してしまいました:

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

私が望んでいた通りに働きました...


3
はい、TRUNC(x、2)とROUND(x、2)の両方がジョブを実行します(後の丸め方法の種類によって異なります)。次に、セルのフォーマットを「一般」に設定するだけで、必要な場合にのみ小数点以下桁数が表示されます。(私はDrojの投稿を答えとしてマークするために投票します。)
サイモンイースト

5

条件付き書式を使用する1つの方法を次に示します。

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

    編集 -より適切な式は、「= MOD(ROUND(H32,2)、1)= 0」で、「2」は小数点以下の桁数です。前の式では、数値が整数に丸められた場合、末尾の小数点が残ります。

    数式のH32をセルのIDに置き換えますが、$記号がないことを確認してください!($記号がないと、フォーマットを他のセルにコピーすることが保証されます)

  7. このルールの形式については、数値タブを選択し、「カスタム」を選択します

  8. 今回は、式「0」を入力します
  9. [OK]をクリックしてシートに戻る(Excelのバージョンによって異なります)

責任を持って楽しんでください!フォーマットを他のセルにコピーする場合は、セルをコピーして、「フォーマット」オプションで「特殊貼り付け」を使用できることに注意してください。


これが特定の(またはより新しいバージョンの)Excelにのみ適用されるかどうかを明確にしてください 私はまだ2003を使用しています(そして、他の恥ずかしい数も同様だと思います)条件付き書式設定に移動すると、フォント、境界線、およびパターンのみ、数値の書式設定を変更するオプションがありません。ありがとう
-SSilk

Excel 2010でこのアプローチを試したところ、うまくいきました。以前のバージョンのExcelでは動作しません(少なくとも、Excel 2010の「互換モード」チェッカーで確認できることです)。
バルフイン

2

Reporting Servicesでは、数値の書式設定の式も記述できることに注意してください。私の状況では、私は使用しました

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

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


1

あなた/あなたのユーザーはセルに直接値を入力していますか、それとも数式やマクロによって値が入力されていますか?

細胞は、人間によって直接取り込まれていない場合は、可能性が隠された範囲内で計算値を格納し、このような式を持つユーザーにフォーマットされたテキストを表示します。

=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#"))

(「A1」は参照されているセルです)

数式には次のような値が表示されます。

 -------------------------
 |Original     |Formatted|
 |-------------+---------|
 |         15  |       15|
 | 14.3453453  |    14.35|
 |       12.1  |     12.1|
 |          0  |        0|
 |    -15.123  |   -15.12|
 |      1.004  |        1|
 -------------------------

注意:数式の出力は数値ではなくテキスト文字列なので、次のようになります。

  • デフォルトでは、出力は左揃えになります。
  • 出力をそれ以上の計算で使用することはできません(代わりに、参照されている元のセルを使用する必要があります)

1

セルを「一般」としてフォーマットし、データ検証で値を小数に制限します


スプレッドシートに数式(およびおそらく新しい列)を追加しないようにする必要がある場合は、Fredの提案が最適かもしれません。
サイモンイースト

1
これにより、10進数の視覚制限を超える数値を入力することはできません。
バルフイン

1

これはそれほど複雑である必要はありません-条件付き書式設定でのみ行うことができます。Excel 2010を使用しているため、以前のバージョンでは機能しない場合があります。

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

全部終わった。


1

私の答えは、小数点を削除する 0値を削除します。

条件付き書式での書き込み:

General;#;;@

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


これにより、空のセルとしてゼロが表示されます。
lolmaus-アンドレイミハイロフ

0

上記のルークのすばらしい答えに加えて、彼の作品に基づいたバリエーションがあります。値がない場合、セルにゼロを入れたくありませんでした。セル形式を一般的なままにして、次の式を使用しました。

=IF((A1=""), "",IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#")))

ここでも、A1は参照されているセルです。


0

使用してRound有効数字を提供する機能を。ただし、表示される小数点以下の桁数は変わりません。generalただし、セルを数値形式でフォーマットするだけです。

ROUND(MyValue,Sig.figs - 1 - INT(LOG10(ABS(MyValue)))

なぜすべての複雑なINT(LOG ...式?なぜROUND(value、2)だけでなくGeneralとしてフォーマットしないのですか?
サイモンイースト

0
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.##"))

孤立した小数点はありません。


0

これは、小数がある場合に小数を表示する最も簡単な方法のようです-整数には小数なしが表示されます:

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

またはセル参照付き:

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

与える

15 = 15
9.23432234 = 9.23


スーパーユーザー@lookingforsameへようこそ。ただし、質問の非表示の詳細に注意してください。この場合、opは、出力がSQLからのものであると言っています。マクロが使用できない場合、式も使用できない可能性があります。答える前にコメントとして質問をする価値がある場合があります。新しい人に会えてうれしい、幸せな答え!
ジュリアンナイト14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.