SUBSTITUTE 関数は別のテキスト値から指定したテキスト値のすべての一致を検索し、指定した値に置換します。

たとえば、SUBSTITUTE 関数を使用して、地域などのディメンション性に基づいてテキスト文字列の内容を変更できます。

SUBSTITUTE(Text to search in, Text to find, Replacement text)

引数データ型説明
Text to searchテキストText to replace 引数のインスタンスの対象となる検索テキスト
Text to replaceテキストReplacement text で置換する Text to search in 内のテキスト値。テキスト値の各インスタンスが置換されます。
Replacement textテキストText to replace 引数で置換するテキスト値

SUBSTITUTE 引数はテキスト値を返します。

SUBSTITUTE( Email content, "[Region placeholder]", Region name)

SUBSTITUTE 関数では完全に一致するテキストだけが検索されます。正規表現やワイルドカードなどの検索パターンは使用できません。

Text to search in の値に Text to replace の値の複数のインスタンスが含まれている場合、SUBSTITUTE 関数では各インスタンスが置換されます。Text to replace の値に表示されている順に、左から右に置換されていきます。ただし、この処理は再帰的ではありません。つまり、Replacement text 引数に Text to replace 引数のテキスト値が含まれている場合、結果も置換されるということはありません。

Text to search in の値に Text to replace の値が含まれていない場合、SUBSTITUTE 関数では Text to replace の値がそのまま返されます。つまり、Text to replace 引数に空白の値が使用されている場合、SUBSTITUTE 関数を使用しても何も起きません。

SUBSTITUTE 関数では大文字と小文字が区別されます。絵文字、及び Unicode の基本多言語面に含まれていないその他の文字にも対応しています。

SUBSTITUTE 関数では正準等価文字が同じ文字とみなされません。たとえば、â と表示される U+00E2 (曲折アクセント記号付きの英小文字 a) があります。U+0061 (英小文字 a) と U+0302 (合成可能曲折アクセント記号) の組み合わせも â と表示されますが、U+00E2 と等価ではありません。

Polaris では、SUBSTITUTE 関数で複合文字の基本文字が照合されません。たとえば、SUBSTITUTE 関数では、「â」に「a」が含まれているとは見なされません。また「が」に「か」が含まれているとは見なされません。

Classic エンジンでは、SUBSTITUTE 関数で複合文字の基本文字が照合されます。たとえば、SUBSTITUTE 関数では、「â」に「a」が含まれているとは見なされます。また「が」に「か」が含まれていると見なされます。

 SUBSTITUTE

テキストを二重引用符で囲んで、SUBSTITUTE 関数に直接文字列値を入力できます。こちらの例では各引数が二重引用符で囲まれています。式は次のとおりです。

SUBSTITUTE(“ababababa”, “aba”, “c”)

テキスト ababababaaba があるかどうかを検索し、あった場合は c に置換します。結果として返されるテキスト値は cbcba になります。

この例では三つのモジュールのデータを使用しています。

最初のモジュール「Email Templates」にはテキスト ライン アイテムしかありません。各ライン アイテムには「[Region Placeholder]」と「[Revenue Placeholder]」というフレーズがあり、これらのテキストが SUBSTITUTE 関数によって置換されます。

Financial performanceFinancial performance in [Region Placeholder] changed by [Revenue Placeholder].
Revenue against targetRevenue in [Region Placeholder] was [Revenue Placeholder].The target for this period was [Target Revenue Placeholder].

2 番目のモジュール「Profit and loss summary」には列に「Cities」リストがあります。行にはさまざまな財務成績を含むライン アイテムがあります。


TokyoMunichTel AvivAbu Dhabi
Revenue$213,458$648,751$366,951$104,853
Operating costs$153,948$486,795$295,657$54,843

Operating profit

Revenue - Operating costs

$59,510161,956$71,294$50,010

3 番目のモジュール「Revenue Email」には、列に「Cities」リスト、行にライン アイテムがあります。「Email templates」モジュールと「Profit and loss」モジュールのデータを使用して、モジュール内のデータに応じて変化するテキストを作成する二つの式がライン アイテムにあります。


TokyoMunichTel AvivAbu Dhabi

Financial performance template with region

SUBSTITUTE(Email Templates.'Financial performance', "[Region Placeholder]", NAME(ITEM(Region)))

Financial performance in Tokyo changed by [Revenue Placeholder].Financial performance in Munich changed by [Revenue Placeholder].Financial performance in Tel Aviv changed by [Revenue Placeholder].Financial performance in Abu Dhabi changed by [Revenue Placeholder].

Financial performance template with region and revenue

SUBSTITUTE(Financial performance template with region, "[Revenue Placeholder]",  TEXT(Profit and loss summary.'Revenue') & " USD")

Financial performance in Tokyo changed by 213458 USD.Financial performance in Munich changed by 648751 USD.Financial performance in Tel Aviv changed by 366951 USD.Financial performance in Abu Dhabi changed by 104853 USD.

2 番目の式では最初の式の結果を Text to search 引数に使用しています。これは、SUBSTITUTE 関数では 1 回につき一つのテキスト値しか検索できないためです。二つの異なる文字列を置換するには、SUBSTITUTE 関数を 2 回使用する必要があります。

SUBSTITUTE を使用して、テキスト内のアンダースコア、又は他の文字をスペースに置換できます。これを行うには、Replacement text 引数でスペースを二重引用符で囲って使用する必要があります。ライン アイテムにスペースだけを含めることはできないため、使用できる方法はこれだけです。

SUBSTITUTE("Text_with_underscores", "_", " ")

この式の結果は「Text with underscores」となります。アンダースコアはスペースに置換されています。