Alteryxの列分割ツールで複数の文字を1つの区切り文字としたい場合の処理の仕方

2021.10.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、スズです。

Alteryx Designerの列分割ツールでは、任意の区切り文字を指定して値を列に分割することができます。区切り文字には複数指定することができ、「,|」のように設定すると、値にカンマまたはパイプの文字が出てきた際に列を分割して値を出力します。では、「//」のように2つのスラッシュを1つの区切り文字として取り扱いたいというように、複数の文字を1つの区切り文字として扱いたい場合はどうしたらいいでしょうか。本エントリでご紹介いたします。

執筆環境

本エントリでは以下の環境を使用しています。

  • Alteryx Designer 2021.3.1.47945 Admin 日本語版
  • Windows 10 Pro

列分割ツールで「//」を入力した場合の動作

まずは列分割ツールで「//」を入力した場合の動作を確認してみます。以下のデータの2行目と3行目には、「おはよう//こんにちは」のように単語の間に「//」が入っています。1行目には、比較のため「/」を単語の間に挟んだ値を用意しています。

列分割ツールで区切り文字として「//」を指定してみます。

結果を確認してみると、2行目の1列目には「おはよう」、2列目は空文字、3列目は「こんにちは」と出力されています。列分割ツールでは区切り文字として「//」を指定していますが、複数の文字を組み合わせて1つの区切り文字としては扱えないため、「/」または「/」があった場合に列を分割する(=「/」があった場合に列を分割する)という動作となっています。

このように、複数の文字を1つの組み合わせとして列を分割したい場合、列分割ツールだけでは思ったように列に分割ができないケースが出てくるかと思います。列を分割した後でデータの整形をしていくのも1つの手ですが、列を分割する前に列を分割しやすいように整えておくという方法も考えられます。

列を分割する前の処理

列を分割する前に分割しやすいように値を整えておく場合、どのように処理を行うのか見ていきます。やることは単純で、「//」となっている区切り文字を「/」などの1つの文字の区切り文字に置換する、という方法をご紹介します。

「//」を「/」に置換するにあたり、ここではフォーミュラツールを使用した例をご紹介します。フォーミュラツールのReplace関数を使用することで、対象の文字列を任意の文字列に置換することができます。

フォーミュラツールで置換した結果、区切り文字が「/」となりました。

あとは列分割ツールで「/」を指定して値を列に分割します。

列分割ツールでの処理の結果は以下のようになります。

さいごに

複数の文字を1つの区切り文字としたい場合の列分割ツールの使い方についてご紹介しました。