2018年11月12日月曜日

Excel: LEFT関数(文字列抽出)

Excel: LEFT関数(文字列抽出)
抽出したい文字数が固定の場合
特定の2文字を抽出したいなど取り出したい文字数が決まっている場合、取り出したい位置によって3つの関数を使い分けます。
文字列の先頭から抽出する場合はLEFT関数
左側から文字列を取り出すときは、LEFT関数を使います。
この関数は「=LEFT(文字列,[文字数])」で構成され、文字列の先頭から指定された数の文字を返します。
[文字数]は省略することができ、その際は文字列の先頭1文字が出力されます。
LEFT関数を入力するB2セルに入力されている「ABCDEFG」という文字列から、先頭2文字を取り出してC2セルに表示する場合、C2セルに『=LEFT(B2,2)』と入力します。
LEFT関数の出力結果文字列の先頭から2文字の「AB」がC2セルに抽出されました。
文字列の最後から抽出する場合はRIGHT関数
右側から文字列を取り出す場合は、RIGHT関数を使います。
この関数は「=RIGHT(文字列,[文字数])」で構成され、文字列の末尾から指定された数の文字を返します。[文字数]は省略することができ、その際は文字列の最後から1文字が出力されます。
RIGHT関数を入力するB2セルに入力されている「ABCDEFG」という文字列の最後から2文字を取り出してC2セルに表示する場合、C2セルに『=RIGHT(B2,2)』と入力します。

Office Hack
https://office-hack.com/excel/string-extraction/




「=LEFT(文字列,[文字数])」
C2「=LEFT(B2,2)」=B2セルに入力されている文字列から先頭2文字を取り出してC2セルに表示

Office Hack
https://office-hack.com/excel/string-extraction/





特定の文字の前までを取り出す
■やりたいこと
下記のような文字列がたくさんあって、カッコの前まで取り出したい場合
=================================
お知らせ(23)
日記(384)
お詫び(2564)
猫(15048)
=================================
↓ こうしたい
=================================
お知らせ
日記
お詫び

=================================
■書き方(A1に文字列がある例)
=LEFT(A1,FIND("(",A1)-1)
説明
LEFTは先頭から指定されたところまで取り出せる関数。
LEFT(文字列, 文字数)
=LEFT("お知らせ(23)", 4)
とすると、先頭から4文字目までの「お知らせ」が取り出せる。
FINDは検索した文字が文字列の何番目に最初に出てくるかを取り出せる関数。
FIND(検索文字列, 対象, [開始位置])
=FIND("(", "お知らせ(23)")
とすると ( がある位置は先頭から5文字目なので「5」が取り出せる。
=LEFT(A1,FIND("(",A1)-1)
よって、FINDで ( が最初に出てくる場所を取り出して
そこからマイナス1して ( の1つ前の場所の文字数を指定してあげて
LEFTでその文字数までを取り出す
という仕組みになっていることがわかる。
■余談
=FIND("(", "お知らせ(23)お知らせ(23)", 9)
とすると、検索開始位置が9文字目(ここでは2番目の お )からになり
最初の ( は、検索範囲に入らなくなる。
つまり、9文字目以降で ( がある位置は先頭から13文字目なので
「13」が取り出せる。
■余談2
お知らせ(1)(23)
お知らせ(2)(23)
日記(3)(384)
とかあって、(1)(2)(3)は残したいときはちょっと困ることになる。
どうしたらいいかはまた機会があった時にでも調べる。
コメントで教えていただいたので追記します。
=LEFT(A1,FIND("(",A1,FIND("(",A1)+1)-1)
とすると、検索開始位置を ( が最初に出てきた場所の次の場所に指定することができる。
■余談3
=LEFT(B2,2)
「=LEFT(文字列,[文字数])」
C2「」=B2セルに入力されている文字列から先頭2文字を取り出してC2セルに表示

Qiita
https://qiita.com/yuwaita/items/b7445bcc7b09c143fcf7


0 件のコメント:

コメントを投稿