「ExcelのLeft、Right、Mid文字列関数を使って時間を節約する」では、文字列の左、右、または中央から、指定した文字数の部分文字列を抽出する方法を説明しました。続いて、「開始位置がわからない場合にExcelのFindとMidを使って部分文字列を抽出する」というヒントを紹介しました。このヒントでは、長さの異なる文字列から部分文字列を抽出できます。
この記事では、文字列をパースして個別の列に分割する最も速くて簡単な方法をご紹介します。このテクニックの一番の魅力は、数式を一切必要としないことです。
区切り文字があれば、Excelはテキストを解析できます。最近、同僚が図A
のようなエントリを含むスプレッドシートを編集しているのに気づきました。彼女はこの生データを渡され、ファックスと電子メールの合計と小計を計算するように依頼されていました。
残念なことに、数字とラベルは1つの文字列に結合されていました。この哀れな人は、数字とラベルを手動で再入力し、700行ものデータを抱えていました。
図A |
![]() |
この生データ内の数字とラベルを分離する簡単な方法を紹介します。 |
幸いなことに、Excelの「テキストを区切り位置に変換する」機能を使ってテキストを自動解析する方法を同僚に教えることで、彼女を救うことができました。その仕組みは以下のとおりです。
まず、生データを含むセルの列を選択し、「データ」メニューを開いて「区切り位置」を選択します。すると、Excel が「区切り位置指定ウィザード」を起動します。
「区切り文字」ラジオボタンが選択されていることを確認し、「次へ」をクリックします。この生データでは、区切り文字は数字とラベルの間のスペースだけなので、図Bに示すように「スペース」のチェックボックスをオンにします。(デフォルトで選択されている「タブ」は選択解除してください。)
図B |
![]() |
この生データの区切り文字としてスペースを扱うようにウィザードに指示します。 |
次のウィザード画面を読みたい場合は、「次へ」ボタンをクリックしてください。ただし、今回のような場合は、「完了」ボタンをクリックするだけで済みます。そうすると、Excelはラベルを別々の列に変換します。スペースの左側の数値は値として保存され、文字列は次の列にコピーされます(図Cを参照) 。
図C |
![]() |
マウスを数回クリックするだけで、ラベルの列をデータの列に変換できます。 |
文字列を別の名前で保存する このヒントは、「名 姓」形式
の列があり、姓を分離したい場合に便利です。スペースを区切り文字として指定するだけです。テキスト区切りツールは、指定した区切り文字で文字列を「切り取る」ので、管理者とユーザーはデータを別の列に再入力する必要がなくなります。
Excelの活用術
このヒントについて(またはお気に入りのExcelテクニックを共有したい方は)、下記にコメントを投稿するか、メッセージをお送りください。
ジェフ・デイビスは毎週、ITの戦場の最前線から見てきた視点で、その現状をお伝えします。最前線からのレポートは、あなたのメールに直接配信されます。ジェフの「グラウンドゼロからの視点」TechMailを購読すると、TechMail購読者限定で、ジェフが厳選したWeb関連情報をボーナスとして受け取ることができます。