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 引数はテキスト値を返します。
計算エンジンの機能の違い
Polaris では、SUBSTITUTE 関数で複合文字の基本文字が照合されません。たとえば、SUBSTITUTE 関数では、「â」に「a」が含まれているとは見なされません。また「が」に「か」が含まれているとは見なされません。
Classic エンジンでは、SUBSTITUTE 関数で複合文字の基本文字が照合されます。たとえば、SUBSTITUTE 関数では、「â」に「a」が含まれているとは見なされます。また「が」に「か」が含まれていると見なされます。
構文の例
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 と等価ではありません。
同等の操作が行える Excel の関数
例
SUBSTITUTE の一般的な例
テキストを二重引用符で囲んで、SUBSTITUTE 関数に直接文字列値を入力できます。こちらの例では各引数が二重引用符で囲まれています。式は次のとおりです。
SUBSTITUTE("ababababa", "aba", "c")
テキスト ababababa に aba があるかどうかを検索し、あった場合は c に置換します。結果として返されるテキスト値は cbcba になります。
ライン アイテムのテキストを使った SUBSTITUTE
この例では三つのモジュールのデータを使用しています。
最初のモジュール「Email Templates」にはテキスト ライン アイテムしかありません。各ライン アイテムには「[Region Placeholder]」と「[Revenue Placeholder]」というフレーズがあり、これらのテキストが SUBSTITUTE 関数によって置換されます。
Email Templates
Financial performance | Financial performance in [Region Placeholder] changed by [Revenue Placeholder]. |
Revenue against target | Revenue in [Region Placeholder] was [Revenue Placeholder].The target for this period was [Target Revenue Placeholder]. |
2 番目のモジュール「Profit and loss summary」には列に「Cities」リストがあります。行にはさまざまな財務成績を含むライン アイテムがあります。
Profit and loss summary
Tokyo | Munich | Tel Aviv | Abu Dhabi | |
Revenue | $213,458 | $648,751 | $366,951 | $104,853 |
Operating costs | $153,948 | $486,795 | $295,657 | $54,843 |
Operating profit
| $59,510 | 161,956 | $71,294 | $50,010 |
3 番目のモジュール「Revenue Email」には、列に「Cities」リスト、行にライン アイテムがあります。「Email templates」モジュールと「Profit and loss」モジュールのデータを使用して、モジュール内のデータに応じて変化するテキストを作成する二つの式がライン アイテムにあります。
Revenue Email
Tokyo | Munich | Tel Aviv | Abu Dhabi | |
Financial performance template with 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
| 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」となります。アンダースコアはスペースに置換されています。