【Excel】正規表現で置換するカスタム関数の作り方
![正規表現で置換する関数をjavascriptでカスタム関数としてexcelに登録する方法](https://nao-tokyo.jp/wp-content/uploads/2024/07/正規表現のカスタム関数3.png)
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桁以外伏字にすることができています。
![正規表現の置換関数をカスタム関数で作って動作確認した例](https://nao-tokyo.jp/wp-content/uploads/2024/07/正規表現のカスタム関数4-e1720845301324-1024x495.webp)