[[20070315113011]] 『小数点位置をそろえたい』(なっち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『小数点位置をそろえたい』(なっち)

たとえば

 13.50
 9.03
 15,800(正数)

というデータがあり、小数点の位置をそろえて表示させるにはどうしたらいいのでしょうか? セルの書式設定で #,##0.0? という設定を行うと、そろうにはそろうのですが、正数まで15,800.00と表示されます。

 えっと、
    13.50
    9.03
 15,800

 というふうにしたいのです。どなたか教えてください。よろしくお願いいたします。

 こちらに同様のご質問があります。↓        (#REF!MAN)
[[20070226221018]]『小数点二桁の有効表示について』(団塊のオッサン)

 カンマ区切り表示は、多少の変更が必要です。
 Sub Macro1()
 Dim R As Range
     Selection.NumberFormatLocal = "#,0.00"
     For Each R In Selection
     If Right(R.Text, 2) = "00" Then R.NumberFormatLocal = "#,0_._0_0": GoTo XX
     If Right(R.Text, 1) = "0" Then R.NumberFormatLocal = "#,0.0_0"
 XX: Next
 End Sub

 表示形式で対処できないことの一つに入力値が小数を含むかどうかの判断があります。
条件式によって「ある数値と大きい、小さい、等しい」という「数値の区切り」は判断
できますが、セルの値が小数点以下の数値を含むかどうかの判断は出来ません。 #.??と
いう表示形式で小数点以下の未入力桁を非表示にすることは可能ですが、それでもピリ
オドは残ります。 
マクロを使って表示形式を差し替えるか、あるいは、別のセルにテキスト表示するか、です。
【マクロ例】シートモジュールへ
 Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Count > 1 Then Exit Sub
     If Target.Column > 1 Then Exit Sub
     If Int(Target.Value) = Target.Value Then
         Target.NumberFormat = "#,##0_._0_0"
     Else
         Target.NumberFormat = "#,##0.0?"
     End If
 End Sub
【数式例】
=text(A1,"#,##0"&IF(INT(A1)=A1,"_._0_0",".0?"))
※等幅フォント、右寄せ配置。
 
ちなみに正数ではなくて、整数ですね。
(みやほりん)(-_∂)b

なるほど!ありがとうございました!
 案外複雑なんですね。
 勉強になりました。


 ここに、あるHPのリンクを載せるのはまずいんですか?
 とりあえず等幅フォントで(MSゴシックなどPがつかない)
 整数の場合
 #,##0"     ";[赤]-#,##0"     "
 とし、小数点以下がある場合
 #,##0.00??;[赤]-#,##0.00??
 とありました。
 (やまもと)


 ◆関数で別のセルでよければ
 =IF(A1=INT(A1),TEXT(A1,"#,##0    "),TEXT(A1,"#,##0.???"))
 (Maron)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.