ラベルラベル

文字列入門

SUBSTITUTE関数を見て理解する

文字列の中の指定した文字列を、別の文字列へ置き換える関数です。

3つのポイント

  1. 置換したい元の文字列を指定する
  2. 探す文字列と置換文字列を指定する
  3. 必要なら何番目の一致だけを置き換える
例題

2番目に一致する文字列だけを置き換える

サンプル数式

  • 文字列
  • 検索文字列
  • 置換文字列
  • 何番目

この教材では、ExcelとGoogle スプレッドシートで文字数・位置の扱いが一致する範囲を対象にしています。一部の絵文字や特殊文字は対象外です。これは教材側の対応範囲であり、ExcelやGoogle スプレッドシート自体のエラーを示すものではありません。

文字位置(番号は1から。検索では見つかった開始位置を示します)

  1. 1: 東
  2. 2: 京
  3. 3: -
  4. 4: 東
  5. 5: 京
  6. 6: -
  7. 7: 東
  8. 8: 京

いまの結果:

東京-大阪-東京
計算結果
結果セル:E2
入力・条件:4項目
  • 文字列A2:「東京-東京-東京」
  • 検索文字列B2:「東京」
  • 置換文字列C2:「大阪」
  • 何番目D2:2
この結果になる理由

指定した文字列の置換条件を適用した結果です。

サンプルデータ

元の文字列を変えてみよう

※ Excel と Google スプレッドシートで結果や挙動が異なる場合、Excel の仕様を基準にしています。

「2番目に一致する文字列だけを置き換える」のサンプルデータ。引数番号は正式引数と教材要素の対応、小さな角丸数字は処理順を表します。
ABCDE
1元の文字列検索文字列置換文字列何番目結果
2東京-大阪-東京
文字列検索文字列置換文字列何番目結果セル
①・②・③・④ 正式引数 / 教材要素1–5 処理の流れ

A2、B2、C2、D2に値を入力すると、結果と処理順が変わります。

4つの引数

色付きの丸数字は、サンプル数式と引数ガイドで同じ引数を示しています。表にも同じ番号があれば、その引数で指定しているセルを示します。

  1. A2表のセル: A2

    置換対象となる元の文字列です。この例ではA2の「東京-東京-東京」を使います。

  2. B2表のセル: B2

    置き換える対象の文字列です。この例ではB2の「東京」を探します。

  3. C2表のセル: C2

    置き換え後の文字列です。この例ではC2の「大阪」を使います。

  4. D2表のセル: D2

    何番目の一致だけを置き換えるか指定します。この例では2番目を指定します。

この数式を日本語にすると

A2の「東京-東京-東京」からB2の「東京」を探し、D2で指定した2番目だけをC2の「大阪」へ置き換えて、E2に「東京-大阪-東京」を表示します。

この説明は、最初に表示されているサンプルデータをもとにしています。入力値を変更しても説明文は変わりません。

処理の流れ

手順1〜5を順番に確認しましょう。表内の小さな角丸数字は、対応する手順を示します。

  1. 文字列を確認する

    A2

    文字列: 東京-東京-東京

  2. 検索文字列を確認する

    B2

    検索文字列: 東京

  3. 置換文字列を確認する

    C2

    置換文字列: 大阪

  4. 何番目を確認する

    D2

    何番目(省略時すべて): 2

  5. 一致した文字列を置換する

    E2

    結果は「東京-大阪-東京」です。E2に表示します。

対応アプリ

  • Excel
  • Google スプレッドシート

関数自体が対応するアプリです。教材例の数式や再計算が、両アプリで同じように動くことを保証するものではありません。

この例の注意点

  • instance_numを指定すると、左から数えてその番号の一致だけを置き換えます。
  • SUBSTITUTEは文字の位置ではなく、指定した検索文字列との一致を使って置換します。

一般構文

対応:Excel / Google スプレッドシート ・ 構文:引数名に差あり

  • instance_numに0を指定したケースでは、SUBSTITUTE("😀-😀","😀","X",0)でExcel 2021は#VALUE!、Google スプレッドシートはX-Xを返しました。

Excel

=SUBSTITUTE(text, old_text, new_text, [instance_num])

[] は省略できる引数です。

省略時

instance_num
省略すると、該当する文字列をすべて置換します。

Google スプレッドシート

=SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])

[] は省略できる引数です。

省略時

occurrence_number
省略すると、一致する文字列をすべて置換します。
公式資料・確認範囲

公式資料

実機確認

  • Excel 2021 / Google スプレッドシート計算結果・入力の扱い・エラーを確認済み

未確認

配列展開

次に学ぶ関数

カテゴリから探す

次に学ぶおすすめ関数はありません。カテゴリから探しましょう。

カテゴリを見る