AlteryxでレンダリングツールでExcelに出力する際に複数のシートに出力する方法をご紹介します
Alteryxでは、各種レポート用のツール(テーブルやインタラクティブチャート)を利用することでビジュアルなレポートを作成することができます。この場合レンダリングツールを使って保存することになります。
レンダリングツールでは様々な形式で出力することができますが、今回はExcelに出力する方法について様々なパターンを紹介します。通常は単一のシートに出力することになりますが、複数のシートに分けて出力してみたいと思います。
1.基本的なワークフロー(単一テーブル・単一シート)
まず、適当なデータを今回は準備しています。
ここから、テーブルツールでテーブルを作りましょう。
特に設定はデフォルトのままで何も設定はしていません。これを閲覧ツールで見ると以下のようになります。
これをレンダリングツールで保存しましょう。設定はレポートスタイルのサイズのみ変更しています。
これをレンダリングツールで出力すると以下のようになります。
Excelの画面:
ワークフローとしては、以下のような形でした。
2.グループでテーブルを分ける
さて、ここでカテゴリごとにテーブルを分けて保存していきたいと思います。テーブルツールで設定を変更します。
今回は、Categoryごとにテーブルを分けたいので、Categoryフィールドにチェックを入れます。
これにより以下のようにカテゴリが果物のみ、野菜のみの2つのテーブルにわかれます。
それではこれを別々のシートに分けて保存したいと思います。
ポイントは、レンダリングツールの設定です。Excelのシートを分けて保存する場合は、レポートデータオプションの「区切り記号」で「レコード間でセクション区切りを挿入する」を選択します。
このあたり、汎用的な名称になっているので、どのオプションにしたらどのような動きになるかが若干わかりにくいです。
これにより、以下のようなExcelファイルが出力されます。これは、単一のExcelブックで、シートがsheet1とsheet2があり、それぞれのシートには、カテゴリが果物のデータと野菜のデータが格納されています。
ただ、よく見てみると、シート名がデフォルトのシート名になっています(sheet1、sheet2)。
ここから、シート名も制御してみましょう。
グループでテーブルを分ける(シート名も指定)
テーブルツールまでは2と同じやり方になります。
ここから、レイアウトツールを接続します。
レイアウトツールの設定は以下のとおりです。
設定は少し細かく行う必要があります。
- レイアウトモード:「レコードの各グループ」
- グループ別:分かれているテーブル名が入っているフィールド。テーブルツールの「グループ化」で選択したフィールド。
- レイアウト設定の「方向」:「セクション区切り付き垂直」
- セクション名:シート名にしたいフィールドを指定
その後のレンダリング設定は、デフォルト設定となります。
これで、以下のようなExcelブックが保存されます。
無事にシート名がテーブルの名称になっています。
最終的に3の方法は以下のようなワークフローになります。
2番目の方法の延長線上に3番目の方法がないため、少しわかりにくいかもしれません。レンダリングの設定のみではシート名は指定できず、レイアウトツールと組み合わせるというのはなかなか思いつかないポイントです。
おまけ(レンダリングツールとデータ出力ツールを組み合わせる)
ここからは中級・上級の内容になります。
3の方法を拡張し、レンダリングツールに書き出したExcelにさらに処理前の生データを追加したいといった場合に、データ出力ツールで追記する方法を紹介します。
まず、ダミーのテーブルを用意しましょう。ここでは、テキスト入力ツールに、フィールド名「category」でデータを「raw data」としたものを作ります。ここで、「raw data」という値は後に生データを格納するシート名となります。
これに対してテーブルツールでダミーテーブルを作ります。設定としては、必要なテーブルと同じようなフィールド構成になるようにします。つまり、以下の構成を再現する必要があります。フィールド名として、「category」「Table」というフィールド名が必要になります。
つまり、以下のようなワークフローとし、
テーブルツールは以下のように、先に作ったテーブルと同じようにグループ化オプションにて「category」にチェックを入れます。
これで上のようなデータ構造が以下のように再現できます。
その後、先に作ったデータとこのデータをユニオンツールで縦に結合します。これにより、以下のようになります。
ワークフローは以下のような形です。
ここでレイアウトツールとレンダリングツールを3と同じように接続し設定します。
ここからがポイントです。
まず、レンダリングツールが書き込み終えたあとにデータ出力ツールで同じExcelファイルに書き込む必要があるので、レンダリングツールのあとにデータ出力ツールが動くように組み込む必要があります。そのために、レンダリングツールの直前のレイアウトツールにレコードカウントツールを接続します(実は、レコードカウントツール以外の、例えば「完了までブロックツール」でも構いません)。
このような形になります。
次に、フィールド付加ツールを接続します。T入力にはもとの生データ。S入力にはレコードカウントツールの出力を接続します。
ここで、フィールド付加ツールには不要なフィールド「count」が付与されるため、フィールド付加ツールのセレクト機能を使って削除します。
さらに、データ出力ツールを接続します。保存先として、レンダリングツールで保存したデータの「raw data」シートを指定します。このときのオプションは、「シートまたは範囲を上書きする」オプションです。
ワークフローとしては以下のとおりです。
これを実行するとExcelが保存されますが、開いて見ると以下のようになります。
Raw dataシート:
確かに生データが保存されています。
果物シート:
野菜シート:
サンプルワークフローダウンロード
RenderinTool_SaveDividedSheet_Sample
Alteryx Designer 2022.3.1.395時点の情報となります。