概要
「’(株)’ を ‘株式会社’ に統一したい」
「’-‘ を ‘/’ に変えたい」
「全角の記号を半角にしたい」
こういう “特定の文字や文字列を、別のものに置き換えたい” ときに使うのが
SUBSTITUTE 関数(サブスティテュート) です。
一言で言うと、
「文字列の中の A を、B に入れ替える関数」
と考えてください。
SUBSTITUTE の基本形
基本の書式
SUBSTITUTE の型はこうです。
=SUBSTITUTE(文字列, 置き換え前, 置き換え後, [置き換える回数])
それぞれの意味を、初心者向けにかみ砕くとこうなります。
- 文字列
「どのセルの中身を置き換えるか」です。
例:A2、”A-B-C” など。 - 置き換え前
「何を探して、置き換え対象にするか」です。
例:”-“、”(株)”、”円” など。 - 置き換え後
「何に変えるか」です。
例:”/”、”株式会社”、””(空文字=削除)など。 - 置き換える回数(省略可)
「何回目だけ置き換えるか」です。
省略すると「すべて」を置き換えます。
最初は「置き換える回数」は無視して
「=SUBSTITUTE(文字列, 置き換え前, 置き換え後)」
の3つだけで考えると楽です。
よく使う基本パターン
文字を一括で置き換える(全部変える)
A2 に「2024-01-05」という文字列が入っています。
この中の 「-」 を 「/」 に変えて、「2024/01/05」にしたいとします。
式はこうなります。
=SUBSTITUTE(A2, "-", "/")
ポイントは、
「A2 の中にある ‘-‘ をすべて ‘/’ に置き換える」
という動きになることです。
結果:2024/01/05
文字を削除する(空文字に置き換える)
SUBSTITUTE は「削除専用」ではありませんが、
「空文字 “” に置き換える」ことで、実質的に削除ができます。
A2 に「商品A-01」と入っていて、「-」だけ消したいとします。
=SUBSTITUTE(A2, "-", "")
結果:「商品A01」
同じように、
全角スペースを削除したいときは
=SUBSTITUTE(A2, " ", "")
のように書けば OK です。
短い表記を正式名称にする
A2 に「(株)エクセル」と入っているとして、
「(株)」を「株式会社」に変えたい場合。
=SUBSTITUTE(A2, "(株)", "株式会社")
結果:「株式会社エクセル」
こういう「略称 → 正式名称」の置き換えは実務でもよく使います。
部分的にだけ置き換える(4番目の引数の使い方)
書式の「[置き換える回数]」とは?
SUBSTITUTE には第4引数として
=SUBSTITUTE(文字列, 置き換え前, 置き換え後, 置き換える回数)
と書けます。
「置き換える回数」は
「文字列の中で、何番目に出てきたものだけ置き換えるか」
を指定します。
例:2つ目のハイフンだけ別の文字にしたい
A2 に「2024-01-05」と入っていて、
2つある「-」のうち、2つ目だけを “/” に変えたいとします。
1つ目:2024-
2つ目:01-05 のところの「-」
この場合はこう書きます。
=SUBSTITUTE(A2, "-", "/", 2)
意味は「A2 の中の ‘-‘ のうち、2回目のものだけ ‘/’ に変える」です。
結果:「2024-01/05」
「何回目だけ変える」というコントロールができるのが、4番目の引数です。
実務でよくある置換パターン
全角記号を半角記号に揃える
A2 に「123-456-7890」(全角数字+全角ハイフン)が入っていて、
ハイフンだけ半角にしたい場合。
=SUBSTITUTE(A2, "-", "-")
全角スペースを半角スペースにしたい場合はこうです。
=SUBSTITUTE(A2, " ", " ")
そのうえで TRIM と組み合わせて空白を整える、という流れがよく使われます。
数値の単位を削除する(”円” を取るなど)
A2 に「12345円」という文字列が入っていて、
「円」を取り除いて「12345」だけにしたい場合。
=SUBSTITUTE(A2, "円", "")
そのあと、数値として計算したければ、
VALUE 関数を組み合わせます。
=VALUE(SUBSTITUTE(A2, "円", ""))
こうして「文字列の金額」を「数値の金額」に変換できます。
改行をスペースやカンマに変える
セル内改行(Alt+Enter)を「スペース」や「カンマ」に変えたいときは
改行コード CHAR(10) を「置き換え前」として指定します。
A2 に
Excel
関数
講座
(改行入り)
が入っているとして、改行をスペースに変えるならこうです。
=SUBSTITUTE(A2, CHAR(10), " ")
結果:「Excel 関数 講座」
改行をカンマにしたければ、
=SUBSTITUTE(A2, CHAR(10), ",")
と書くだけです。
TRIM や CLEAN との組み合わせ
全角スペース/半角スペース/改行をまとめて整える例
「全角スペースを消して、制御文字も消して、前後の空白も整えたい」
そんな“お掃除フルコース”では、SUBSTITUTE と他の関数を組み合わせます。
例えば A2 に「 Excel 関数↵」(全角スペース+半角スペース+改行)があるとします。
全角スペース削除 → 制御文字削除 → 前後の空白整理
という流れは次のように書けます。
=TRIM(CLEAN(SUBSTITUTE(A2, " ", "")))
- SUBSTITUTE(A2, “ ”, “”)
→ 全角スペースを削除 - CLEAN(…)
→ 改行やタブなど制御文字を削除 - TRIM(…)
→ 余計な半角スペースを整理
SUBSTITUTE は「何を何に変えるか」の主役、
TRIM や CLEAN は「空白や制御文字を整える脇役」として覚えておくと整理しやすいです。
例題
問題1
A2 に「2024-01-05」という文字列が入っています。
この中の「-」をすべて「/」に置き換えて、「2024/01/05」にしたいです。
SUBSTITUTE を使った式を書いてください。
=SUBSTITUTE(A2, "-", "/")
問題2
A2 に「商品A-01」という文字列が入っています。
この中の「-」を削除して、「商品A01」にしたいです。
SUBSTITUTE を使った式を書いてください。
=SUBSTITUTE(A2, "-", "")
問題3
A2 に「(株)エクセル」という文字列が入っています。
「(株)」を「株式会社」に置き換えて、「株式会社エクセル」と表示したいです。
SUBSTITUTE を使った式を書いてください。
=SUBSTITUTE(A2, "(株)", "株式会社")
問題4
A2 に「2024-01-05」という文字列が入っています。
2つある「-」のうち、2つ目だけを「/」に置き換えて、「2024-01/05」にしたいです。
SUBSTITUTE の第4引数(置き換える回数)を使った式を書いてください。
=SUBSTITUTE(A2, "-", "/", 2)
問題5
A2 に複数行のテキストが入っており、セル内改行(CHAR(10))が含まれています。
この改行を半角スペースに置き換えて、1行の文章にしたいです。
SUBSTITUTE を使った式を書いてください。
=SUBSTITUTE(A2, CHAR(10), " ")
SUBSTITUTE の本質は、たったこれだけです。
=SUBSTITUTE(文字列, 「何を」, 「何に」)
ここに「第4引数で何回目かを指定する」「空文字 “” に置き換えて削除する」という発想を足していくだけで、
略称の展開、記号の統一、不要文字の削除、改行やスペースの整形など、
実務で頻発する“文字の置き換え”パターンをほぼすべてカバーできるようになります。
