文字列の特定の位置だけを別の文字に置き換えたい場面はありませんか。たとえば電話番号の下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桁を伏せ字にする
- 電話番号を入力する
セルA2に「090-1234-5678」のような電話番号を入力します。 - REPLACE関数を入力する
セルB2に=REPLACE(A2,9,4,"****")と入力します。電話番号「090-1234-5678」の9文字目は「5」なので、9文字目から4文字(「5678」)を「****」に置き換え、「090-1234-****」となります。 - 結果を確認する
必要に応じて下方向にオートフィルすれば、複数の電話番号を一括でマスクできます。
固定長コードの一部を変更する
商品コードが「ITEM-0001」のような固定長で、ハイフン以降の数字部分だけを新しいコードに変更したい場合です。たとえば「0001」を「1001」に変更するには、=REPLACE(A2,6,4,"1001")とします。6文字目から4文字(「0001」)を「1001」に置き換えます。開始位置と文字数を正確に把握するために、LEN関数で長さを確認すると確実です。
郵便番号にハイフンを挿入する
- 元のデータを用意する
セルA2に「1234567」のようなハイフンなしの郵便番号を入力します。 - REPLACE関数でハイフンを挿入する
セルB2に=REPLACE(A2,4,0,"-")と入力します。4文字目から0文字を「-」で置き換える(つまり文字を削除せずに挿入する)ことで、「123-4567」になります。 - 応用:複数桁の挿入も可能
文字数を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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
