スポンサーリンク
テクノロジー

Excelで日付や数字の表示がおかしいとき|####・シリアル値・指数表示・先頭のゼロの原因と直し方

先頭のゼロが消える:見かけのゼロと本物のゼロ

消える理由

「00125」は、数値としては125と同じです。Excelは数値に変換すると、意味のない先頭のゼロを捨てます。郵便番号の「0600001」や、電話番号の「09012345678」が崩れるのも、このためです。

スポンサーリンク

二つの直し方の違い

直し方は二つありますが、結果の意味が違います。

ゼロをそろえる二つの方法(見かけのゼロと本物のゼロの比較)
ほかの表と照合するなら文字列にする。

見かけのゼロ(ユーザー定義の表示形式)

列を選んでCtrl+1を押し、「ユーザー定義」で 00000 と入れます。「125」が「00125」と見えるようになります。中身は125のままなので、計算はできますが、CSVに書き出したときや別のファイルへ貼り付けたときに、元の125に戻ることがあります。

本物のゼロ(文字列に変換)

=TEXT(A2,"00000") と入れて下へコピーし、結果を「値」として貼り付けます。中身が「00125」という文字列になります。別のシステムへ渡すコードなら、こちらが安全です。

照合で失敗しやすい点

VLOOKUPやXLOOKUPで顧客コードを照合すると、見た目は同じなのに一致しないことがあります。よくある原因は、片方が数値の125、もう片方が文字列の「00125」や「125」という型の違いです。

  • どちらの列がどの型かをISNUMBERで確かめる
  • 両方を文字列に統一してから照合する
  • 桁数を =LEN(A2) で確かめる(数値の125は3、「00125」は5)

桁数の確認は、余分なスペースが入っている場合の発見にも役立ちます。

また、桁が失われたデータで先頭のゼロを補うときには、注意が必要です。番号の桁数がすべて同じだとわかっている場合だけ、ゼロを足して戻せます。桁数が決まっていない番号では、いくつゼロがあったのか判別できません。

数字なのに計算できない:文字列の数字を見つけて直す

文字列になる主な原因

SUMの結果が0になる、合計の値が小さい、並べ替えが「1, 10, 2」の順になる。このようなときは、数字が文字列として入っています。Webページからの貼り付け、会計や販売のシステムからの書き出し、文字列の形式のセルへの入力などで起こります。

セルの左上に緑の小さな三角が出ていれば、Excelが「文字列として保存された数値」と教えてくれている印です。セルを選ぶと出る注意のアイコンから、「数値に変換する」を選ぶと直せます。

スポンサーリンク

まとめて変換する方法

範囲が広いときは、次の方法を使います。

区切り位置を使う:列を選び、「データ」タブの「区切り位置」を開いて、そのまま「完了」を押します。列を読み直す過程で数値に変換されます。

形式を選択して貼り付けを使う:

  1. 空いたセルに1を入れてコピーします。
  2. 変換したい範囲を選び、右クリックから「形式を選択して貼り付け」を選びます。
  3. 「乗算」を選んでOKを押します。

1を掛ける計算をすると、文字列が数値に変わります。

関数を使う:=VALUE(A2) または =A2*1 と入れて、下へコピーします。

変換できないときの原因

上の方法で直らなければ、数字以外の文字が混じっています。代表的なものと対処は次のとおりです。

混入しているもの 対処の例
前後の半角スペース =TRIM(A2)
全角の数字 =ASC(A2) で半角に変換
全角のスペース =SUBSTITUTE(A2," ","")
改行などの制御文字 =CLEAN(A2)
Webから来た特殊な空白 =SUBSTITUTE(A2,CHAR(160),"")
円記号やカンマ =SUBSTITUTE(A2,",","") で外してからVALUE

複数が重なっている場合は、関数を組み合わせます。

=VALUE(TRIM(SUBSTITUTE(ASC(A2),CHAR(160),"")))

式がそのまま文字で表示されるとき

=A2+B2 と書いたのに、計算結果ではなく式の文字がそのまま表示されるときは、セルの表示形式が「文字列」になっています。表示形式を「標準」に変えてから、セルをダブルクリックしてEnterを押すと計算されます。シート全体で式が見えているなら、「数式」タブの「数式の表示」がオンになっている可能性があります。

合計が1円合わない、時間の足し算がおかしいとき

表示の四捨五入と、値の端数

小数点以下を表示しない設定にしても、中身の端数は残っています。たとえば、1.4、1.4、1.4を足すと4.2ですが、整数で表示すると「1, 1, 1」の合計が「4」となり、一見合わないように見えます。

請求書のように、表示された数字が合っていなければならない場合は、行ごとに =ROUND(A2*B2,0) のように関数で実際に丸めてから合計します。端数を切り捨てるならROUNDDOWN、切り上げならROUNDUPです。

スポンサーリンク

小数の計算で出る小さなずれ

コンピューターは内部で数を2進数で扱うため、0.1のような小数を正確に表せません。そのためExcelでも、ごくわずかな誤差が残ることがあります。たとえば =1*(0.5-0.4-0.1) は、0になるはずなのに、-2.78E-17のような非常に小さな値を返します。普段は見えなくても、=IF(A2=0,…) のように「ちょうど0か」を調べる式が、思ったとおりに動かない原因になります。比較の前に =ROUND(A2,2) のように丸めておくと防げます。

24時間を超える合計

勤務時間の合計が、30時間のはずなのに6:00と表示されたことはありませんか。「h:mm」の表示では、24時間ごとに繰り上がって消えてしまいます。表示形式を [h]:mm にすると、30:00と正しく表示されます。

時間を給与の計算に使うときは、シリアル値が「一日を1」としていることに注意します。8時間は0.333…という値なので、そのまま時給に掛けると金額が小さくなります。=A2*24*時給 のように24を掛けて、時間の単位に直してから計算します。

受け取ったデータの点検

受け取ったデータの点検(原本のコピーを取ったか、番号の列は文字列か、日付はISNUMBERでTRUEか、件数と合計は元と合うか、最小と最大の日付は妥当か、先頭のゼロと桁数は保たれたか)
加工の前に確認しておくと手戻りが減る。

Excelで作業したファイルを定期的に更新するなら、原本と加工後を分けて保存しておくと、問題が起きても戻れます。保存の考え方はバックアップと同期の違いを参考にしてください。

まとめ

Excelの表示の崩れは、セルの「値」と「見せ方」が別だと知っていれば、多くが落ち着いて解決できます。####は幅、日付の数字化は表示形式の問題で、設定で戻せます。文字列の数字は変換すれば計算できます。一方で、16桁目以降の番号と消えた先頭のゼロは、値そのものが変わっているので、元のデータからやり直すしかありません。

最初の一歩として、よく扱う表の番号の列を一つ選び、=ISNUMBER(A2) で数値か文字列かを確かめてみてください。そして、計算に使わない番号は文字列にする、と決めておくと、次に受け取るデータでの事故が減ります。

よくある質問

セルに####と表示されたらデータは消えていますか?

多くの場合、列の幅が足りないだけで値は残っています。列の境界をダブルクリックして幅を広げれば表示されます。広げても直らないときは、日付や時刻がマイナスになっていないか確認します。

日付が46330のような数字になったのはなぜですか?

Excelは日付を、1900年1月1日を1とする通し番号で記録しています。セルの表示形式が標準や数値になると、その番号がそのまま見えます。表示形式を日付に変えれば、値を変えずに元の見た目へ戻せます。

長い番号の下の桁が0になってしまいました。元に戻せますか?

Excelの数値は有効桁数が15桁なので、16桁目以降は0に置き換えられます。数値として取り込まれた時点で失われるため、表示形式を変えても戻りません。元のデータから、列を文字列に指定して読み込み直してください。

1-2と入力すると日付になるのを防ぐには?

入力の前にセルの表示形式を文字列にするか、先頭に半角のアポストロフィを付けて入力します。アポストロフィはセルには表示されず、数式バーにだけ見えます。列全体に番号を入れるなら、先に列ごと文字列にしておくと確実です。

数字なのにSUMの合計が0になるのはなぜですか?

見た目は数字でも、セルの中身が文字列になっている可能性があります。ISNUMBER関数がFALSEを返すなら文字列です。区切り位置の機能や、VALUE関数を使って数値に変換すると計算できるようになります。

コメント

まだコメントはありません。最初の感想をどうぞ。

個人情報(本名・住所・電話番号など)やリンクの書き込みはご遠慮ください。内容によっては表示しないことがあります。プライバシーポリシー

スポンサーリンク
  1. 秋の戸口に並ぶかぼちゃの明かりとかぶ、麦束
  2. 資料を手に落ち着いて話し合う二人
  3. ノートパソコンと資料、外付け記憶装置がある机
  4. 冬の木で越冬する卵のうやミノムシ、テントウムシ
  5. 青い折り鶴と三角に折った紙、無地の折り紙