電子出版小技集 011

エクセルでコードを入力する

――「00001」を「00001」と入力する

エクセル\初級

 データの作成や整理でエクセルなどの作表ソフトを使うことは多いですね。表は行がレコードで列がそのフィールドとして作ることが多いはずです。1行はひとつのレコードですので行毎にIDコードを振るようにしたいわけです。エクセルではここで困ったことに突き当たります。

 IDは数字の連番で作成するのが一番簡単です。通常は「00001 00002 …」 と頭に0を桁数だけつけてIDとします(*1)。ところがエクセルで「00001」と入力してみると「1」と頭の0が無視されてしまいます。何とも困ったことです。

 これは「数字」と「数値」の取り違いです。IDは数字で構成された文字で、数値ではありません。エクセルはデフォルトでは数字だけで構成された文字列を数値として扱うように設定されていますので、00001 = 1 と解釈したわけです。

・0パディングされた数字を入力する

 IDのように頭に0をつけた数字だけの文字列をエクセルで入力するにはどうしたら良いでしょうか。数字だけど「数値」ではなく「文字列」なんだよとエクセルに教えてあげれば良いのです。

  1. IDの列全体を選択(一番上の「A B C …」をクリックすると選択できます)
  2. メニューの[書式][セル]か右クリックしてコンテキスト・メニューから「セルの書式設定」ダイアログを出します
  3. 「セルの書式設定」ダイアログの「表示形式」タブの「分類」「文字列」を選択してOKを押します

 これで「00001」を「00001」と入力することが可能になります。

 



・連番を振る

 さて次は連番を振る作業です。IDはデータ全体の中で同じものがあってはいけません。このことをユニークな状態といいます。これを簡単に実現するには連番にするのが便利です。こうしておけばデータを追加するときは最大のIDより大きな数にすればユニークになります。(便法ですがIDを10間隔の連番にしておくと途中にデータを9個まで挿入することも可能になります。)

 データ全体に新しくIDを振るなら連番で一気に振ってしいましょう。手で記入するのは面倒ですし間違いも起こります。下のような手順で簡単に連番IDが振れます。

  1. IDの列を文字列として
  2. 最初の行にIDの初期値たとえば「000010」を記入
  3. 次の行にIDの次の値たとえば「000020」を記入
  4. そのふたつのセルを選択して選択枠の右下の‘■’(カーソルのかたちが‘’から‘+’に変わる位置)を下へ必要なだけドラッグ

  



 IDコード振り簡単だったでしょ!

 IDの形式が「A0001」のような場合でも上の方法は有効ですが「0001A 0002A …」のように後ろに文字が来る形では頭の0が取れてしまってうまくいかないようです。「AA AB AC … ZZ」のような文字の連番もできないようですね。


*1 IDコードはなぜ0をパディングするのか?
 IDは全体の中でユニーク(唯一無二)でありさえすればよいので形式は問いません。しかし通常IDは文字列として扱い、ID順に出力するとこともよく行われます。0をパディングしないでIDを振りIDを文字列として昇順に並べ替えると「1 10 11 12 … 19 2 20 21 …」という順にレコードがならんでしまいます。これでは不便ですよね。
 というわけで原則論は別として実際には何かと不便なので0をパディングするのが普通です。





BACKNewsletterのTopに戻る
Homeトップページに戻る