0
0

Excelで文字列の中から特定の文字より左側(手前まで)を抜き出す

Posted at

はじめに

業務で、タイトルに書いたことをやりたい場面がありました。
例えば、index.htmlという文字列から、"."より手前の文字列(index)を抜き出すということです。
残しておきます。

数式

数式はこんな感じです。

=LEFT(${参照セル},FIND("${文字}",${参照セル})-1)

例えば、A1セルに入力された文字列から、"."より手前の文字列を抜き出す場合はこうなります。

=LEFT(A1,FIND(".",A1)-1)

実行例

A1のセルに記載されたindex.htmlという文字列から"."より左側の文字列(index)を抜き出します。

A1セルには「index.html」という文字列が入力されています。
image.png

A3セルに数式を入力してEnterを叩くと"index"が抽出されました。
image.png

"."が複数ある場合は、左から1番目の"."から左側を抽出します。
image.png

カラクリ

この数式はLEFT関数とFIND関数が組み合わさっています。

LEFT関数

文字列の先頭から、指定する文字数までを抜き出す関数です。
↓A1セル(index.html)から3文字目まで抽出
image.png

FIND関数

文字列の中から、特定の文字が何番目に出てくるのかを教えてくれる関数です。
3つ目の引数は、「何文字目から探し始めるか?」を設定します。
↓A1セル(index.html)で"."は何文字目か。
image.png

LEFT関数+FIND関数

もう1度式を見てみます。

=LEFT(A1,FIND(".",A1)-1)

LEFT関数の2番目の引数に"FIND(".",A1)-1"が入っています。

"FIND(".",A1)"の結果は6になります。
※FIND関数の3つ目の引数を省略すると暗黙的に1が入ります。

そこから-1することによって5となり、「指定した文字より手前まで」を抽出できます。
=LEFT(A1,5)

AdobeStock_483074769.jpeg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0