バッチマクロ作成講座 | グループ間で若干の違いのある処理のループ(繰り返し)

Alteryxを使い続けると、同じようなパターンのワークフローになったり、
似たような作業が繰り返されて、もっと簡単に作れないか、効率よくできないか?
そういう考えでマクロを使ってみたいと思った事はありませんでしょうか。

でも、正直「マクロ、よく分からない」って思いませんか?
今日はその説明をします。

こんにちは、PR担当Saoriです。
データアナリストとして、またプログラミング未経験だった私が、入社して早5年、
Alteryx Designerをコツコツと毎日使い続けたことで、業務改善のスペシャリストとして、
おかげさまで様々な提案をさせていただく日々を送っております。

そんな中、私が最も苦手にしていたAlteryx Designerの「バッチマクロ」
やっと理解できました・・・・

配列、変数 分からない プログラミングやったことない。
そんな方でも大丈夫、作れるようになります!
なぜなら私が私がそうだからです。
(そもそも、Alteryxってプログラミング言語(や必要な概念)を知らない人でもできる製品です!)

一般的なループの概念とはちょっと違うかと思います。でもそういう方が少しでも理解出来たらいいなと思って書きました。

※今回キャプチャ画面として利用している画像や設定画面の内容は、AlteryxDesinger  2020.2 日本語版 となります。

▼ 目次

 Alteryxのマクロとバッチマクロの解説
 バッチマクロの具体的な利用シーン
 解説|バッチマクロの作り方
 終わりに

Alteryxのマクロとバッチマクロの解説

Alteryxには4種類のマクロが存在し、目的に応じて使い分けます。
今回はバッチマクロと、その基本となるマクロについて、解説します。

①マクロ

説明

・パターン化したワークフローをパッケージ化してまとめること。

期待できること

定型化している手順(=ワークフロー)をひとまとめにする事で下記のことが期待できます。
・ワークフロー内で非常に使いやすくなる。
・配布しやすくなる。(ワークフローをまたいでの利用が大変しやすい)

これにより
・作業時間の短縮
・ワークフローの見やすさの改善
も期待できます。

例ですが、作ったマクロをご紹介します。ひとつのツールのように見えますが、

実際には下記のワークフローが中に含まれています。まとまってると、同じワークフローを複数の場所で利用しやすくなりますし、
可視化しやすいくもなります。便利ですね。

 

②バッチマクロ

説明

・パターン化したワークフローをパッケージ化してまとめること。
・グループ間で若干の違いのある処理(グループ毎に係数を変更させたい)を実行するのに便利です。
→例えばm都道府県別に処理をしたい。年度毎の集計を行うが、年度ごとの係数を任意に変更したい(2020年の目標売上は〇〇億円、2019年の目標売上は△△億円)。 等

期待できること

・「条件が(若干)変わる状況のデータで」、「同じワークフロー(作業)」を繰り返したい時にはバッチマクロを使います。
・パラメータとして、グループ指定とそのグループに対する引数(係数)を指定できるので、処理が複雑にならずに表現できます。
→マクロを使わない場合、Formula 式 フォーミュラ ツール Alteryx アイコンフォーミュラツールのIF文や、フィルタ Filter Tool Alteryx アイコン画像フィルタツールを使った分岐を行うことでも処理は出来ますが、分岐やIF関数を大量に使う場合、変更する際際手間が掛かる点や、関数の中身を書き換える事での間違いが起こりやすい、中身が探しづらくなる等、不便な点もあります。
条件の変更を外だしすることで、何を変えたかが分かりやすくなるという点でバッチマクロはとても便利です。

 

▲ 目次にもどる

バッチマクロの具体的な利用シーン

ではバッチマクロをどういう時に使うのか、ご紹介します。

先ほどの解説で、

取り込むデータは変化するが、処理する集計プロセスが同じ場合、自動的に繰り返して処理をしてくれるようになります。

と書きましたが、さてどういうことでしょうか。
Alteryxを使っている人であれば、
「え、Alteryxって一気にデータ取り込んで出力時にグループ化してファイル出力できるから繰り返す手間いらないじゃん!」

と思った方もいるでしょう。
そうならない事例も、あります。

バッチマクロ利用具体例

利用する際の前提がありますので、少しだけ例えば、の例にお付き合いください。
ひとつのテーブルの行数が100万行を超えたデータがあったとします、それどうしを結合したい、と思ったとイメージしてください。

その場合、いくつかやり方はありますが、AのテーブルにBの情報が含まれているかを検索したい場合、
AのテーブルデータとBのテーブルデータを全て付け合わせる
(具体的にはクロスジョイン、AlteryxだとAppendFields フィールド追加 Alteryx フィールド付加ツールアイコン画像フィールド付加ツールを使った処理)
という事を行います。

その際、データ量(行数)が、下記の場合、
A:100万行
B:200万行
これらを1つのワークフローで一気に処理しようとすると、
100万行×200万行 = 2兆行

になります。

2兆行です。 2兆行。

Alteryxでデータを取り込む際、行数については(ほぼ)気にしなくていいのですが、
処理時のメモリ利用量は注意が必要です。
結合カテゴリのツール(結合ツール/複数結合ツール/フィールド付加ツール 等)はメモリを使うため、
AlteryxDesignerで2兆行にもなるデータを結合させようとするとですね、1日では到底終わらないのです・・・・

そのため、メモリ負荷を避けてかつ1回ごとの処理時間を短縮させて処理を行うためには
A:1行
B:200万行
×
100万回

を行った方が良いですが、今度は人間が100万回実行処理をする必要があるため、それもまた日が暮れてしまいます。

1つ1つ処理をした方が都合が良く、でもそれらの処理は基本取り込むデータ(やフィルタの条件)が異なるだけで、
同じ作業の繰り返し を行いたい場合には「バッチマクロ」がおすすめです。

その他、バッチマクロ利用シーン

その他、私が実際利用しているシーンは下記です。

・部署別、会社別に請求書(Excel)を作成してコピー&ペーストと移動を同時に行う
・フリーコメントから、予測を行うための目的変数を複数個1名(1行)ずつ作成する
・都道府県別、部署別、営業所別 にデータの集計を行う

データを一つ一つ変化する必要がある場合で、同じワークフローを使う場合に大変便利です。

▲ 目次にもどる

解説|バッチマクロの作り方

バッチマクロ作る際のイメージ

お待たせしました。
バッチマクロの作り方について説明します。

まず、バッチマクロのワークフローをイメージ化すると、こうです。

横軸(→)A)繰り返す処理の流れ

縦軸(↓)毎データのがどこでどう変わるのかという指示

この横軸(→)と縦軸(↓)を設定すればバッチマクロは完成です。
※なお、横軸(→)だけであればAlteryxのマクロです。

では手順へ行きましょう。
細かくは、ツールの特性や設定方法が多少必要にはなりますが、まとめるとたった2つのステップとなります。

①ワークフローをつくる
②横軸(→)と縦軸(↓)を設定する。(マクロ化する)

以上です。

具体的な事例を使って、ワークフロー作成を実演したいと思います。

①ワークフローをつくる

今回は、あるデータを
1.都道府県別にするためフィルタ Filter Tool Alteryx アイコン画像フィルタツールを使って分けた後、
2.市区町村をキーにJoin ジョイン Alteryx アイコン画像結合ツール(JOIN)を使って結合します。

※「都道府県名と市区町村名を 都道府県+市区町村名 にして結合すりゃいいじゃん。」
といご意見あるかと存じますが、すみませんサンプル事例という事で・・・・市区町村だけで検索することって、意外とあるのです・・・・

一旦出力までワークフローを作ってしまうとイメージが湧きやすいです。

 

②横軸(→)と縦軸(↓)を設定する。(マクロ化する)

マクロとして使うために、データの入力元と出力先をマクロ用のツールに置き変えます。
Input Data Tool データ入力ツール Alteryx アイコン画像 データ入力ツール、閲覧 Alteryx Browse Tool アイコン画像閲覧ツールのアイコンを右クリックすると、マクロ入力に変換、となるのでそれを設定するのみです。簡単です!

また、毎回条件が変わるので、その指示を行うために Control Parameter Tool Alteryx アイコン 画像コントロールパラメータツール を使います。このツールを使うことで、条件を変えた繰り返し が実現できるようになります。

このツールは条件を変更したいツールの上あたりに配置します。そして、条件変更したいツールの稲妻マークめがけて線を引っ張ります。

すると、新しいアイコンが出てきました。

これはAction tool アクション ツール Alteryx アイコン 画像アクションツールといい、条件分岐や変更する点を指示する際に使います。
今回はフィルタ Filter Tool Alteryx アイコン画像フィルタツールでの条件 都道府県 = 北海道 の北海道の部分が変わるように設定します。
設定内容は下記を参考ください、接続するツールによって中身が異なりますので、いろいろ接続してご確認いただけると良いと思います。

設定後、インターフェースデザイナー を開き、繰り返すデータをどのように結合していくかを設定します。
アイコンも変更出来ます。 (他、細かい設定がありますが今回は割愛します。)
※インターフェースデザイナーは、Ctrl+Alt+D で表示される設定画面のようなものです。

設定が完了したら、マクロとして保存を行います。
ファイルの拡張子がyxmcとなり、紫色のアイコンになります。
ワークフローを作成したら、マクロをAlteryxDesingerのツールのようにして、使います。
使ったワークフローが下記となります。

▲ 目次にもどる

終わりに

Alteryxのマクロの説明と、バッチマクロの利用シーン・作り方を紹介しました。
個人的にはExcelのマクロと比較するに、Alteryxのマクロは、概念の理解で若干分かりづらい点があるように思いますが、何の目的で何を作っているのか?が分かりやすいと思います。
Alteryxのマクロは、ベースが「ワークフローを作る」にあるため、新たな用語やプログラミング言語(とその視点や概念)を覚える必要がありません。そのため、マクロ化してもブラックボックス化しにくいというメリットもあるように思えます。

少しでもAlteryx のマクロについて作ってみようと思ってくださる方が増えてくださると、嬉しいです。

コントロールパラメーターツールやマクロ入力ツールなどのInterfaceカテゴリのツールの細かい細かい細かい設定については、別記事でご紹介させていただく予定です。

Photo by Lenny Kuhne on Unsplash

▲ 目次にもどる


AlteryxDesignerを毎日利用し、活躍しているアナリストがデータに関するお悩みをお伺いしております。
業務効率化に関するご相談、マクロを活用したいけれど作る時間がない方、どうぞお気軽にご相談ください。

Alteryx(アルテリックス)を1か月間無料でご体験いただけます。
無料体験中の利用方法ご説明などのサポートも行っております。
トライアル期間中もサポートいたします、ご不明な点がございましたらお気軽にお問い合わせください。
1か月間のフリートライアルはこちらから

Alteryx(アルテリックス)のお見積りや、その他データ分析に関するご相談は「問い合わせページ」にて承っております。お気軽にご相談ください。
お見積もり依頼などのご相談はこちらから

 

 

Photo by Austin Distel on Unsplash

関連記事

  1. Alteryxのレポート機能についてご紹介

  2. Alteryx 全種類 機能説明 TOP画像

    Alteryx機能紹介 Predictive(予測)

  3. IoT本格時代の膨大なデータをalteryxで整理する(json解析)…

  4. Alteryx Desinger活用についての考察(営業・営業事務(営…

  5. Alteryx おすすめトレーニング教材のご紹介

  6. Alteryx 全種類 機能説明 TOP画像

    Alteryx機能紹介 In-DB(データベース入力)

フリートライアル(1か月間の無料使用)