【Excel】【表示形式】Microsoft Excel 2003を使っています。セルに、整数部はカンマ3ケタ区切りで、小数点以下がない場合は小数点なし、小数点以下がある場合は最大で小数点以下2ケタまで表示させたいと思っています。


1234.0 → 1,234
1234.5 → 1,234.5
1234.56 → 1,234.56
1234.567 → 1,234.57

のような形です。表示形式で"#,##0.##"と指定すると、整数の時でも「1,234.」と、最後に小数点が表示されてしまいます。これを表示させないように、上記のような結果が得られる表示形式の指定方法を教えてください。マクロを使うのは避けたいです。

回答の条件
  • 1人3回まで
  • 登録:2008/05/22 22:23:19
  • 終了:2008/05/29 22:25:03

回答(1件)

id:ardarim No.1

ardarim回答回数892ベストアンサー獲得回数1422008/05/22 22:44:10

ポイント60pt

表示形式でやるのは無理ではないかと思います。

マクロではなくてワークシート関数でできますが、代わりになりますでしょうか。

例えば、B1で

=TEXT(A1,IF(MOD(A1,1)=0,"#,##0","#,##0.##"))

TEXT関数を使うと表示形式の書式に当てはめた文字列に変換できます。これを利用して、A1が整数の時は #,##0 の書式で、小数点以下があるときは #,##0.## の書式で表示します。

id:JTCY

教えていただいた方法で意図通りの表示がされることを確認しました。

ただ、実データを入れておくダミーのセルが必要になってしまうのが玉に瑕ですね。やはり表示形式だけでは無理なのでしょうか。

ともあれ、ありがとうございました。

2008/05/22 22:47:38
  • id:ardarim
    実データを入れておくセルは、別シートに移動してしまうか、またはその列全体を非表示にしてしまうとすっきりします。
    別シートに移動した場合はそのシート自体も非表示にしてしまうという方法もありますので見栄えを気にされる場合は検討してみてはいかがでしょうか。
  • id:SALINGER
    この小数点は書式の表示形式では修正できなくて、関数で
    =IF(RIGHT(TEXT(A1,".###"),1)=".",TEXT(A1,"#,##0"),TEXT(A1,"#,##0.###"))
    とか使われます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません