Excel関数 逆引き集 | 特定文字を置換 → SUBSTITUTE

Excel
スポンサーリンク

概要

「’(株)’ を ‘株式会社’ に統一したい」
「’-‘ を ‘/’ に変えたい」
「全角の記号を半角にしたい」

こういう “特定の文字や文字列を、別のものに置き換えたい” ときに使うのが
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, " ", "")))
  1. SUBSTITUTE(A2, “ ”, “”)
    → 全角スペースを削除
  2. CLEAN(…)
    → 改行やタブなど制御文字を削除
  3. 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引数で何回目かを指定する」「空文字 “” に置き換えて削除する」という発想を足していくだけで、
略称の展開、記号の統一、不要文字の削除、改行やスペースの整形など、
実務で頻発する“文字の置き換え”パターンをほぼすべてカバーできるようになります。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました