【Excel】セルの文字を操る【くっつける、分ける、取り出す】

悩んでいる

  • ネットのデータをExcelに貼るとセル内に詰め込まれてしまう
  • 住所録を入力したけれど、都道府県だけ取り出したい
  • 別々のセルに入っている文字をくっつけて1つのセルに表示したい

こんな悩みを解決していきます。

文字を結合する

左から(右から)何番目の文字まで抽出する(分ける)

○番目の文字から○文字分を抽出する

今回の数式は使いこなすと、事務作業など膨大なデータを入力する手間を大きく省くことができるので時間効率が格段に上がります。ぜひ使いこなしていきましょう。

なお、IF関数を使いこなすことでさらに高度に文字抽出が可能になります。練習用のファイルも付けておくので活用してみてください。

MID.RIFHT.LEFT.etc…


文字を結合する

よく使われるのは『&』と『CONCATENATE』関数があります。
なお、Excel2016からは『CONCAT』関数というものもあります。一覧にしたので使用方法を確認していきましょう。

『&』=特に制限はありません
『CONCATENATE』=連結上限が30個
『CONCAT』=Excel2016以降のみ

使い勝手としては、『&』か『CONCAT』に偏ると思います。『CONCATENATE』は数字などが多い数式では、結合する関数が見やすいというメリットはあるものの、私自身ほぼ使いません笑
必要な状況に応じて数式を使い分けるのも上達への必要な手順です。


左から(右から)何番目の文字まで抽出する(分ける)

そのままの意味です。

LEFT(対象セル,何文字目まで)
RIGHT(対象セル、何文字目まで)

他にも、氏名を「氏」と「名」で別々のセルに分けていく場合に使う事が出来ます。その時に注意しなければならないのは、苗字や名前の文字数が人それぞれ違う点です。

ここで更に、FIND関数とLEN関数という2つの関数が出てきます。

FIND(検索文字列,対象,開始位置)
→検索文字が対象セルの中で開始位置から何文字目にあるのかを検索する関数です。

LEN(文字列)
⇒対象セル(文字列)が空白も含めて何文字あるかという値を出す。

この2つを更に使うと苗字と名前をいちいち文字数を気にしないでも簡単に分けることができるようになります。

苗字の部分
=LEFT(B11,FIND(“ ”,B11,1)-1)
=LEFT(対象セル,FIND(空白の位置,対象セル,1番左から)-1文字(空白分)

それぞれ苗字と名前の間にスペース(空白)があります。そのスペースが何文字目なのかを検索してしまえば、スペースの1文字分をマイナスすれば苗字の文字数が出ます。それをLEFT関数で左から何番目という部分に当てはめれば苗字だけ取り出せます。

名前の部分
=RIGHT(B11,LEN(B11)-FIND(“ ”,B11,1))
=RIGHT(対象セル,LEN(対象セル文字数カウント)-FIND(空白の位置,対象セル,1番左から))

(対象セルの文字数全体)-(苗字後のスペースまでの文字数)=残りの文字数(名前部分)となるので、あとはその文字数分をRIGHT関数で右から何文字目に該当するかを当てはめる形になります。


○番目の文字から○文字分を抽出する

特定の文字を取出す数式も必要になります。例えば住所だと「東京都千代田区丸の内」などのような形で連続して文字が入っている為、先程のようなスペースを探す手法が使えません。

さらにスペースの代わりとなる部分が「都」「道」「府」「県」と4つもあるため、

=LEFT(B15,IFERROR(FIND(“都”,B15,1),IFERROR(FIND(“道”,B15,1),IFERROR(FIND(“府”,B15,1),FIND(“県”,B15,1)))))

このように、「都」がなかったら「道」、「道」がなかったら「府」、「府」がなかったら「県」をカウントするという形になるのですごく長い数式になってしまいます。

豆知識

種類 都道府県名 文字数
東京都 3
北海道 3
大阪府 3
京都府 3
多数 3 or 4

実はこのように分けることができます。これを使えば、県が4文字目にあれば4文字、それ以外は3文字で統一してしまえば簡略化できます。
こういった知識や発想も使って数式を簡単にしましょう。

上記の豆知識を使うと、=LEFT(B15,IFERROR(FIND(“県”,B15,1),3))とここまで短くできます。

ただ、実際には東京都丸の内1-1-11や北海道旭川市江丹別町嵐山8-246-13など全体の文字数がかなりバラバラになり、市や区のデータがLEFT関数やRIGHT関数ではとりづらいです。(※住所は架空のものです)

そこでMID関数を使います

=MID(文字列,開始位置,文字数)


=MID(B16,LEN(E16)+1,IFERROR(FIND(“市”,B16,1)-LEN(E16),FIND(“区”,B16,1)-LEN(E16)))
これで都道府県⇒市or区を取り出す数式も組むことができるようになります。MIDまで使う事でかなりできることの幅が広がります。文字列関連は『文字数』をうまく取り出すことから数式を組み始めるとうまく組み上げられます。