表示形式「#,##0」の意味がいまいちピンとこない件

Excel研修でよく休憩時間にいただくご質問です。

Excel資料を社内で引き継ぎ・共有する場合、入力されている「数式」の理解も大切ですが、
「書式」も定義できるようになると思いどおりにデータを表示させることができます。
数値データの表示形式「#」と「0」について、違いは把握されていますか?

セルの書式設定おさらい

データを入力していないセルを選択し、Ctrl+1で「セルの書式設定」ダイアログボックスを表示させます。「表示形式」タブの分類は「標準」となっています。分類を「ユーザー定義」に切り替えると、右の種類ボックスに「G/標準」と表示されます。この種類ボックスで定義の確認、編集ができます。
セルに何の書式も設定されていない場合は「G/標準」です。
GはGeneral(一般の、普通の)という英単語の頭文字です。
英語版Excelでは、「G/標準」の代わりに「General」と表示されています。

カンマを表示させる

次に、4桁以上の数値を入力したセルを選択し、リボンのボタン(桁区切りスタイル)をクリックしてカンマ表示を設定します。その後、Ctrl+1で「セルの書式設定」をご確認ください。
表示形式の分類は自動的に「通貨」となっています。ここで、分類を「ユーザー定義」に切り替えると
「#,##0;[赤]-#,##0」と定義されていることが分かります。
「;」より左側が正の数、右側が負の数の表示形式を定義しています。
3桁ごとにカンマを表示させ、負の数の場合は「-」をつけて赤い字で表示するの意。
ちなみに、ショートカットキー(Ctrl+「!」)でカンマを設定した場合は、「#,##0」とだけ定義され、
負の数については定義されません。

「#,####」と設定して4桁ごとにカンマが振れるか実験したところできませんでした。
「##,###」というふうに、3桁ごとのカンマに自動修正されてしまいました。

100万以上の大きな数値でも、繰り返し定義する必要はありません。
どんなに大きな数値も3桁ごとにカンマが表示されます。

「#,##0」 なぜ1桁目が「0」なのか

分類「ユーザー定義」で数値の表示形式を定義する場合、「#」か「0」を使用するのが決まり事です。
よくインターネットなどで調べると、「#」は有効桁数が表示されると表現されています。
じゃあ、「###」とやれば3桁までしか表示できなのかと思いますよね。いや、5桁入力しても表示される、意味不明だなとなるわけです。有効桁数とは何なのでしょうか。

「#」を一つだけ設定しても、データが整数の場合、入力した分だけ表示されます。
実は、有効桁数を表示するというのは、少数部のことを言っているのです。
「#.##」と設定した場合、そのセルに「123.456」と入力すると「123.46」と表示されます。
整数部は入力した通りに表示され、少数部分は2桁に丸められます。
ちなみに、「#.#####」と、小数部のデータよりも多く「#」を設定しても「123.456」と表示され、実際のデータの桁より多い小数部の「#」は無視されます。

「#」の弊害

さて、0との違いです。「#」は数値「0」データを表示できません。
100とか1,000は表示できます。純粋な「0」というデータは空白表示になるのです。
そこで、「0」で定義すれば数値「0」データを表示することが可能です。
なので、ユーザー定義の1桁目では「0」を定義するのが基本ルールとなっています。
もし、皆さんが扱われている資料で「0」は表示させたくないなあと思ったら、
敢えて「#,###」と設定すれば良いですね。

「0」はおせっかい

有効桁数については「#」と同様です。
「0」を一つだけ定義した場合も、データが整数の場合、入力した分だけ表示されます。
「0.00」と定義した場合、セルに「123.456」と入力すると「123.46」のように、整数は入力した通りに表示され、小数部が2桁に丸められて表示されます。
ここからが違います。
「0.00000」のように、小数部にデータよりも多く「0」をした場合は「123.45600」と表示されます。定義した分だけ「0」が表示されます。ちょっとおせっかいです。忠実といったほうがいいでしょうか。
整数部も、「000」と定義した場合、セルに「1」と入力すると「001」と表示されます。
つまり、「0」は呼ばれた分だけ顔を出すということです。伝票番号などには便利そうですね。

意味を知った上で上手に使い分けてください。

おまけ

名前に様をつける、御中をつけるなどの場合は、文字を表記するためのコードは「@」(アットマーク)です。
「@ 様」と設定したセルに「田中一郎」と入力すると「田中一郎 様」と表示されます。
請求書などには必須ですね。

Excelは実データと見た目は別管理が鉄則です。表示形式を操ることができれば
思い通りに表記させることが可能です。関数や機能を使用する前に、
表示形式でできることはないか検討してみてください。