【エクセル】FIND関数とMID、LEFT、RIGHT関数の使い方

ecoslymeです。

仕事中にエクセル(Excel)を利用していて、膨大なデータを加工しなくてはいけない場面に遭遇したことのある方は多いのではないでしょうか。

力技で何とかできる場面もあれば、それが無理な場合もあります。

ですがこの時代、そろそろスマートにデータ処理をして無駄な時間削減していきませんか。

 

そんなわけで、この記事では以下の関数をご紹介したいと思います。

  1. FIND関数
  2. MID関数
  3. RIGHT関数
  4. LEFT関数

 

営業でもデータを処理している時に、欲しい情報がうまく抽出できない時があります。そんな時にこの関数を使えば、欲しい形のデータに一歩近づけることができます。

これらの関数は、直接的に便利なことが出来るというよりも、間接的に便利なことが出来る場面が経験上多いです。

欲しいデータを得るために複数回利用し、他の関数と組み合わせて欲しい形のデータを得ることが出来るようになります。

 

元データと結果

 

FIND関数の使い方

それでは、早速FIND関数についてご紹介していきます。

フィルムという製品がありますが、大きさが厚さが各々違っています。

その名の通り、”見つける”という意味です。欲しい文字がセル内の左から何番目にあるのかを知りたい時に利用します。

B2セルに「 =FIND(“-“,A2,1) 」と入力します。

 

3つのブロックの意味を説明します。

=FIND

(   ” - ”,  A2,  1  )
対象検索文字列開始位置
  • ヒットさせたい文字を入力
  • この時” “ で括ることを忘れずに
  • 対象のセルを選択
  • 基本的には”1“を入力。
  • 何も入力しなくてもOKです。その場合は”1“と認識されます。
下のセルへコピペしていくと、全てが”5″になりました。
これは、A列の商品名の中で、“-“は左から何番目の文字か、ということを教えてくれています。

下の表を見てもわかるように、左から5番目にありますね。

次に、最初の”דが左から何番目にあるかC列に入力してみます。
数式は「 =FIND(“×”,A2,1) 」となります。答えは”12″となりました。

では、2番目の”×”は左から何番目にあるかD列に入力してみます。
ここが一番の問題です。同じ数式になってしまいそう。。。
もちろん違います。3ブロック目“1”を変更すれば良いだけです。
ここでポイントなのは、”13″と入力しても良いのですが、それだと汎用性がありません。
仮に最初の大きさが”12000000mm”であった場合、”13″と入力してしまったら、上記のFIND関数で拾ってくるのは最初の”×”になってしまいます。
ではどうすれば良いかというと、今出した最初の”×”の文字列より右であれば良いのです。
つまり、3ブロック目は”B2+1“です。この場合であれば、5+1=6になります
数式は「 =FIND(“×”,A2,C2+1) 」となります。 発想が重要ですね。

なお、出てくる数字は一番左から何文字目かということは変わらず、6文字目から数えて何番目かというわけではありませんのでご安心ください。

表を見ても、18文字目、19文字目と別の数字になっていて、ちゃんとできていることが分かりますね。

 

MID関数の使い方

次にMID関数の使い方をご紹介します。

MID関数は、セル内の文字一部だけ抽出することが可能です。

B2セルに「 =MID(A2,1,4) 」と入力します。

 

すると、”フィルム”という文字を抽出することができました。

 

3つのブロックの意味を説明します。

=MID

(   A2,  1,  4  )
対象開始位置文字数
  • 対象のセルを選択
  • 左から何番目の文字から開始するか
  • 何文字抽出するか

上の数式は、A2セルの文字で、左から1番目から4文字抽出してきて、という意味の数式です。

全角半角の区別をしたい場合は、MIDB関数を使用して下さい。全角2文字、半角1文字としてカウントされます。

※正確には2文字ではなく2バイトですが、気にしなくて良いです

 

さて、それでは上で紹介した例題で試してみましょう。フィルムの縦、横、厚さを各々取ってきたいと思います。

縦の長さに関しては、1200mmか2400mmの6文字ですね。上で使用したFIND関数が役に立ちます。

以下の数式になります。

「 =MID(A2,B2+1,6) 」

FIND関数を利用した文字の位置であれば汎用性がありますね。左から6(5+1)文字目から6文字取ってきて下さい、という意味になります。

 

では、横の長さはどうすれば良いでしょうか。

1200mmと600mmで6文字と5文字と文字数が違ってしまっています。

それであれば、数式をうまく工夫します。FIND関数をうまく利用します。

 

2行目の商品に関しては、欲しい文字(1200mm)は左から13文字目〜18文字目の部分です。ちょっとテクニカルなことをします。

6文字 = 18-13+1 = (19-1)-(12+1)+1 = (D2-1)-(C2+1)+1 = D2-C2-1

つまり以下の式になります。

「 =MID(A2,C2+1,D2-C2-1) 」

 

このように変数をうまく利用すれば、欲しいデータだけ抽出することが可能になります。

 

厚みも同様にやってしまいましょう。

厚みに関しては、それより右に文字がないので好きなだけ文字を抽出してOKです。

数式は以下になります。

「 =MID(A2,D2+1,100) 」

 

以上で、欲しい縦横厚みのデータを個別に抽出することができました。

 

RIGHT関数の使い方

MID関数と似たような関数で、RIGHT関数がありますので、こちらも一緒に覚えてしまいましょう。

皆さんの予想通り、右から指定した文字数を抽出してきてくれる関数です。

 

上の最後の例では、実はRIGHT関数を入力すれば一発です。

「 =RIGHT(A2,3) 」

 

2つのブロックの意味を説明します。

=RIGHT

(   A2,  3  )
対象文字数
  • 対象のセルを選択
  • から何文字抽出したいか入力

ちなみに以下のようになります。結果はMID関数で抽出した厚みともちろん同じです。

 

 

LEFT関数の使い方

RIGHT関数があれば、もちろんLEFT関数もあります。こちらもセットで覚えましょう。

皆さんの予想通り、左から指定した文字数を抽出してきてくれる関数です。

 

一応説明を記載します。

2つのブロックの意味を説明します。

=LEFT

(   A2,  3  )
対象文字数
  • 対象のセルを選択
  • から何文字抽出したいか入力

ちなみにですが、MID関数はLEFT関数とRIGHT関数を2つ組み合わせれば同じ機能ができます。

下の表をご確認下さい。

 

ご覧頂ければ分かると思いますが、B2セルとB4セルの文字が同じですね。

どの関数を使用したほうがデータ抽出で一番早く対応できるかは、お好みでお考え下さい。

 

最後に

いかがでしたでしょうか?

FIND関数MIDLEFTRIGHT関数が使えると思った場面があるのではないでしょうか。

冒頭でも言いましたが、これらの関数はサブキャラとしてかなり使えます。欲しい資料の形に無理やり変更する時に使えるという場面が多いです。

応用を効かせることが可能なので、今一度ご自分で日々作成している資料を見直し、別の記事で紹介しているピボットテーブルと相性の良い形に変換できないか考えてみるのも良いかと思います。

関連記事

ecoslymeです。この記事では、ピボットテーブルの基本的な使い方を説明します。ピボットテーブル(Pivot Table)はエクセル(Excel)の中にある機能です。エクセルで、データがたくさん羅列してあって見づらいと思ったり[…]

 

皆さんの日々の業務が効率化されることを切に願っております。