其ノ5 くっつける 分ける
今回は、「くっつける 分ける」と題して、住所録を扱おうと思います。
が、実は、このページで言いたいことはただひとつだけ、
「くっつけるより、分ける方がむずかしい」ってことなんです。
とりあえず、下↓からダウンロードしてもらえます?
開くとこんな感じです※1。
シートを3つ用意しました。
まず、「練習その1」を見てください。
「都道府県」とそれ以外が分けられていますね。
最初のミッションは、「この2つを合体させてひとつのセルに収める」です。
さて、どうやりましょうか。
・
・
実はすごくシンプル。「&」でつないであげれば良いんです※2。
「= 都道府県セル & 区市町村セル」と入れれば、くっついた値が表示されます※3。
あ、式を入れたので、値貼りしておいてくださいね。
では次の課題。「あいだを半角空けて合体したい」と言われたら?
・
・
まず例題として、あいだに「:(コロン)」を入れてみましょうか。
文字列を挿入する場合は、入れたい文字を「"(ダブルコーテーション)」で囲ってやります。
つまり、「= 都道府県セル &":"& 区市町村セル」とすれば良いんですね※4 ※5。
ついつい忘れがちですが、「&」もきちんと前後に入れてあげてくださいね。
さて、あいだに半角スペースを挿入する場合も同様です。半角スペースを「"」で囲んでください※6 ※7。
「くっつける」のはこんな感じです。
ハイ、では次。「分ける」へ進みましょう。「練習その2」のシートを開いてください※8。
都道府県とそれ以下がスペースで区切られていますね。
これを、都道府県とそれ以下でセルを分けたい。どうしますか?
・
・
「区切り位置」ってやつを使おうと思うんですが、その前に、この列をコピってとなりに複製しましょう※9。
この作業、実はやらなくても良いんですけど、元となるデータを残しておく(其ノ3参照)って意味で、
念のため。
これで安心してデータをこねくり回すことができます。
では「区切り位置」、使ってみましょう。まず、B列(コピった方)を選択してください。
繰り返し言いますが、作業するときは必ず範囲を確認する、クセをつけましょう。
そして、リボンの「データ」から「区切り位置」を使います※10。
すると、こんな画面になります※11。
「データのファイル形式を選択してください」とあります。 選択式になっていますが、今回は上側の「カンマやタブなどの~」を選んでください。 今回スペースのところでセルを切りたいので、一見すると下の「スペースによって~」なのかな? と考えちゃうかもしれませんが、スペースもひとつの文字と考えてください。 下側の「スペースによって~」は、指定した文字数、例えば左から3文字目とかで、機械的にぶった切る場合に使うものです。 けど、都道府県名って、3文字のところもあれば4文字のところもある。 それに今回は、都合良くあいだにスペースがあるので、スペースの前後で切ってくれるよう指定したいのです。 なので、上の「カンマやタブなどの~」で。
次に、区切る文字を選びます※12。
デフォルトの設定では「タブ(Tab)」になっています。
今回はスペースのところで区切りたいので、「スペース」を選択してください※13。
すると、下側の「データのプレビュー」のところに、スペースで区切られたあとのイメージが表示されます。確認しておいてください。
ついでに、区切り文字の「タブ」、外しておきましょう。
これも実は、セル内の文字にタブが含まれていないので不要な作業なのですが、
なんとなくで仕事しない、余計なチェックを入れない、という教育的な意味で、外すことにします。
スペースだけにチェックを入れたら、次へ。
次の画面。区切ったあとのセルの書式を選ぶ画面です。 が、今回は標準の書式で良いでしょう。そのまま完了でOKです※14。 うまくいきましたか?※15
ちゃんとスペースの前後で分けられていますね。確認しておいてください。
では練習その3へ進みましょう※16。
今度はあいだに空白がありません。ぴっちり詰まってます。
これをやっぱり、都道府県とそれ以下で分けたい。どうしましょうか。
・
・
練習その2みたいに、特定の文字(ないしスペース)が入っていれば、分けるのはカンタンなんですよ。
でも今度は、「ココで区切って!」と目印になるものがない…。
そもそも都道府県って、「青森県」など3文字のところが多いけど、
「神奈川県」「和歌山県」みたいに4文字のところもあるし、
じゃあ「○○県」の「県」のところで切ればよいかって言うと、「北海道」「東京都」「大阪府」「京都府」は、おしりの文字が違う。
ひとつのルールでまとめられないんですよ。困りました。
・
・
こういうときにどうするか。
長考してウンウン唸って、良いアイデアがでるなら悩むのも「アリ」です。
でも、もし「悩むより手を動かした方が早いかも…」と判断するなら、
愚直でもいいから前に進む、という道もあります。
例えば、
1.「区切り位置」を使って、とにかく左から3文字目でぶった切る
2.そのうえで、「神奈川県」みたいな4文字のところを目で探して、手作業で分ける
というプラン。
あまりスマートではないですが、時間とか現在の自分の技量とか
総合的に考えた結果、このやり方でとにかく進める、というのも全然アリだと思います。
問われているのは結果ですからね。
このプランで一回やってみましょうか。区切り位置を使います※17。
今度は下の「スペースによって~」を選択します。そうして次の画面へ※18。
フィールドの幅を指定する画面になります。
下側のプレビューで、左から3文字目のところを選択してください。
すると、区切り線が引かれます。
次の画面でセルの書式をどうするのか聞かれますが、ここは今回も標準で良いでしょう。完了です※19。
あとは、4文字の県名を手で直していきます※20。
画面の黄色セルみたいなところですね。「神奈川」で切られているので、ちゃんと「神奈川県」に直してください。
このやり方で、あまりスマートではないですが、なんとか都道府県を分けることができます。
え?もっと効率的なやり方はないかって?
・
・
4文字の都道府県って全部言えます?
…「神奈川県」「和歌山県」「鹿児島県」ですね。あとは3文字です。
このことがわかっていれば、道は開けるかも。
上記3県だけleft関数を使って左から4文字を引っ張ってくる、
残りは左から3文字、とやれば。
あとは、左から4(ないし3)文字除いた残りを引っ張ってくる方法を考えれば、イケそうですよね。
まず、「神奈川県」で始まるセルを抽出しましょう。フィルタをかけてください。
で、「テキストフィルタ」→「指定の値で始まる」を選びます※21。
「○○で始まる」を入力するテキストボックスに、「神奈川県」と入れます※22。 これで、「神奈川県~」で始まる住所が抽出されます。
抽出したセルに式を入れていきます。
「神奈川県」なので、左から4文字をもってきましょう。
left関数は、= left ( 対象セル , 欲しい文字数 ) という使い方なので、
左のセルには、
=left(A2,4)
と入れてください。
右は、mid関数使いましょう。
mid関数は、= mid ( 対象セル , 開始位置 , 開始位置から何文字? ) という形なので、
=mid(A2,4+1,(len(A2)-4))
と入れてください。
「開始位置」は、「神奈川県」の次から引っ張ってきたいので、4+1となります。
後半はちょっと難しいですが、len関数で全文字数を割り出して、そこから「神奈川県」の文字数4を引く、
という手法で※23。
式を、フィルタをかけてある全セルにコピーしてください※24。
「神奈川県」で始まるセルはこれでOKです。
「和歌山県」「鹿児島県」も同様にしてください。テキストフィルタで抽出して式を入れる。
ちなみに、「鹿児島県」で始まるセルはありません。
・
・
これで、4文字の県名は引っ張ることができました。
フィルタを解除するとこんな感じ※25です。
あとは、式の入っていないセルです。 さっき式を埋めた列(画面のD列)のフィルタを開き、「空白セル」を選んでください※26。
今度は、左から3文字を引っ張れば良いんでしたね。
なので、さっきの式の「4」のところを「3」に変えて、入れてください※27。
今回は式を全文紹介したりしないですよ(笑)。いじわるじゃなくて、教育です、教育。
式を入れたら、空白セル全部にコピペしてくださいね。
これで、式を全部埋めることができました。 フィルタを解除して、完成です※28。ふう。
じゃあ、「○○県○○市~」の「市」の前後で切り離すとしたら、どうする?
…うーん、find関数とleft関数を組み合わせるかなあ。
find関数で「市」が左から何文字かを割り出して、って。
余裕があったら、トライしてみてください。
ただし!このやり方では「市原市」とか「廿日市市」みたいに、「市」が2回出てくるところは対応できないので、ご注意を。
なかなかうまくはいかないですね。
とにかく、一度くっついちゃったのを分けるのは、なかなかむずかしいんです。