いまさら聞けないExcelの使い方講座

【Excel】関数いらず! 文字列の一括削除や書き換えを標準機能で効率的に

文字列の一部を削除したり、書き換えたりするなら[検索と置換]ダイアログボックスも便利

文字列の書き換えなら関数を覚えてなくても大丈夫

 文字列の一部を一括で削除したり、書き換えたりしたい場合どうしますか? 10箇所以上を修正するなら、手作業ではつらいですよね。エクセルに慣れている人は関数を使いたくなると思いますが、エクセルの標準機能で解決することも多いのです。

 例えば、以下のような表に入力されたメールアドレスから「@」より前を取り出す場合、関数を使うと「=LEFT(C2,FIND("@",C2)-1)」のような数式が考えられます。FIND関数で「@」の位置を探して、その1つ前までLEFT関数で取り出します。

メールアドレスの「@」より前を取り出したい時、関数なら「=LEFT(C2,FIND("@",C2)-1)」(①)のような数式を使います

 元の文字列を残しておけることと、汎用的に利用できるのが関数のメリットですが、単純に「@」より前の文字列を取り出したいだけなら、複数の関数をネストするのは大げさですよね。

 別の例として、型番などに含まれる2つの「-」に挟まれた文字列を取り出す場合の数式はもっと複雑です。2つの「-」の位置を探して、足し算と引き算しているだけですが、慣れないうちは誰かのヘルプが必至です。

型番に含まれる2つの「-」に挟まれた文字列を取り出すには「=MID(A2,FIND("-",A2)+1,FIND("-",A2,FIND("-",A2)+1)-FIND("-",A2)-1)」(②)のような数式が必要です

 「-」の間の文字列が欲しいだけなのに数式の難易度が高いですよね。このようなケースでも、誰でも簡単にデータを整えられる方法があります。いずれも基本的な機能ですが、効率アップに繋がりますよ。

すべての文字を指すワイルドカード「*」

 「@」より前を取り出すのは『「@」より後ろをすべて削除する』のと同じ意味です。[検索と置換]ダイアログボックスで一気に解決しましょう。検索キーワードとしてワイルドカードの「*」(アスタリスク)を組み合わせます。

メールアドレス(C列)のデータをコピーしておきます(③)。貼り付け後に[Ctrl]+[H]キーを押して(④)、[検索と置換]ダイアログボックスを表示します。[検索する文字列]に「@*」と入力します(⑤)。[置換後の文字列]は空欄のままです。[すべて置換](⑥)をクリックします
置換した件数が表示されます。[OK](⑦)をクリックします。[検索と置換]ダイアログボックスの[閉じる]をクリックしておきます
「@」以降の文字列を削除できました

「フラッシュフィル」で解決

 「-」に挟まれた文字列を抜き出す場合は[検索と置換]ダイアログボックスよりも「フラッシュフィル」をおすすめします。ショートカットキーは[Ctrl]+[E]です。一瞬で処理が完了します。

取り出したい文字列をサンプルとして入力しておきます(⑧)。このまま[Ctrl]+[E]キーを押します(⑨)
一瞬で2つの「-」の間の文字列を取り出せました

 データによって、1,2つのサンプルを入力する必要がありますが、複雑な関数を使うより圧倒的に簡単ですよね。先ほどの「@」より前を取り出す例でも「フラッシュフィル」は利用できます。

エクセルの標準機能を使いこなそう

 データが追加されていくような表では関数のほうが便利かもしれませんが、目の前にあるデータを処理したい時にはエクセルの標準機能も便利です。状況に応じて使い分けられるようにぜひ覚えておいてください。