Excelの書式"表示設定"で桁の異なる数値を見やすくしてみる
Excel2010を触ってみたので練習を兼ねて。たぶん少なくともExcel97以降、もしかしたらもっと前のバージョンでも使えるかも知れません。
ある数値項目の列の書式を、「カンマ区切りで、小さな数値は小数第3位まで表示するけど、100以上の大きな数値は小数点以下は端数なので省略して表示」させるようにしてみます。
最終的に下のようになるようにします。
0.001 0.01 0.1 1.0 10.0 100 1,000 10,000 100,000 1,000,000
せっかくなので、表示形式について、ちょっとまとめながら書いておきます。
私も書式設定の細かいルールは記憶してはいないので、どうするかというと、[セルの書式設定]の[表示形式]タブを開き、[分類]の既定の書式を選択&設定してから、"ユーザー定義"を選択すれば、ユーザー定義書式の雛形が作成されます。
たとえば、日付の"2001/3/14"を選択してからユーザー定義を選択すると、"yyyy/m/d;@"となります。詳しいところは正確ではありませんが、日付ならば"yyyy/m/d"形式で、そうでなければ文字列(@)として表示、という意味です。
これを、月日を常にゼロ埋めして区切りをハイフン(-)にしたい場合は、
yyyy-mm-dd;@
とします。最後の";@"は無くても同じ結果になります(たぶん)。この書式にした場合、2001/3/1は"2001-03-01"になります。
こんな感じで、既存の書式をちょっとずつカスタマイズすることで、好みの書式に近づけることができます。
では目的の書式を考えてみます。
まずは、「カンマ区切り」「小数点第3位まで表示」は、分類の"数値"の"小数点以下の桁数"を"3"にし、"桁区切りを使用する"をチェックします。この状態でユーザー定義を選択すると、"#,##0.000_ "(末尾にスペースが付く)が得られます。同様にして、小数なしの場合は"#,##0_ "が得られます。
小数の不要なゼロをスペースにしたい場合は、"0"の代わりに"?"を配置します。つまり、"#,##0.0??_ "とします。
これだと、ちょうど10などの場合でも"10.0"となってしまいますが、今のところどうやるかは分かりません。分かったら追記するかも知れません。
次に、条件によって書式を変えるには、
[条件式]表示形式1;表示形式2
のようにします。意味は、"if [条件式] then 表示形式1 else 表示形式2"です。
今回の場合は、"[>=100]#,##0_ ;#,##0.0??_ "となります。
最後に、100以上の場合に桁がそろわないのを何とかします。単に半角スペースをつければ、空白を埋めることができます。ただし、コピーすると余計なスペースがついてきてしまうのが欠点。
ということで、最終形はこうなりました。(やはり末尾にスペースが付くので注意)
[>=100]#,##0 _ ;#,##0.0??_