文字列の「初め」に現れる半角スペースより「後の文字列」を抽出
=MID(A1, FIND(” “, A1) + 1, LEN(A1))
文字列の「最後」に現れる半角スペースより「前の文字列」を抽出。
=LEFT(A1, FIND(“#”, SUBSTITUTE(A1, ” “, “#”, LEN(A1) – LEN(SUBSTITUTE(A1, ” “, “”)))) – 1)
「特定の記号や文字列」より「前」の文字列を抽出。
=IFERROR(LEFT(A1, FIND(“★”, A1) – 1), A1)
目次
文字列の「最初の半角スペース」より「後の文字列」を抽出したい。
関数で得られる結果
文字列の「初め」に現れる半角スペースより「後の文字列」を抽出
A列 | 結果 |
---|---|
Intel Xeon W 11865MRE 2.60GHz | Xeon W 11865MRE 2.60GHz |
Intel Xeon W 1270E 3.40GHz | Xeon W 1270E 3.40GHz |
Xeon W 11555MRE 2.60GHz | W 11555MRE 2.60GHz |
Core i7 10700E 2.90GHz | i7 10700E 2.90GHz |
Intel Core i9 10900TE 1.80GHz | Core i9 10900TE 1.80GHz |
関数
=MID(A1, FIND(" ", A1) + 1, LEN(A1))
解説
FIND(" ", A1)
A1
内の 最初の半角スペースの位置 を取得。
MID(A1, FIND(" ", A1) + 1, LEN(A1))
FIND
で取得した位置+1
から文字列を抽出(半角スペースの直後から開始)。
文字列の最後の「/」より後ろの文字列を抽出。URL処理などに。
関数で得られる結果
文字列の「一番最後」の記号(例では「スラッシュ:/」)より「後の文字列」を抜き出します。
サンプルテキストでの置換例:
A列 | 結果 |
---|---|
https://www.test.com/files/d/33008.html | 33008.html |
https://www.example.com/docs/sample_file.pdf | sample_file.pdf |
https://www.testsite.com/images/pic123.jpg | pic123.jpg |
使用例:URLやパスから最後の「/」以降のファイル名やパスを抽出。
関数
=RIGHT(A1,LEN(A1)-FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/","")))))
解説:
SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/","")))
→ 文字列内で最後の「/」を「~」に置き換えます。FIND("~", ...)
→ 置き換えた「~」の位置を探す。LEN(A1) - FIND("~", ...)
→ 文字列の長さから最後の「/」の位置を引いた値を使って、最後の「/」より後ろの文字数を求める。RIGHT(A1, ...)
→ 最後の「/」以降の文字列を抽出。
文字列の「最後」に現れる半角スペースより「前の文字列」を抽出。
関数で得られる結果
A列の文字列の、最後の空白(半角スペース)より前の文字列を抜き出す
A列 | 結果 |
---|---|
Intel Xeon W 11865MRE 2.60GHz | Intel Xeon W 11865MRE |
Intel Xeon W 1270E 3.40GHz | Intel Xeon W 1270E |
Intel Xeon W 11555MRE テストCPU | Intel Xeon W 11555MRE |
Intel Core i7 10700E | Intel Core i7 |
Intel Core i9 10900TE 1.80GHz | Intel Core i9 10900TE |
関数
=LEFT(A1, FIND("#", SUBSTITUTE(A1, " ", "#", LEN(A1) - LEN(SUBSTITUTE(A1, " ", "")))) - 1)
解説
LEN(A1) - LEN(SUBSTITUTE(A1, " ", ""))
A1
内の スペースの数 を取得する。
SUBSTITUTE(A1, " ", "#", LEN(A1) - LEN(SUBSTITUTE(A1, " ", "")))
- 最後の半角スペースを
#
に置換 する。
- 最後の半角スペースを
FIND("#", ...) - 1
#
の位置を取得し、その前の文字列をLEFT
で抽出。
「特定の記号や文字列」より「前」の文字列を抽出したい。
例:文字列に「★」が含まれる場合、「★」より前の文字列を抽出する。
「★」は、記号だけでなく「CPU」や「支店」など文字列に変更可能。
例:
Intel Xeon W 11865MRE★2.60GHz → 「★」より前 → 「Intel Xeon W 11865MRE」
日本東京支店 営業部 →「支店」より前を抽出 → 日本東京
サンプルデータと関数・結果
「★
」より前の文字列を抽出
=IFERROR(LEFT(A1, FIND("★", A1) - 1), A1)
A列 | 結果 |
---|---|
Intel Xeon W 11865MRE★2.60GHz | Intel Xeon W 11865MRE |
AMD Ryzen 7 5800X★3.80GHz | AMD Ryzen 7 5800X |
Apple M2 Max 12-Core GPU★10C | Apple M2 Max 12-Core GPU |
Snapdragon 8 Gen 2 | Snapdragon 8 Gen 2 (変化なし) |
「支店」より前の文字列を抽出
=IFERROR(LEFT(A1, FIND("支店", A1) - 1), A1)
A列 | 結果 |
---|---|
日本 東京支店 〇〇部 | 日本 東京 |
アメリカ NY支店 〇〇部 | アメリカ NY |
日本 大阪 梅田支店 | 日本 大阪 梅田 |
北海道 札幌 すすきの 営業部 | 北海道 札幌 すすきの 営業部 (変化なし) |
解説
FIND("★", A1)
A1
内の「★」の位置を取得。
LEFT(A1, FIND("★", A1) - 1)
- 「★」の 前の文字列 を抽出。
IFERROR(..., A1)
- 「★」がない場合、そのまま
A1
の値を返す。
- 「★」がない場合、そのまま
ポイント
「特定の文字列」が含まれる場合、前の部分だけ抽出して取得。
「特定の文字列」がない場合はそのまま返す。
コメント