気合で覚えるWord・Excel6

Excelでのセル分割

2003/07/29

 以前にも書いたが、「表作成」においては、Excelが本家であり、Wordの表作成機能は、あくまでも文章中に表を挿入する、という補助的なものである。ところが、Wordの表機能にはあって、Excelにはないものがある。それは「セルの分割」だ。
 Wordの場合、分割したいセルを選択して右クリックして「セルの分割」を選ぶだけだ。しかも一つのセルを半ば無数に分割することができる(ただし、セルのなかの文字は常に一番左上のセルに表示され、文字を分けることはできない)。
 このように、Wordでは右クリック1回でできる「セルの分割」がExcelではできない、というと一見不思議なように感じる。しかしこれはWordとExcelの基本概念の違いによるのである。
 Wordの基本は「連続した白紙」である。そこに字を書くのを中心に、画像を張ったり表を作成するという感じでの作業になる。したがって、その白紙に書いた表の一つのマスをさらに分割するのは、さほどの手間ではない。
 ところが、Excelの基本は1つ1つの升目である「セル」なのだ。このセルが上下左右に無数に(限界はあるが、普通に使う分には意識する必要はない)存在してExcelのファイルを構成する。Excelを立ち上げる時に表示されるのは「シート」だが、これは「セルの集合体」である。Excelの作業はほぼ100%が一つのセルにデータを入れるところから始まる。
 そして、Excelにとっての基本単位であるセルは分割できない。とはいえ、実際にExcelを使っていると、「このセルを分割したい」と思うときはあるだろう。ここではそういう時の対策を書いてみる。

 まずは、単純に表にデータを入力している時にセルを分割したくなった場合だ。たとえば下の表だが、ここに「名古屋市」と「東区」を別々のセルに入力する必要があるとする。
基本表
 これがWordならば、「F4」のセルを右クリックして「セルの分割」で「列2・行1」と指定すれば簡単だ。しかし、最初に書いたようにExcelではそれができない。
 その代わりにどうすればいいだろうか。まず、この場合は、上の二つのデータをどう扱うかによってやりかたが変わってくる。まず、「新宿区」を「市」として扱う場合だ。これは上2行の表の構成は変えないですむので、比較的簡単だ。
 まず、セルの列を表す「G」のところをマウスでクリックし、「監督」の列を列ごと選択する。そして右クリックして「挿入」を選択する。すると、「監督」の列が「H」になり、「G」は空白の列になる。
 そして、「F」の「市区町村」を「市区町村1」とし、「G」を「市区町村2」にする。そのうえで、F列に「名古屋市」、G列に「東区」と入力する。
市区町村1と2で分けた場合
 市は市、区は区で分けたい場合は、もう少々手間がかかる。1行挿入するところまでは同じだが、今度は「市区町村」を「市町村」とし、「G」を「区」にする。そのうえで、2列目の「新宿区」を手動で「G」に移動する。こうすれば市は市の列に、区は区の列にそれぞれに配置される。
市町村と区で分けた場合
 以上の事からもお分かりいただけるように、セルを分割しようとすると、結果的には列もしくは行を新たに挿入する事になる。この例はまだ3行目だから、仮に「市町村」と「区」に分ける場合でもたいした手間はかからなかった。しかし、これがすでに何十行もデータを入れていた場合は、修正が大変になる。
 これを防ぐには、表の基本構造を作るときに気をつけるしかない。面倒な話ではあるが、「セルの分割は基本的にできないのだから、なるべく細かく設定しておく」と考えてやるよりない。仮に用意していた列がまるまる不要になっても、それを削除するのは簡単だ。

 以上、セル一つでの「分割」の方法を紹介した。次に、すでにデータが入っている複数のセルを、列単位で「分割」する方法を考えてみる。
 たとえば、すでに7桁分の郵便番号が入っている列を3桁と4桁に分割する必要がある場合などがある。
 このような文字数に規則性がある場合は、比較的簡単に「分割」できる。まず、分割したいセルの隣に列を二つ挿入する。そこにそれぞれ「=left(A2,3)」「=right(A2,4)」という関数を入れる。すると、それぞれのセルに左3桁と右4桁が表示される。
 次に、二つのセルを同時に選択肢、マウスのポインタを右側のセルの右下に持っていく。すると黒い「+」の形になるので、その「+」を適用したい一番下の行まで持っていく。

関数で分割 下までコピー

 もとの列を残しておく場合は、これで完了だが、元の列(この例の場合は7桁表示の列)を消す場合は注意が必要だ。
 新たに「分割」した列は、元の列のデータを参照して表示されている。したがって、この状態でもとの列を消すと、新たに「分割」した列のデータも消えてしまう。それを防ぐには、まず新たに「分割」した列の選択してコピーし、さらにそのまま右クリックして「形式を選択して貼り付け」を選択し、そこから「値」を選ぶ。
 つまり、コピーしたデータを「値」にして、同じ所に貼り付けるわけだ。見た目はまったく変わらないが、こうすることによって、元の列のデータを参照していたものが、独自の値を持ったデータに変わる。これで、元の列を消しても、新たに「分割」したデータはそのまま残る。
形式を選択して貼り付け
 なお、この「一つのセルの一部分だけを別のセルに表示」というのは、意外なところで重宝する関数である。本例では、「セルの左側から数えて何列を表示」の「left関数」と、「右側から数えて何列を表示」の「right関数」を使ったが、他に、「セルの中の何文字目から何文字目までを表示」という「mid関数(=mid(セル名、引用開始の文字数,引用終了の文字数)」というのもある。
 では規定の文字数がはっきりわかっていない場合(たとえば1行目が「北海道札幌市中央区北○条西×丁目」で、2行目が「鹿児島県加世田市字※※▲▲番地」で、ともに市区までとそれ以外で分けたい時)はどうするか、という問題が生じてくる。
 このへんについては、日経BP社のサイトにエクセル関数の技36・文字列を分割するに関数を使った便利な方法が載っているので、ご参照願いたい。

ページ別アクセス数調査用