時短エクセル(第9回)

セルの文字列を自在に分割するワザ

2018.09.03

クリップについて

 前回は別々のセルに入力されている文字列を結合する技を紹介した。今回はその逆で、1つのセルに入っている文字列を分割する技を紹介しよう。もちろんこれも、1つひとつ手動で入力し直していたら日が暮れてしまう。一定の法則に従えば、何万行あっても瞬時に分割できる。

※当記事では練習用のサンプルファイルがダウンロードできます(ページ下部)

姓と名の間にスペースが入った名前を分割する

 まずは、姓と名の間にスペースが入った名前のセルを、姓と名に分割する方法だ。Excelには、「カンマやタブ、スペースなどの区切り文字を利用してセルを分割する」という機能がある。これを利用するわけだ。

名前の列の後ろに姓、名の欄を用意する

 名前の範囲をドラッグで選択し、「データ」タブの「区切り位置」メニューをクリックする。ウィザードが開くので、1枚目はそのまま「次へ」をクリック。2枚目の「区切り文字」で「スペース」をチェックし、データのプレビューで区切り位置に間違いがないか確認する。そして、「次へ」をクリックして3枚目のウィザードを開く。表示先欄の右端の「↑」をクリックし、Excel画面のC3セルをクリック、さらに「↓」をクリックしてウィザード画面に戻って「完了」を押せばよい。

範囲選択し、「データ」タブの「区切り位置」メニューをクリック

 

「カンマやタブなどの区切り文字によって…」が選ばれていることを確認して「次へ」をクリック

 

「区切り文字」で「スペース」を選んでデータのプレビューを確認し、「次へ」をクリック

 

 

「表示先」の右端の「↑」をクリックし、C3セルをクリックしてウィザード画面に戻って「完了」をクリック

 

姓と名が、用意した2列のセルに分割されて入力される

 姓や名の文字数が違っていても、スペースの位置によって正確に分割してくれる。「名前」欄が不要な場合は、列ごと削除してしまおう。

フラッシュフィル機能を利用して分割する

 前回の結合のときにも利用した「フラッシュフィル」機能で、分割も可能だ。まずは1行目の姓を手入力する。その後、「データ」タブの「フラッシュフィル」を実行すると、姓だけが抽出されて一瞬で自動入力される。「名」も同様にすればよい。

先頭の行は手入力で入力し、「データ」タブの「フラッシュフィル」を実行

 

すると、一瞬ですべての姓が自動入力される

 ただし、前回も少し解説したが、フラッシュフィルは万能ではない。もし姓と名の間にスペースがない場合、3行目の「武翔太郎」は「武翔」が姓と判断されてしまう。フラッシュフィルは、規則性を認識して自動入力してくれる機能だが、ここでは「先頭の2文字を取り出す」という規則性を認識してしまっているので、間違いが起こっているわけだ。

規則性を誤認識し、正確に分割できない

関数を使って区名を取り出す

「港区高輪…」
「品川区北品川…」
「千代田区神田…」

 これらのデータから、区名だけ取り出すにはどうすればよいだろうか。文字数は異なるしスペースも入っていない。

 フラッシュフィルを試してみたが、うまくいかない。

文字数の違う3パターンを入力して試してみるも、「パターンが見つかりませんでした」という画面が出てしまった

 こんなときは関数を使おう。指定した文字列が何文字目かを調べる「FIND」関数と、左から○文字を取り出す「LEFT」関数を組み合わせて使う。

 まずは、「区」が何文字目かを調べるには「=FIND(“区”,A3)」という式を立てる。「区」は「”」(ダブルクォーテーション)で囲む。さらにLEFT関数を組み合わせて「=LEFT(A3,FIND(“区”,A3))」とすると、「区が先頭から何文字目かを調べ、A3セルに入力されている文字の左からその文字数分だけ取り出す」というルールを適用することができる。

==========================
FIND関数-指定した文字が何文字目かを調べる
=FIND(検索文字列,対象,開始位置)
==========================
==========================
LEFT関数-「左から○文字」を取り出す
=LEFT(文字列,文字数)
==========================

FIND関数とLEFT関数を組み合わせ、「区が先頭から何文字目かを調べ、左からその文字数分だけ取り出す」というルールの式を立てる

 

右下の■(フィルハンドル)を下までドラッグすると、区名が取り出せる

“4文字なのは県だけ”を利用して都道府県を取り出す

 では次は住所から都道府県だけを取り出してみよう。都道府県の場合は4種類あるので、区のように文字を特定できない。さらに、文字数も3文字と4文字が存在する。しかし、4文字なのは「神奈川県」「和歌山県」「鹿児島県」の3県のみ。これをうまく利用しよう。

 「4文字目が「県」の場合は先頭から4文字を取り出し、そうでなければ3文字を取り出す」という式を立てればよい。「○○の場合はAの処理を、そうでない場合はBの処理を」というように、条件に応じて処理を切り替える「IF」関数を使おう。また、「4文字目が「県」かどうか」を調べるには「MID」関数(指定した位置から文字を取り出す)を使う。

==========================
MID関数-指定した位置から文字を取り出す
=MID(文字列,開始位置,文字数)
==========================
==========================
IF関数-条件に応じて処理を切り替える
=IF(論理式,真の場合,偽の場合)
==========================

「=IF(MID(B3,4,1)=”県”,LEFT(B3,4),LEFT(B3,3))」と入力すると「東京都」が取り出せた

 

右下の■(フィルハンドル)を下までドラッグすると、4文字の県も、北海道や京都府といったものも正確に取り出せる

 すべての関数を覚えようと思うと大変だ。よく使う関数だけを覚えるか、それも難しいようであれば、こういった決まったパターンのものはテンプレートを保存しておくなどしてコピーして利用してもよいだろう。その際、セル位置が異なる場合はセル番号を修正しよう。

第10回は10月1日(月)公開

【ダウンロード】
「時短エクセル」セルの文字列を自在に分割するワザ のお試しファイルのダウンロードはこちらから(Excelファイル)

SID : 00125009

執筆=内藤 由美

執筆=内藤 由美

大手ソフト会社で14年勤務。その後、IT関連のライター・編集者として活動。ソフトウエアの解説本、パソコンやスマートフォンの活用記事などを執筆、編集している。

あわせて読みたい記事

連載記事≪時短エクセル≫

PAGE TOP

閉じる
会員登録(無料) ここでしか読めないオリジナル記事が満載
閉じる