Excel文字列関数まとめ|取り出す・つなげる・置き換えるを目的別に早見表つきで解説【保存版】
「住所から都道府県だけ取り出したい」
「姓と名を1つのセルにまとめたい」
「余計なスペースを消したい」
こうした文字を加工する処理を担当するのが文字列関数です。数はかなりありますが、役割は5つに分けられます。
この記事では、やりたいこと別の早見表から入り、実務でよく使う組み合わせまでをまとめます。
まず結論:やりたいこと → 使う関数 早見表
| やりたいこと | 使う関数 |
|---|---|
| ① 取り出す | |
| 左から○文字 | LEFT |
| 右から○文字 | RIGHT |
| 途中から○文字 | MID |
| ② つなげる | |
| 単純に結合 | &(演算子)/CONCAT |
| 区切り文字を入れて結合 | TEXTJOIN |
| ③ 置き換える | |
| 文字を指定して置換 | SUBSTITUTE |
| 位置を指定して置換 | REPLACE |
| ④ 探す・数える | |
| 文字の位置を探す(大小区別あり) | FIND |
| 文字の位置を探す(区別なし・ワイルドカード可) | SEARCH |
| 文字数を数える | LEN |
| ⑤ 整える | |
| 余分なスペースを削除 | TRIM |
| 改行など見えない文字を削除 | CLEAN |
| 全角→半角/半角→全角 | ASC / JIS |
| 表示形式を文字列にする | TEXT |
| 同じ文字を繰り返す | REPT |
| 2つの文字列が同じか判定 | EXACT |
① 取り出す:LEFT・RIGHT・MID
この3つは「どこから」が違うだけです。
=LEFT(A1, 3) 左から3文字 =RIGHT(A1, 4) 右から4文字 =MID(A1, 4, 2) 4文字目から2文字
MIDだけ引数が3つで、「開始位置」と「文字数」を指定します。
実務例:郵便番号から上3桁を取り出す
=LEFT(A1, 3) → 「123-4567」から「123」
文字数が決まっていないときは FIND と組み合わせる
「-」より前を取り出したいが、文字数はバラバラ——という場合です。
=LEFT(A1, FIND("-", A1) - 1)
FINDが「-」の位置を返し、その1つ手前まで取り出すという考え方です。この組み合わせは非常によく使います。
② つなげる:& と TEXTJOIN
基本は & でいい
=A1 & B1 =A1 & " " & B1 間にスペースを入れる
2〜3個をつなぐだけなら、&(アンパサンド)が最も手軽です。
数が多いなら TEXTJOIN
=TEXTJOIN(", ", TRUE, A1:A10)
第2引数を TRUE にすると空白セルを飛ばして結合します。これが非常に便利で、CONCATや&では区切り文字だけが並んでしまう場面を解決できます。
A1:A10のうち3つだけ入力されている場合、TEXTJOINなら「東京, 大阪, 福岡」ときれいに並びます。
③ 置き換える:SUBSTITUTE が主役
=SUBSTITUTE(A1, "株式会社", "")
「株式会社」を空文字に置き換える=削除するという書き方です。会社名の整形などで多用します。
SUBSTITUTE と REPLACE の違い
| 指定するもの | 使う場面 | |
|---|---|---|
| SUBSTITUTE | 置き換える文字そのもの | ほとんどはこちら |
| REPLACE | 開始位置と文字数 | 位置が決まっているとき |
迷ったらSUBSTITUTEを使えば大丈夫です。
④ 数える:特定の文字が何個あるか
「セルの中に『,』が何個あるか数えたい」——よくある要望ですが、専用の関数はありません。LENとSUBSTITUTEを組み合わせて求めます。
=LEN(A1) - LEN(SUBSTITUTE(A1, ",", ""))
LEN(A1)… 元の文字数SUBSTITUTE(A1, ",", "")… 「,」を全部消した文字列- その差が「,」の個数
「消す前」と「消した後」の文字数の差を取る——この発想は他の場面でも応用が利きます。
2文字以上の単語を数えるとき
単語の文字数で割ります。
=(LEN(A1) - LEN(SUBSTITUTE(A1, "東京", ""))) / 2
「東京」は2文字なので、差を2で割れば出現回数になります。
⑤ 整える:TRIM は最初にかけておく
TRIMは余分なスペースを取り除く関数です。
=TRIM(A1)
VLOOKUPが#N/Aになる、COUNTIFの件数が合わない、重複が正しく除去できない——その多くが前後の空白です。
他システムやWebからコピーしたデータは、まずTRIMをかける習慣をつけると事故が減ります。
なお、TRIMで消えるのは半角スペースです。全角スペースが混ざっている場合は、SUBSTITUTEと組み合わせます。
=TRIM(SUBSTITUTE(A1, " ", " "))
改行やタブなど目に見えない制御文字が入っている場合はCLEANを使います。
実務でよく使う組み合わせ
姓と名を分ける(間にスペースがある場合)
姓:=LEFT(A1, FIND(" ", A1) - 1)
名:=MID(A1, FIND(" ", A1) + 1, LEN(A1))
スペースの位置をFINDで見つけ、その前後を取り出しています。
ファイル名から拡張子を取り出す
=RIGHT(A1, LEN(A1) - FIND("*", SUBSTITUTE(A1, ".", "*", LEN(A1) - LEN(SUBSTITUTE(A1, ".", "")))))
やや複雑ですが、「最後のピリオド」を特殊文字に置き換えてから探すという定番の手法です。SUBSTITUTEの第4引数で「何番目を置き換えるか」を指定できることを利用しています。
数値を文字列として表示形式つきで扱う
=TEXT(A1, "#,##0円") → 1,234円 =TEXT(A1, "yyyy年m月d日") → 2026年8月22日
TEXT関数は、結合するときに書式を保ちたい場面で効きます。=A1&"円" だと桁区切りが消えてしまいますが、TEXTなら維持されます。
よくあるつまずき
FINDでエラーになる
探す文字が見つからないと #VALUE! エラーになります。存在しない可能性があるなら、IFERRORで包んでください。
=IFERROR(FIND("-", A1), 0)
FINDとSEARCHはどちらを使う?
| 大文字・小文字 | ワイルドカード | |
|---|---|---|
| FIND | 区別する | 使えない |
| SEARCH | 区別しない | 使える |
厳密に一致させたいならFIND、ゆるく探したいならSEARCHです。
結合したら日付が数字になった
=A1&"締切" のように結合すると、日付がシリアル値(45000のような数字)になります。TEXT関数で書式を指定してください。
=TEXT(A1, "m月d日") & "締切"
全角と半角が混在して一致しない
ASC(全角→半角)またはJIS(半角→全角)でどちらかに揃えてから比較します。
まとめ
- 文字列関数は①取り出す ②つなげる ③置き換える ④探す・数える ⑤整えるの5つに分けて覚える
- 取り出すのはLEFT / RIGHT / MID。FINDと組み合わせると文字数が可変でも対応できる
- 結合は&で十分。数が多いならTEXTJOIN(空欄を飛ばせるのが利点)
- 置換はSUBSTITUTEが主役。REPLACEは位置指定が必要なときだけ
- 特定の文字を数えるには LEN と SUBSTITUTE の差を取る(専用関数はない)
- TRIM は最初にかける習慣を。VLOOKUPの#N/Aやカウントのズレは、多くが見えないスペースが原因
- 結合で日付や桁区切りが崩れるときはTEXT関数で書式を指定する
関連記事:Excel検索・参照関数まとめ/Excel情報関数まとめ/Excelの数学・三角関数まとめ







