【Excel】正規表現で置換するカスタム関数の作り方

正規表現で置換する関数をjavascriptでカスタム関数としてexcelに登録する方法

Excelに正規表現が使えるネイティブ関数が発表されたもののまだβ版のみ搭載という状態なので業務では使えず、カスタム関数を作りましたという話の第二段です。今回は正規表現で置換する関数です。

0.ScriptLabをインストール

別記事をご参照ください。

1.Javascriptコードを書く

正規表現での置換機能もJavaScriptで搭載されているので数行で書けます。以下のコードです。

関数の最初の変数x1が置換したい分、変数y1が置換したい部分を検索するためのパターン(正規表現)、変数z1が一致するパターンの部分を何に置換したいかです。

/**
 * regex replace
 * @customfunction 
 * @returns x1 after replacement.
 */

function regexreplace(x1, y1, z1) {
  const str = x1;
  const pattern = new RegExp( y1, 'g');
  return str.replace(pattern, z1);
}

9行目で’g’のフラグをたてていますが、これはグローバルフラグというものでこれをしないと置換を1回行ったら終了してしまいます。普通は置換したいパターンを全て置換するものだと思うので、グローバルフラグたてています。こちらは目的に応じて変えてください。

2.カスタム関数にする

カスタム関数にする方法は別記事を参照してください。

3.動作確認

実際に動作確認したスクリーンショットが下の画像です。電話番号を下4桁以外伏字にすることができています。