ADVERTISEMENT

【Googleスプレッドシート】REPLACE関数で位置指定の置換!固定桁の文字置換に有効

【Googleスプレッドシート】REPLACE関数で位置指定の置換!固定桁の文字置換に有効
🛡️ 超解決

文字列の特定の位置だけを別の文字に置き換えたい場面はありませんか。たとえば電話番号の下4桁を伏せ字にしたい、固定長コードの一部を変更したいといったケースです。GoogleスプレッドシートのREPLACE関数を使えば、開始位置と文字数を指定して正確に置換できます。この記事ではREPLACE関数の基本的な使い方から応用例、注意点までを詳しく解説します。

【要点】REPLACE関数で位置を指定して文字列を置き換える方法

  • 構文 =REPLACE(文字列, 開始位置, 文字数, 新しい文字列): 文字列の指定開始位置から指定文字数を新しい文字列で置き換えます。開始位置は1から数えます。
  • 電話番号の一部をマスクする: =REPLACE(A2,4,4,”****”)で4文字目から4文字を伏せ字にします。固定桁のデータに最適です。
  • エラーを防ぐ開始位置の注意: 開始位置が文字列の長さを超えるとエラーになります。事前にLEN関数で長さを確認すると安全です。

ADVERTISEMENT

REPLACE関数の基本と他の置換関数との違い

REPLACE関数は、文字列中の指定した位置から指定した文字数を、別の文字列で置き換える関数です。構文は=REPLACE(文字列, 開始位置, 文字数, 新しい文字列)となります。第1引数に元の文字列、第2引数に置き換えを開始する位置(1始まり)、第3引数に置き換える文字数、第4引数に新しい文字列を指定します。たとえば=REPLACE("ABCDEF", 2, 3, "XYZ")と入力すると、”A”の次(2文字目)から3文字(“BCD”)が”XYZ”に置き換わり、結果は”AXYZEF”になります。

似た関数にSUBSTITUTEがありますが、SUBSTITUTEは置き換える文字列そのものを指定して一致するものを全て置き換えます。一方REPLACEは位置が重要で、固定長のデータや特定の桁だけを変更したい場合に適しています。REGEXREPLACEは正規表現を使った高度な置換が可能ですが、REPLACEは単純明快な位置指定が強みです。

REPLACE関数の具体的な使い方と応用例

ここでは実際のワークシートで使える例を3つ紹介します。いずれもセルA2に元の文字列があると仮定します。

電話番号の下4桁を伏せ字にする

  1. 電話番号を入力する
    セルA2に「090-1234-5678」のような電話番号を入力します。
  2. REPLACE関数を入力する
    セルB2に=REPLACE(A2,9,4,"****")と入力します。電話番号「090-1234-5678」の9文字目は「5」なので、9文字目から4文字(「5678」)を「****」に置き換え、「090-1234-****」となります。
  3. 結果を確認する
    必要に応じて下方向にオートフィルすれば、複数の電話番号を一括でマスクできます。

固定長コードの一部を変更する

商品コードが「ITEM-0001」のような固定長で、ハイフン以降の数字部分だけを新しいコードに変更したい場合です。たとえば「0001」を「1001」に変更するには、=REPLACE(A2,6,4,"1001")とします。6文字目から4文字(「0001」)を「1001」に置き換えます。開始位置と文字数を正確に把握するために、LEN関数で長さを確認すると確実です。

郵便番号にハイフンを挿入する

  1. 元のデータを用意する
    セルA2に「1234567」のようなハイフンなしの郵便番号を入力します。
  2. REPLACE関数でハイフンを挿入する
    セルB2に=REPLACE(A2,4,0,"-")と入力します。4文字目から0文字を「-」で置き換える(つまり文字を削除せずに挿入する)ことで、「123-4567」になります。
  3. 応用:複数桁の挿入も可能
    文字数を0にすることで任意の位置に文字列を挿入できます。このテクニックは固定長データの整形に便利です。

REPLACE関数を使うときの注意点とよくある失敗

REPLACE関数は便利ですが、間違った引数を指定すると予期しない結果やエラーになります。主な注意点をまとめます。

開始位置が文字列の長さを超えると#VALUE!エラー

たとえば文字列が5文字なのに開始位置に6を指定するとエラーになります。事前にLEN関数で文字数を確認し、開始位置が長さ以下であることを確認してください。また、開始位置に1未満の値を指定してもエラーになります。

文字数が0の場合の挙動を理解する

文字数に0を指定すると、新しい文字列がその位置に挿入されます(置き換えではなく挿入)。これは便利な反面、意図せず文字列が増えてしまうことがあるので注意が必要です。逆に文字数が大きすぎると、指定した開始位置から末尾までが置き換えられます。

他の関数との組み合わせで柔軟性が向上する

REPLACE関数は単体でも強力ですが、IF関数やFIND関数と組み合わせるとさらに便利です。たとえば、特定の文字が見つかった位置から置き換えるには、=REPLACE(A1, FIND("@",A1), 1, "[at]")のように使います。また、ARRAYFORMULAと組み合わせて複数セルに一括適用することもできます。

ADVERTISEMENT

REPLACE関数と他の置換関数の比較

目的に応じて適切な関数を選ぶために、REPLACE、SUBSTITUTE、REGEXREPLACEの特徴を比較します。

関数 置換基準 使用例 向いている場面
REPLACE 位置と文字数 =REPLACE(A1,3,2,”XX”) 固定長データ、特定の桁だけ変更
SUBSTITUTE 文字列の一致 =SUBSTITUTE(A1,”abc”,”xyz”) 特定の文字列を全て置換、出現回数指定
REGEXREPLACE 正規表現パターン =REGEXREPLACE(A1,”\d+”,”数値”) 複雑なパターン一致、文字種の変換

このように、REPLACEは位置が明確なデータに、SUBSTITUTEは置き換えたい文字列が決まっている場合に、REGEXREPLACEはパターンが複雑な場合にそれぞれ適しています。

まとめ

REPLACE関数を使えば、文字列の特定の位置から指定した文字数を正確に置き換えられます。固定桁の電話番号やコードのマスク、郵便番号へのハイフン挿入など、実務で役立つ場面が多いです。開始位置や文字数の指定を間違えるとエラーになるため、LEN関数やFIND関数と組み合わせて安全に使ってください。次はSUBSTITUTE関数やREGEXREPLACE関数との使い分けをマスターすると、文字列操作の幅がさらに広がります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。