- 条件付き書式を利用して整数と非整数にそれぞれ別の表示形式を設定することで、不自然な表示を避けることができます。
問題となる状況
次の画像は、数値が入ったいくつかのセルに対してセルの書式設定を行い、ユーザー定義の表示形式「#,##0.???」を適用したところです。
これにより小数点以下3位まで表示され、小数がそこまで続かない場合は右端にスペースが表示されるので、小数点の位置を揃えることができます。
しかし整数にも小数点が表示されてしまい表示が不自然になるという問題があります。以下ではこの問題を解決し、整数には小数点を表示させないようにします。
手順
まず対象となる範囲(ここではB3:B8)を選択した状態で、ホームタブから「条件付き書式」→「新しいルール」と選択します。
ダイアログが現れますので中段にある「数式を使用して、書式設定するセルを決定」を選択します。
そして数式欄に次のような数式を入力して「書式」ボタンをクリックします。
数式欄の数式
=B3<>INT(B3)
「セル内の数値が整数でなければ、以降で設定する書式をセルに反映する」という意味の数式です。
このように数式内で参照するセルを指定するときは、設定範囲内の最も上にあるセル(複数列にわたる場合は最も左上のセル)の番地を指定します。
なお、INT関数と整数/非整数の判定については次の記事をご覧ください。
(Excel)数値が整数かどうか判定する方法 - いきなり答える備忘録
書式ボタンをクリックすると次のダイアログが現れます。
ここでは「表示形式」タブ内の左側にある「ユーザー定義」を選択して、右側のテキストボックスに次の文字列を入力します。
種類欄の文字列
#,##0.???
これは最初の画像でも紹介しましたが、「小数点以下第3位まで表示させ、そこまで小数が続かない場合は右端にスペースを表示させることで小数点の位置を揃える」という設定を意味する文字列です。
カンマが不要の場合は文字列を「0.???」としてください。
OKをクリックしてさらに最初のダイアログのOKをクリックすると設定が反映されます。
整数でない数にのみ、設定した書式(表示形式)が反映されました。
続いて整数に適用する書式の設定です。
上記と同様にB3:B8の範囲を選択した状態でホームタブから「条件付き書式」→「新しいルール」と選択し、ダイアログへの入力を行い「書式」ボタンをクリックします。
ただしここでは数式欄を「=B3=INT(B3)」とします。
数式欄の数式
=B3=INT(B3)
これは「セル内の数値が整数なら、以降で設定する書式をセルに反映する」という意味です。
「書式」ボタンをクリックしたら次のダイアログで、表示形式タブ内にある「ユーザー定義」を選択し、テキストボックスに次のような文字列を入力します。
種類欄の文字列
#,##0_._0_0_0
「_.」は「小数点と同じ幅のスペース」という意味で、「_0」は「0と同じ幅のスペース」という意味です。
つまり文字列全体では「数値の後ろに『.000』という文字列と同じ幅のスペースを表示する」という意味になります。
カンマが不要の場合は「0_._0_0_0」としてください。
OKをクリックして設定を終えると整数に書式が適用され、完了となります。
小数点の位置が揃い、整数に余計な小数点も表示されていません。
なお、設定したセル範囲を選択した状態でホームタブから「条件付き書式」→「ルールの管理」と選択すれば次のようなダイアログが現れ、設定した内容の確認・変更が可能です。
備考ですが2つの設定のうち一方を通常の書式設定で設定し、一方を条件付き書式で設定するというやり方も考えられます(条件式を設定する手間がわずかながら省ける)。ただし設定内容を把握しにくくなるので、ここでは両方とも条件付き書式で設定しています。
フォントについての注意
上記の設定でもプロポーショナルフォントだと各文字の左右位置にズレが生じます。ただし半角数字がすべて同じ幅のタイプ(MS Pゴシックなど)であれば揃います。
また、等幅フォント(半角数字も半角スペースもすべて同じ幅)を使うのであれば、整数に対する条件付き書式の設定時に指定する文字列は「#,##0 」(0の後に半角スペースを4つ挿む)や「#,##0" "」(わかりやすくする場合)でも済みます。