SalesforceのSUBSTITUTE関数はExcelのSUBSTITUTE関数と似ていて、使い方はほとんど同じになります。
数式でSUBSTITUTE関数を使って文字列置換する方法を紹介します。
数式は数式項目、入力規則、承認プロセス、フローなどで使用できます。
SUBSTITUTE関数の使用方法
SUBSTITUTE(text, old_text, new_text)
。text に、値の代入をする項目か値を指定します。old_text に、置換対象となるテキストを指定します。new_text に old_text を置換するテキストを指定します。
- 引用符で囲んだ用語は、大文字と小文字が区別されます。
- old_text が複数回出現する場合は、結果的に重複が発生することになっても、出現するたびに new_text の値で置き換えられます。
出典:https://help.salesforce.com/s/articleView?id=sf.customize_functions_substitute.htm&type=5
SUBSTITUTE関数の使用例
全角スペースを半角スペースに文字列置換
SUBSTITUTE( Name , ' ' , ' ' )
半角スペースと全角スペースでごちゃごちゃしている時にどちらかに統一したい場合に使えます。
テキストエリアに入力されている改行コードを削除する方法
SUBSTITUTE( Field1__c , SUBSTITUTE($Label.LineBreak, "-", ""),"")
改行のみのラベルが作れない為、値が「-(改行)-」のラベルを作ってから「-」を置換で消して、残った改行分も置換で消します。
残念な仕様なので詳しくはこちらをご確認ください(テキストエリアに入力されている改行コードを削除する方法)
日本標準時としてテキスト表示してZを空文字に置換
SUBSTITUTE(TEXT( ( NOW() + 9/24) ), 'Z', '')
日付/時間型をTEXT関数で文字列にすると「YYYY-MM-DD HH:MM:SS」の形式で、末尾に GMT を表す「Z」が付記されます。実際の値は「2023–04–01 00:00:00Z」このようになります。
なので「Z」を空文字に文字列置換します。
CSVやExcelにエクスポートする時には「YYYY-MM-DDTHH:MM:SSZ」形式になるため、毎回加工することになると大変です。良く出力する時には数式項目作っておくと便利です。※SOQLでFORMAT関数使っても可
まとめ
数式でSUBSTITUTE関数を使って文字列置換する方法でした。
SUBSTITUTE関数はExcelのSUBSTITUTE関数と似たものとなってます。
使えるようになると、コードを使用することなく、この関数だけで文字列置換できるようになります。