問題となる状況
次の画像は、B3:B9の範囲(整数と非整数が混在している)の書式設定を行っているところです。
ここで「桁区切り(,)を使用する」にチェックを入れると……
カンマはつきますが小数点以下の表示桁数が固定(既定値は0)されてしまい、整数に丸められて表示される結果となります(次の画像)。
上記の画像内にある「小数点以下の桁数」の値を変更すれば小数部分を表示させることはできるものの表示桁数が固定されることに変わりはなく、小数点の位置も固定されます。
また、画像は省略しますがユーザー定義の表示形式「#,##0.###」を適用すれば小数点の位置は固定されなくなります。数値が非整数だけならそれで問題ありませんが、整数にも小数点が表示されるという不自然な結果になります。
対策手順
そこで条件付き書式を利用して整数と非整数にそれぞれ別の表示形式を適用するという方法をとります。
まずは非整数に対する設定です。B3:B9の範囲を選択し、「ホーム」タブから「条件付き書式」→「新しいルール」と選択します。
ダイアログが現れますので、中段にある「数式を使用して、書式設定するセルを決定する」を選択します。
そしてその下の数式欄に次のような数式を入力して「書式」ボタンをクリックします。
数式欄の数式
=B3<>INT(B3)
セル内の数値が整数でなければ書式を適用する、という意味です。この数式欄内で参照するセルを指定する場合、このように設定範囲内の最も上のセル(複数列の場合は最も左上のセル)の番地を指定します。
また、判定式の意味については次の記事で紹介していますので参考まで。
(Excel)数値が整数かどうか判定する方法 - いきなり答える備忘録
「書式」ボタンをクリックするともう1つのダイアログが現れます。
ここでは「表示形式」タブ内の左側にある「ユーザー定義」をクリックし、「種類」欄に「#,##0.###」と入力したうえでOKをクリックします。
種類欄の文字列
#,##0.###
これは上記でも少し触れしましたが、「カンマを入れ、小数点以下の表示桁数を固定しない(ただし整数でも小数点は消えずに表示される)」という表示形式を意味する文字列です。
この場合は末尾に「###」が3つあるので小数点以下4桁以降まで続く小数は小数点以下3桁までに丸められます。このことを考慮して末尾の「#」の数を適宜定める必要があります。
OKをクリックしてさらに最初のダイアログのOKをクリックすると非整数にのみ設定が反映され、カンマが付きました。小数点の位置も固定されていないことがわかります。
続いて整数に対する設定です。手順は全く同じで、B3:B9の範囲を選択した状態でホームタブから「条件付き書式」→「新しいルール」と選択し、ダイアログへの入力を行い「書式」ボタンをクリックします。
ただしここでは数式欄を「=B3=INT(B3)」とします。
数式欄の数式
=B3=INT(B3)
「セル内の数値が整数なら書式をセルに反映する」という意味です。
「書式」ボタンをクリックしたら次のダイアログで、表示形式タブ内にある「ユーザー定義」を選択し、種類欄には次のような文字列を入力します。
種類欄の文字列
#,##0
これは単に数値にカンマを付けるという意味です。
OKをクリックして設定を終えると今度は整数に表示形式が適用され、設定完了となります。
なお、設定したセル範囲を選択した状態でホームタブから「条件付き書式」→「ルールの管理」と選択すると次のダイアログが現れ、設定内容の確認・変更ができます。
備考
上記の2回目の(整数に対する)設定においてユーザー定義の表示形式を設定するのではなく、冒頭の画像のように「桁区切り(,)を使用する」にチェックを入れればいいのではないか、と思われますが、そうするとセルの右端に余白が挿入されて表示されるため整数と非整数で左右位置がズレます(実際に2番目の画像ではセルの右端に少し余白ができているのがわかります)。