Excel2013対応
---topics:&演算子、区切り位置---

其ノ5 くっつける 分ける

今回は、「くっつける 分ける」と題して、住所録を扱おうと思います。 が、実は、このページで言いたいことはただひとつだけ、 「くっつけるより、分ける方がむずかしい」ってことなんです。
とりあえず、下↓からダウンロードしてもらえます?

開くとこんな感じです※1

住所録
※1 住所録

シートを3つ用意しました。
まず、「練習その1」を見てください。 「都道府県」とそれ以外が分けられていますね。 最初のミッションは、「この2つを合体させてひとつのセルに収める」です。 さて、どうやりましょうか。
 ・
 ・
実はすごくシンプル。「」でつないであげれば良いんです※2

都道府県&区市町村
※2 都道府県&区市町村

「= 都道府県セル 区市町村セル」と入れれば、くっついた値が表示されます※3

合体した
※3 合体した

あ、式を入れたので、値貼りしておいてくださいね。

では次の課題。「あいだを半角空けて合体したい」と言われたら?
 ・
 ・
まず例題として、あいだに「:(コロン)」を入れてみましょうか。
文字列を挿入する場合は、入れたい文字を「"(ダブルコーテーション)」で囲ってやります。 つまり、「= 都道府県セル &":"& 区市町村セル」とすれば良いんですね※4 ※5

コロンをチョンチョンで囲む
※4 コロンをチョンチョンで囲む
都道府県:区市町村
※5 都道府県:区市町村

ついつい忘れがちですが、「&」もきちんと前後に入れてあげてくださいね。
さて、あいだに半角スペースを挿入する場合も同様です。半角スペースを「"」で囲んでください※6 ※7

半角スペースをチョンチョンで囲む
※6 半角スペースをチョンチョンで囲む
都道府県&半角スペース&区市町村
※7 都道府県&半角スペース&区市町村

「くっつける」のはこんな感じです。
ハイ、では次。「分ける」へ進みましょう。「練習その2」のシートを開いてください※8

2枚目のシート
※8 2枚目のシート

都道府県とそれ以下がスペースで区切られていますね。 これを、都道府県とそれ以下でセルを分けたい。どうしますか?
 ・
 ・
「区切り位置」ってやつを使おうと思うんですが、その前に、この列をコピってとなりに複製しましょう※9
この作業、実はやらなくても良いんですけど、元となるデータを残しておく(其ノ3参照)って意味で、 念のため。

念のためコピー
※9 念のためコピー

これで安心してデータをこねくり回すことができます。
では「区切り位置」、使ってみましょう。まず、B列(コピった方)を選択してください。 繰り返し言いますが、作業するときは必ず範囲を確認する、クセをつけましょう。
そして、リボンの「データ」から「区切り位置」を使います※10

Excel2003でも「データ」のところにあるよ
※10 Excel2003でも「データ」のところにあるよ

すると、こんな画面になります※11

区切り位置指定ウィザード
※11 区切り位置指定ウィザード

「データのファイル形式を選択してください」とあります。 選択式になっていますが、今回は上側の「カンマやタブなどの~」を選んでください。 今回スペースのところでセルを切りたいので、一見すると下の「スペースによって~」なのかな? と考えちゃうかもしれませんが、スペースもひとつの文字と考えてください。 下側の「スペースによって~」は、指定した文字数、例えば左から3文字目とかで、機械的にぶった切る場合に使うものです。 けど、都道府県名って、3文字のところもあれば4文字のところもある。 それに今回は、都合良くあいだにスペースがあるので、スペースの前後で切ってくれるよう指定したいのです。 なので、上の「カンマやタブなどの~」で。

2番目の画面
※12 2番目の画面

次に、区切る文字を選びます※12。 デフォルトの設定では「タブ(Tab)」になっています。
今回はスペースのところで区切りたいので、「スペース」を選択してください※13。 すると、下側の「データのプレビュー」のところに、スペースで区切られたあとのイメージが表示されます。確認しておいてください。
ついでに、区切り文字の「タブ」、外しておきましょう。 これも実は、セル内の文字にタブが含まれていないので不要な作業なのですが、 なんとなくで仕事しない、余計なチェックを入れない、という教育的な意味で、外すことにします。
スペースだけにチェックを入れたら、次へ。

区切り文字はスペース
※13 区切り文字はスペース

次の画面。区切ったあとのセルの書式を選ぶ画面です。 が、今回は標準の書式で良いでしょう。そのまま完了でOKです※14。 うまくいきましたか?※15

書式選択
※14 書式選択
できました
※15 できました

ちゃんとスペースの前後で分けられていますね。確認しておいてください。
では練習その3へ進みましょう※16

練習その3
※16 練習その3

今度はあいだに空白がありません。ぴっちり詰まってます。 これをやっぱり、都道府県とそれ以下で分けたい。どうしましょうか。
 ・
 ・
練習その2みたいに、特定の文字(ないしスペース)が入っていれば、分けるのはカンタンなんですよ。 でも今度は、「ココで区切って!」と目印になるものがない…。
そもそも都道府県って、「青森県」など3文字のところが多いけど、 「神奈川県」「和歌山県」みたいに4文字のところもあるし、 じゃあ「○○県」の「県」のところで切ればよいかって言うと、「北海道」「東京都」「大阪府」「京都府」は、おしりの文字が違う。 ひとつのルールでまとめられないんですよ。困りました。
 ・
 ・
こういうときにどうするか。 長考してウンウン唸って、良いアイデアがでるなら悩むのも「アリ」です。 でも、もし「悩むより手を動かした方が早いかも…」と判断するなら、 愚直でもいいから前に進む、という道もあります。
例えば、
1.「区切り位置」を使って、とにかく左から3文字目でぶった切る
2.そのうえで、「神奈川県」みたいな4文字のところを目で探して、手作業で分ける
というプラン。 あまりスマートではないですが、時間とか現在の自分の技量とか 総合的に考えた結果、このやり方でとにかく進める、というのも全然アリだと思います。 問われているのは結果ですからね。
このプランで一回やってみましょうか。区切り位置を使います※17

区切り位置 今度は下の「スペースによって~」を選ぶ
※17 区切り位置 今度は下の「スペースによって~」を選ぶ

今度は下の「スペースによって~」を選択します。そうして次の画面へ※18

左から3文字目
※18 左から3文字目

フィールドの幅を指定する画面になります。 下側のプレビューで、左から3文字目のところを選択してください。 すると、区切り線が引かれます。
次の画面でセルの書式をどうするのか聞かれますが、ここは今回も標準で良いでしょう。完了です※19

ぶった切った
※19 ぶった切った

あとは、4文字の県名を手で直していきます※20

あ、並べ替えすれば効率的だったかも…
※20 あ、並べ替えすれば効率的だったかも…

画面の黄色セルみたいなところですね。「神奈川」で切られているので、ちゃんと「神奈川県」に直してください。
このやり方で、あまりスマートではないですが、なんとか都道府県を分けることができます。

え?もっと効率的なやり方はないかって?
 ・
 ・
4文字の都道府県って全部言えます? …「神奈川県」「和歌山県」「鹿児島県」ですね。あとは3文字です。 このことがわかっていれば、道は開けるかも。 上記3県だけleft関数を使って左から4文字を引っ張ってくる、 残りは左から3文字、とやれば。 あとは、左から4(ないし3)文字除いた残りを引っ張ってくる方法を考えれば、イケそうですよね。

まず、「神奈川県」で始まるセルを抽出しましょう。フィルタをかけてください。
で、「テキストフィルタ」→「指定の値で始まる」を選びます※21

テキストフィルタ
※21 テキストフィルタ

「○○で始まる」を入力するテキストボックスに、「神奈川県」と入れます※22。 これで、「神奈川県~」で始まる住所が抽出されます。

神奈川県で始まる
※22 神奈川県で始まる

抽出したセルに式を入れていきます。 「神奈川県」なので、左から4文字をもってきましょう。
left関数は、= left ( 対象セル , 欲しい文字数 ) という使い方なので、 左のセルには、

=left(A2,4)

と入れてください。
右は、mid関数使いましょう。 mid関数は、= mid ( 対象セル , 開始位置 , 開始位置から何文字? ) という形なので、

=mid(A2,4+1,(len(A2)-4))

と入れてください。
「開始位置」は、「神奈川県」の次から引っ張ってきたいので、4+1となります。
後半はちょっと難しいですが、len関数で全文字数を割り出して、そこから「神奈川県」の文字数4を引く、 という手法で※23

4+1文字目から
※23 4+1文字目から

式を、フィルタをかけてある全セルにコピーしてください※24

「神奈川県」で始まる全セルに式を入れる
※24 「神奈川県」で始まる全セルに式を入れる

「神奈川県」で始まるセルはこれでOKです。
「和歌山県」「鹿児島県」も同様にしてください。テキストフィルタで抽出して式を入れる。 ちなみに、「鹿児島県」で始まるセルはありません。
 ・
 ・
これで、4文字の県名は引っ張ることができました。 フィルタを解除するとこんな感じ※25です。

あとは、空いたセルを処理すれば…
※25 あとは、空いたセルを処理すれば…

あとは、式の入っていないセルです。 さっき式を埋めた列(画面のD列)のフィルタを開き、「空白セル」を選んでください※26

空白セルを抽出
※26 空白セルを抽出

今度は、左から3文字を引っ張れば良いんでしたね。 なので、さっきの式の「4」のところを「」に変えて、入れてください※27
今回は式を全文紹介したりしないですよ(笑)。いじわるじゃなくて、教育です、教育。
式を入れたら、空白セル全部にコピペしてくださいね。

3文字の県名を抜き出す
※27 3文字の県名を抜き出す

これで、式を全部埋めることができました。 フィルタを解除して、完成です※28。ふう。

都道府県を抜き出した
※28 都道府県を抜き出した

じゃあ、「○○県○○市~」の「市」の前後で切り離すとしたら、どうする?
…うーん、find関数とleft関数を組み合わせるかなあ。 find関数で「市」が左から何文字かを割り出して、って。
余裕があったら、トライしてみてください。 ただし!このやり方では「市原市」とか「廿日市市」みたいに、「市」が2回出てくるところは対応できないので、ご注意を。
なかなかうまくはいかないですね。
とにかく、一度くっついちゃったのを分けるのは、なかなかむずかしいんです。

Copyright(C)森田表計算