いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)LEFT関数で指定した数の文字を抽出する

 GoogleスプレッドシートのLEFT関数を使って、テキストの先頭から指定した文字数を抽出する方法についてです。

  • 「=LEFT(テキスト,文字数)」という式で、テキストのうち(左から数えて)指定した文字数を抽出することができます。
  • FIND関数などと組み合わせて「○○という文字(列)までを抽出する」というのが常套手段です。

使用例

 次の画像ではC3セルにLEFT関数を使った式を入力し、B3セルのテキストのうち最初の3文字(左から数えて3文字)を抽出しています。


 C3セル

=LEFT(B3,3)

 第1引数で対象となるテキストを、第2引数で抽出する文字数を指定して文字列を抽出しています。



 上記の式を下方にコピーした結果です。
 テキストの長さが指定した文字数より短い場合はテキスト全体が抽出され、そもそもテキストが空白セル(未入力状態)であれば空文字列(長さ0の文字列)が返ってきます。



 第2引数を省略した場合は、最初の1文字を取得できます。なんてことはありませんが単純に「=LEFT(テキスト)」と指定すれば最初の1文字が取得できるというわけです。

構文

 LEFT関数の構文は次のとおりです。第2引数は省略でき、その場合は1(1文字)を指定したものとみなされます。

LEFT(文字列[, 文字数])

応用例

FIND関数などと組み合わせて特定の文字までを抽出する

 LEFT関数自体の機能は単純ですが、他の関数と組み合わせることで、「テキスト中の特定の文字(列)までを抽出する」というのがよくある使い方です。
 次の画像では、FIND関数を使ってテキスト中の「県」が何文字目なのかを求め、それをLEFT関数と併用することで県名を求めています。

 C3セル(下方にコピー)

=LEFT(B3,FIND("県",B3))

 
 FIND関数はテキスト中の特定の文字(列)が何文字目にあるかを返す関数ですので、このように組み合わせることでテキスト中の「県」までの内容を得ることができます。



 この例ではさらに工夫して、テキストから「都道府県名」を求めています。


 C3セル(下方にコピー)

=LEFT(B3,IF(MID(B3,4,1)="県",4,3))

 IF関数とMID関数を併用して、「もし4文字目が『県』だったら最初の4文字を、そうでなかったら最初の3文字を抽出する」ということを行っています。
 都道府県名が4文字であるケースは「神奈川県」「和歌山県」「鹿児島県」に限られますので、4文字目が「県」だったら最初の4文字を抽出すればよく、それ以外の場合は最初の3文字を抽出すればどのような都道府県名でも抽出できる、というわけです。


 ただ、1つ上の画像の例では県名が「しずおか県」などと記されている場合でも抽出できますが、この式ではうまく抽出できません。地名がすべて漢字で書かれている、という前提に頼っているゆえの弱点といえます。