【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。毎週木曜日更新。
過去の記事一覧はこちら【エクセル時短まとめ】

  • 「氏名」から名字だけを取り出す
  • 「メールアドレス」の「@」より前だけを取り出す
  • 「商品コード」の「-」より前だけを取り出す

Excelでこうした作業、ときどきありますよね。「数か所だから手動でやってしまおう」という気持ちも分かりますが、1つずつコピペしていく作業が積もり積もって、時間のロスにつながってしまいます。

上記の作業における共通点は、「文字列の分割」で解決できるということです。【エクセル時短】第8回では、文字列の分割をすばやく正確に行える「LEFT」(レフト)関数と「FIND」(ファインド)関数のワザを解説します。

LEFT関数とFIND関数の機能を理解する

最初に、LEFT関数とFIND関数についておさらいしておきます。

LEFT文字列, 文字数

LEFT関数は、1つ目の引数[文字列]の左から、2つ目の引数[文字数]で指定した文字数分の文字列を取り出します。半角と全角は区別しません。

FIND検索文字列, 対象, 開始位置

FIND関数は、1つ目の引数[検索文字列]が、2つ目の引数[対象]のうち、3つ目の引数[開始位置]から何文字目にあるかを調べます。[開始位置]を省略した場合は、先頭から検索します。

まとめると、LEFT関数は「左から指定した文字数分を取り出す」、FIND関数は「指定した文字列が何文字目にあるかを調べる」、という働きをします。

FIND関数をLEFT関数の引数として使う

それでは実際にやってみましょう。メールアドレスの「@」より前を取り出す例で考えてみます。

「@」より前の文字数は不確定ですので、LEFT関数だけではうまくいきません。そこでFIND関数を使い、「@」がメールアドレスの何文字目にあるかを調べます。FIND関数で調べた文字数より前を、LEFT関数で取り出せばいいわけです。

1数式を入力する

エクセル時短:LEFT関数とFIND関数で文字列を分割する

FIND関数でセルC3にある「@」の位置を探し、そのFIND関数の結果を、LEFT関数の2つ目の引数に利用しています。「-1」の意味は後述します。

2メールアドレスの「@」より前を取り出せた

エクセル時短:LEFT関数とFIND関数で文字列を分割する

セルD3の数式をコピーしていくと、ほかのメールアドレスの「@」より前を自動で取り出せます。手作業でコピペするよりも圧倒的に高速です。

セルD3に入力している数式は以下のとおり。

=LEFT(C3,FIND("@",C3)-1)

この例では「@」より前を取り出したいので、「FIND("@",C3)」で調べた「@」の位置から「-1」しているのがポイントです。つまり「FIND("@",C3)-1」が、LEFT関数の2つ目の引数となります。

「氏名」から名字を取り出したいなら、名字と名前を区切っている「 」(全角スペース)などをFIND関数で探せばOKです。ぜひ、ほかの場面でも活用してみてください。