Excelで特定の文字・記号より左の(頭の)文字列だけを抽出する方法/Find・Left関数の組み合わせ方

knitted IT

定番の組み合わせで、たとえば文中の空白より左の文字列だけを取り出す、といった使い方ができます。
ちなみに、都道府県だけ抜き出す場合は別のやりかたもあります。

Advertisements

Find関数の使い方

Find関数は、指定した文字がセルの何文字目にあるかを教えてくれる関数です。

文字列が何文字目にあるか調べる
Find(“文字列”,対象)
findleft1
=Find(“ ”,A1)
A1の左から数えて最初の半角スペース「 」の位置を返す)と入力し、作成した式をオートフィルで下まで伸ばします。
findleft2
それぞれ左から数えてスペースが何文字目にあるかが数値で返されます。
findleft3
条件を「/」にすると、戻り値も変化します。

Left関数の使い方

Left関数は、指定したセルの左から、指定した数分だけ文字列を抜き出す関数です。

文字列を左から抜き出す
Left(対象,文字数)
findleft4
=Left(A1,3)
(A1の左から3つ分の文字列を抽出する)と入力します。
findleft5
それぞれ左から3つ分の文字列が返されました。

Find関数とLeft関数の組み合わせ

ここからが本題ですが、上の表で空白より左の文字列だけを取得するには、Find関数で抜き出した「 」の位置から1を引いた数分の文字列を、Left関数で抽出すればいいことになります。

findleft6
=Left(A1,B1-1)
A1からB1で取得した数-1分の文字列を左から抽出)と入力します。
findleft7
下までオートフィルしてみます。「 」より前の文字列だけが抜き出せました。
findleft8
せっかくなので、B1セルのFind関数をC1セルに組み込んで、ひとつのセルにまとめてしまいましょう。
B1セルを選択し、=以外のFind関数を全てコピーします。
findleft9
今度はC1セルに移動し、先ほどのFind関数が入力されている「B1」を選択します。
findleft10
コピーしたFind関数をペーストします。
findleft11
すると結果としては先ほどと同じ戻り値になりますが……。
findleft12
ひとつのセルでFind関数~Left関数までまとまっているので、表がスッキリします。

ただちょっと複雑にはなるので、可読性を優先するならあえて両方残したほうがいい場合もあります。このへんはお好みで。

やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント