Alteryxの文字列関数のReplace関数をいろいろ試してみた

2023.05.19

Alteryx勉強中のikumiです。今回はAlteryxのreplace関数について、自分が混乱することもあったので備忘録として簡単にまとめています。

環境

  • Windows 10 Pro
  • Alteryx Designer 2022.1.1.42619

検証内容

Replace関数とは、特定の文字を任意の文字に置換する関数で、今回は以下3つの関数の動作を確認しました。

  • Replace関数
  • ReplaceFirst関数
  • Replacechar関数

Replace関数

おそらく、置換と聞いて真っ先にイメージする動作を行うのがReplace関数かと思います。記述の方法は以下の通りです。

例)
Replace(String, Target, Replacement)

・String…置換を行う列名
・Target…置換対象となる文字列
・Replacement…置換後の文字列

▽設定内容
Replace("Good morning! Goodby!", "Good", "Nice")

Input Output
Good morning! Goodby! Nice morning! Niceby!

インプットした文字には置換対象とした「Good」の文字が2つ入っているため、両方のGoodがNiceに置換されました。

ReplaceFirst関数

こちらは関数名で想像できる通り、置換対象の文字が最初にヒットした箇所のみ置換する関数です。記述方法は以下の通りで、引数などReplace関数と同一です。

例)
ReplaceFirst(String, Target, Replacement)

・String…置換を行う列名
・Target…置換対象となる文字列
・Replacement…置換後の文字列

▽設定内容
ReplaceFirst("Good morning! Goodby!", "Good", "Nice")

Input Output
Good morning! Goodby! Nice morning! Goodby!

インプットした文字には置換対象とした「Good」の文字が2つ入っていますが、最初にヒットしたGood morning!の部分のGoodのみ置換されていることがわかります。

ReplaceChar関数

私がひっかかったポイントがまさにReplaceChar関数なのですが、ReplaceChar関数は指定した「文字」に対して置換を行う関数です。実際の処理結果を見た方が分かりやすいかと思いますので、設定内容の解説をします。

例)
ReplaceChar(String, y, z)

・String…置換を行う列名
・y…置換対象となる文字
・z…置換後の文字
ここでポイントとなるのが、単語などの文字列ではく、単一の文字として読み込んで置換する動きになります。

▽設定内容
ReplaceChar("Good morning! Goodby!", "Good", "_")

Input Output
Good morning! Goodby! ____ m_rning! ____by!

基本的には置換対象は単一の文字を設定することになりますが、試しに記載のような設定を行うと、「Good」という単語だけでなくそれぞれを単一の文字として認識して、G,o,dに対して置換するという動きになります。そのため、morningのoの文字も置換されていることがわかります。

最後に

複数のReplace関数を紹介しましたが、いかがでしたでしょうか。シーンに応じて使い分けていく必要がありそうですね。Replace関数とReplaceChar関数については、ターゲットを文字列にするか、単一の文字として認識させたいかの違いと理解しました。