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

microsoft-excel worksheet-function

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

For example.

  • 15は15.00ではなく15と表記してください
  • 14.3453453は14.35とフォーマットされているはずです
  • 12.1は12.1のようにフォーマットしてください
  • 0は0としてフォーマットされている必要があります

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

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

  87  Ray  2008-08-22


ベストアンサー

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

番号の形式。General;[Red](General)

これは、負の数をより読みやすい形でフォーマットしながら、小数点以下の桁数と小数の値を適宜追加していきます

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

Examples:

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

35  Ross  2012-05-08


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

例えば、A1がターゲットセルである

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

    • 条件。セル値が=TRUNC(A1)に等しい
    • Format: ###,###

以下、結果です

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

18  None  2010-07-09


エクセルのカスタムフォーマットでは、部分的な答えを出すことができます

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

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

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

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

Example:

  • 15と表示されています
  • 14.3453453を14.35と表示しています
  • と表示されているので、12.
  • 0が0と表示されます

18  Robert Mearns  2008-09-07


条件付き書式を使った方法を一つご紹介します

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

    編集 – より良い式は “=MOD(ROUND(H32,2),1)=0” で、’2′ は希望する小数点以下の数です

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

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

  8. 今回は式「0」を入力します
  9. シートに戻るには、十分な回数「OK」をクリックしてください(エクセルのバージョンによって異なります)

さあ、責任を持ってお楽しみください他のセルに書式をコピーしたい場合は、セルをコピーして「書式」オプションで「特殊貼り付け」を使うことを覚えておきましょう

6  John  2011-08-26


私は最近Excel 2007でこれに遭遇し、ちょうど値のセルで’TRUNC’関数を使用して終了しました

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

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

5  Droj  2010-02-03


レポーティングサービスでは、数字の書式設定にも式を書くことができることを覚えておきましょう。私の状況では、使用しました

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

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

2  Joshua Seigler  2012-03-01


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

を条件付き書式で書き込みます

General;#;;@

これでトリックができるはずです

2  Mr.J  2018-02-12


セルに直接値を入力しているのか、それとも数式やマクロで入力しているのか

セルに人間が直接入力していない場合は、計算された値を非表示の範囲に保存し、次のような式でフォーマットされたテキストをユーザーに表示することができます

=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  None  2008-08-27


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

1  None  2010-05-12


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

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

All done.

1  Wayne Hoff  2013-12-04


上記のルークの素晴らしい答えに加えて、ここでは彼の仕事に基づいたバリエーションを紹介します。私は値がない場合、セルにゼロを入れたくありませんでした。セルの書式は一般的なままにして、この式を使用しました

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

ここでもA1は参照されるセルです

0  None  2009-03-04


Round関数を使用して、有効数字を提供します。ただし、これは表示される小数点以下の桁数を変更するものではありません。ただ、セルをgeneralの数値フォーマットでフォーマットしてください

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

0  None  2009-12-29


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  user228931  2013-06-04


これは、分数があるときには十進数を表示させ、整数のときには十進数を表示させないという最もシンプルな方法のようです

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

またはセル参照を使用します

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

Gives

15 = 15 9.23432234 = 9.23

0  lookingforsame  2014-01-17


タイトルとURLをコピーしました