エクセルで数字を扱っていると表題のように「#####」とシャープが連続してしまい、値が読み取れなくなってしまう事が良くあります。
結論を言うと「####」になってしまう理由はセルのサイズよりも数値の長さが大きいため表示できなくなっている状態です。表示できないだけなので実はエラーではないので計算自体は問題なくできていますので焦る必要はありません。
ただこの状態で印刷すると#のまま印刷されてしまうので、請求金額が「###」円みたいになってしまうとこれは問題です。
今回はこのような表示になってしまった場合の修正方法をご紹介します。
「####」表示を再現
まずはこのような表示になってしまう現象を再現してみます。
上から順に「カンマを付けた金額表示」、「日付表示」、「数字の羅列」、「時間表示」となっています。
この状態で「B列」の幅をだんだん小さくしていきます。
画像①、画像②までは列幅に表示内容が入りきらず「###」に変わりました。
画像③では数値が「12345678」からに「###」ではなく「1.2E+07」に変わりました。この表示は1.2×10000000(ゼロが7個)という意味で、12000000と同じ意味。桁が上から3桁目以降の数字が省略することで列幅内に数値を収めています。
画像④では画像③の表示でも列幅に収まりきらずに「####」に変わりました。
画像⑤では一番サイズの小さかった「時間表示」も「##」に変わりました。
対策1、セルの列幅を広げる
一番簡単な対策はセルの列幅を広げることです。
列見出しで「B」列の右側にマウスカーソルをもっていくと上図のようにマウスカーソルの形が変わります。この状態で「ダブルクリック」すると
一番列幅の大きいセルに合わせて列幅が広がって「####」表示を消すことができました。
対策2、文字のサイズを小さくする
対策1の方法ではもう少し小さい列幅にしたいときには対応することができません。
そんな時は文字のサイズを小さくすることで表示させることができます。
まず、「###」表示にしたくないセルを選択し、右クリックから「セルの書式設定」をクリックします。
「セルの書式設定」メニューの中の「配置」タブ→「縮小して全体を表示」にチェックを入れる
すると下の画像のよう「####」表示が消えました。
「####」表示の代わりに文字のサイズが小さくなって表示されていますが、さすがにサイズが小さすぎて読み取ることができません。そこでお好みのサイズに調整してください。
これによって、セル幅が十分広いセルは通常通りの文字サイズで表示され、はみ出しそうなセルは文字が小さくなることで値を表示することができました。
対策3、文字列に変換してはみ出して表示させる
数値が入っているセルはセル幅が小さいと「####」となりますが、文字列が入っているセルはセルをはみ出して表示されます。
数値が入っているセルもこれと同様にはみ出してくれればそれでいいのにという場合はこちらの方法が便利です。
数値表示のままセル幅をはみ出して表示させる
次に「TEXT」関数を使って、各表示項目の書式を指定しつつTEXTに変換してみます。
金額(C2セル)
=TEXT(B2,"#,###")
日付(C3セル)
=TEXT(B3,"yyyy/m/d")
数値(C4セル)
=TEXT(B4,"0")
時間(C5セル)
=TEXT(B5,"h:mm")
上記内容を各セルに入力すると下図のようになりました。
「C」列は狭いままですが、セルをはみ出して正しい書式で表示させることができました。
セルの書式設定から文字列に変換する
ちなみにセルの書式設定で文字列に変換する方法もありますが、これではうまくいきません。具体的にどうなってしまうのか実際に試してみます。
「##」表示になっているセルを選択し、「ホーム」タブ→「表示形式選択エリア」→「文字列」の順にクリックします。
ただ、これだけだとすぐには文字列に変換できませんので、一度文字列に変換したセルをアクティブにして「Enter」キーを押すことで文字列に変換されます。
しかしこれでは上図のように金額はカンマ表示が消え、日付・時間は「シリアル値」に変わってしまいました。
まとめ
「###」表示になってしまったら、以下の3つの方法で回避することができます。
- セルの列幅を広げる
- 文字のサイズを小さくする
- 文字列に変換してはみ出して表示させる
「3.」の文字列に変換する方法は「TEXT」関数を使う方法と書式設定から変換する方法があるが、「TEXT」関数を使う方がお勧め。
コメント