データやヘッダ名に含まれる改行を削除したい

2021.09.03

こんにちは、アライアンス統括部テクニカルグループプリセールススペシャリストの兼本です。

AlteryxでExcelからデータを読み込む際、利用したいデータのヘッダ行に改行コードが含まれてることありませんか?イメージとしてはこんな感じです。データは弊社の財務ハイライトから引用した経営指標データを加工したものです。

長い文字列を適切に折り返しておくとExcel上で利用する際の可読性は高まりますが、一方でデータとして利用する場合はちょっと困りますね。
今回は、このような場合に改行を削除する方法をいくつかご紹介します。

動的リネームツールを使う

動的リネームツールを使用すると、ヘッダ行のフィールド名に対して加工処理を行うことができます。ワークフローはとてもシンプルです。

データ入力ツールのプレビューで確認するとヘッダ(フィールド名)に改行が含まれていることがわかります。

動的リネームツールでは、名前の変更モードとして「フォーミュラ」を選択します。各フィールド名は改行されているため、名前が正しく表示できていません。

正規表現を使用する式を作成し、改行コードを空文字に変換します。

REGEX_Replace([_CurrentField_], "\n", "")

ワークフローを実行して結果を確認します。改行コードが削除されて適切なフィールド名になっていることが確認できました。

クレンジングツールを使う

続いてデータに含まれる改行を削除する方法について考えます。Alteryxにはクレンジングツールというデータをキレイキレイする専用のツールがありますので、これを使ってみましょう。

作成したワークフローは以下の通り。

最初のワークフローと同じデータを使用していますが、ヘッダ行をデータとして読み込むためにデータ入力ツールの「先頭行にデータを含める」オプションを有効にします。これでヘッダ行をデータとして読み込むことができます。

クレンジングツールにはいくつかのオプションがありますが、不要な文字の削除グループにある「タブ、改行、重複した空白」を有効にすることでデータ内に含まれる改行を削除することができます。

実行結果は以下の通り。改行が削除されていることが確認できました。

複数フィールドフォーミュラツールを使う

複数フィールドフォーミュラツールを使用すると、複数のフィールドに対して同じ数式をまとめて適用することができます。これを使って以下のようなワークフローを作成します。(前のワークフローに追加しています)

複数フィールドフォーミュラツールの設定は以下の通りです。

このツールでは最初に数式を適用するフィールドを選択し、選択したフィールドのデータに対して「式」で記述した数式を適用できます。ここでも正規表現を使用して改行を空文字に置き換える式を作成します。

REGEX_Replace([_CurrentField_], "\n", "")

[CurrentField]は特別な意味を持つ変数で、ワークフロー実行時に本ツールの上部で選択したフィールドの値が代入されます。以下はワークフローを実行した結果です。クレンジングツールを使用した結果と同じなのであまり面白みはありませんが、間違いなく改行が削除されていることが確認できました。

なお、改行を削除したヘッダ部と2行目以降のデータ部をユニオンツールで再結合し、動的入力ツールの名前の変更モードとして「データの最初の行からフィールド名を取得」を適用することで、作成した文字列をフィールド名に使用することもできます。

こちらも最初の動的リネームツールを使用した例と結果が同じなので、あまり面白みはありませんが、フィールド名の改行が削除できていることが確認できました。

まとめ

このエントリでは、データやヘッダに含まれる改行を削除する方法についていくつかご紹介いたしました。Alteryxでは同じ処理を実現する方法がいくつかありますので、今回ご紹介した方法のいずれかがお役に立てば幸いです。

以上、最後までお読みいただきありがとうございました。