
スプレッドシートを使用している際、数値の「0」が消えてしまう現象に悩んだことはありませんか?例えば「0123」と入力したはずが「123」と表示されてしまう、ゼロで始まる電話番号や郵便番号がうまく保存されないといった問題です。
この記事ではスプレッドシートで0が消えてしまう原因とその対策を詳しく解説します。
スプレッドシートで0が消える主な原因
スプレッドシートで0が消えるのは多くの場合、セルのデータ形式や自動処理の仕様が関係しています。具体的な原因をいくつか紹介します。
数値として認識されるため
スプレッドシートはデフォルトで数値が入力された場合に自動で「数値」として処理します。数値として認識されると、先頭の0は意味がないと判断され削除されます。
例
入力値 | スプレッドシートの表示 |
---|---|
0123 | 123 |
00045 | 45 |
セルの書式設定が「数値」になっている
スプレッドシートのセルの書式設定が「数値」になっている場合、先頭の0は無視されます。
確認方法
「書式」の「123」メニューを開く
「自動」になっていることを確認
「自動」になっていると先頭の0は表示されません。
書式なしテキストを選択すると「0」が表示されます。
CSVファイルのインポート時の問題
CSVファイルをスプレッドシートにインポートするとき、デフォルトの設定では数値として処理されるため先頭の0が削除されることがあります。
例
CSVの値 | スプレッドシートでの表示 |
00123 | 123 |
04567 | 4567 |
数式の自動処理
スプレッドシートでは数式を使って計算を行うことができますが、関数によっては自動的に数値に変換されることがあります。
例
=TEXT(0123, "0") → 結果: 123
この場合も、先頭の0が消えてしまいます。
スプレッドシートで0を消さないための対策
セルの書式設定を「文字列」に変更する
先頭の0を保持するにはセルの書式を「文字列」に変更するのが最も簡単な方法です。
確認方法
先頭の0を保持するには上述した通り、セルの書式を「書式なしテキスト」に変更するのが最も簡単な方法です。
先頭にシングルクォート(’)を付ける
データ入力時に先頭に**シングルクォート(’)**を付けると、スプレッドシートはその値を「文字列」として認識し0を消しません。
例
'0123 → 0123
'04567 → 04567
シングルクォートは表示されませんが、内部では文字列として認識されます。
CSVのインポート時に「プレーンテキスト」を指定する
CSVをインポートするときに「プレーンテキスト」として認識させることで、数値として処理されるのを防ぎます。
手順
「ファイル」メニューから「インポート」を選択
CSVファイルを選択し「カスタムのインポートオプションを使用」をチェック
「テキストとしてインポート」を選択
TEXT関数を使用する
関数を使ってデータを加工する場合、TEXT関数を使用することで、先頭の0を保持できます。
例
=TEXT(A1, "00000") → 結果: 01234
この方法を使うと一定の桁数で表示することが可能です。
スクリプトを活用する
Google Apps Scriptを使って、先頭の0を自動的に保持するスクリプトを作成することも可能です。
スクリプト例
function preserveLeadingZeros() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (typeof values[i][j] === 'number') {
values[i][j] = "'" + values[i][j].toString().padStart(5, '0');
}
}
}
range.setValues(values);
}
このスクリプトを実行するとセルの値を自動的に文字列化し、先頭の0を保持できます。
まとめ
スプレッドシートで先頭の0が消えてしまう問題は、データ形式やスプレッドシートの自動処理によって発生します。しかし適切な設定や対策を行えば、0を消さずに保持することが可能です。
今回紹介した対策のまとめ
原因 | 対策 |
数値として認識される | セルの書式を「文字列」に設定 |
数式の自動処理 | TEXT関数を使用 |
CSVインポート時 | 「プレーンテキスト」としてインポート |
手動入力時 | 先頭にシングルクォートを付ける |
自動化 | Google Apps Scriptを活用 |
スプレッドシートを正しく設定し目的に応じたデータ管理を行いましょう!
他にもOfficeソフトに関する記事を上げています。是非色々見てみてください。