複数行・複数列の計算をしてみよう- 今日からはじめるAlteryx再入門アドベントカレンダー

2020.12.05

こんにちは。
アドベントカレンダー企画デビューのshoです。

当エントリは2020年アドベントカレンダー『今日からはじめるAlteryx 再入門』の05日目のエントリになります。

このアドベントカレンダーの企画は、Developers.IOにてAlteryxの情報をお届けしてきたメンバーによるAlteryxを1から学べるシリーズになっています。Alteryx触ってみたい!という方の入門記事として、Alteryx使っているけど改めて基礎から学びたい!という方の再入門記事としてご活用いただければ幸いです。

5日目の今日は「複数行・複数列の計算」をお届けします。

同じ行にあるフィールドを使用して計算をする場合、Alteryxではフォーミュラツールを使用します。


ツールに関する詳細につきましては、以下のURLをご参照ください。
フォーミュラツールでは関数を使用でき、カラムごとに式を作成します。

今回はそこから応用して、異なる行にあるフィールドの値を参照して式を作成できる複数行フォーミュラツールと同じ式を複数のカラムに設定できる複数フィールドフォーミュラツールについてご紹介していきます。

複数行フォーミュラツール


Excelファイルからデータを取り込んだものの、セルが結合されてしまっていて、データの値が空白(NULL)になってしまっている・・・
売上金額の前年同期比や前年比を算出したいけれど、その値は違う行にある・・・・

というようなことありませんか?
そんな時に、便利なのが“複数行フォーミュラツール”になります。


異なる行(該当行の前後にある行)の値を参照したい場合に使用するのが複数行フォーミュラツールです。

値が空白(NULL)の場合に、その前の行の値を使用する

セルが結合されたExcelファイルを取り込んだ場合、以下の図のように値が空白(NULL)になって取り込まれてしまいます。


このままでは、正確な集計や分析ができないため、複数行フォーミュラツールを使用して、まずはデータを整形する必要があります。

複数行フォーミュラツールでは、既存のフィールドを更新する、もしくは新規にフィールドを作成することが可能となっています。
今回は、既存のフィールドを更新する設定を使用します。
そして、式として変数を使用します。
今回は、設定したフィールドの値が空白(NULL)である場合は、その行の前の値(Row-1)を取ってくる、それ以外の場合はそのままその値を使用するため、条件式を使用し、以下のように設定しました。

IF IsNull([売上計上日])
THEN [Row-1:売上計上日]
ELSE [売上計上日]
ENDIF


結果、結合されていたセルにきちんと売上計上日情報が入っていることが確認できました!!


これを、支店名にも同様の設定を適用し、結合されたセルの値を補完しました。


このような形で値を補完することができるのが複数行フォーミュラツールになります。

前後の行の値を参照し、計算に使用する

前年同期比や前月比を集計したい場合、同じ行にはその値がないため前後の行を参照する必要があります。
その時にも、結合されたセルの時と同様に、前後の行の値を参照する式を作成することができます。

前年同期比(前年同月比)の場合、12か月前の値を参照する必要があるため行数設定にて“12”と設定します。
すると設定できる変数情報が変数タブにて増え、それを式に使用できるようになります。


今回は前年の12か月前と比較するため、式としては以下のように設定し、データとしては支店製品単位でデータが存在するためオプション機能であるグループ化にて“支店名”・“製品名”を指定しました。

([売上金額] / [Row+12:売上金額])*100


ワークフローを実行し、前年同期比の値が集計されていることが確認できました。


集計結果にNULLのデータがありますがこちらについては、12か月前のデータが今回取り込んだデータには存在しないため今回は気にしなくても大丈夫です。

このような形で、前後の値を参照したい場合には複数行フォーミュラツールをご活用ください。

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


複数のフィールドに同じ式を設定したい

というようなことありませんか?
式を作成するのであれば、フォーミュラツールを使用することができますが、複数のフィールドで同じ式を適用したい場合、フィールドごとに式を設定していく必要があります。


手間がかかるだけでなく、メンテナンスする場合にも各設定を修正していく必要があるためヒューマンエラーの原因にもなります。
そんな時に、便利なのが“複数フィールドフォーミュラツール”になります。

同じ式を複数のフィールドに適用する

支店・製品・年ごとの各月の売上と年間売上のデータが含まれる以下のようなデータがあり、そこから各月の売上が年間売上の割合を設定したい場合を例として見ていきたいと思います。


複数フィールドフォーミュラツールでは1つの式を作成し、その式を適用するフィールドを指定します。
適用するフィールドは、データ型を指定し、該当のデータ型のリストからフィールドを選択します。
データ型を指定する際には、単一のデータ型もしくはすべてのデータ型を指定することができます。
設定した式を適用したフィールドは新規に追加されますが、既存のフィールドを更新することも可能です。
新規に追加する際には該当のフィールドと見分けがつくように接頭辞や接尾辞に追加する文字を設定します。


今回は、データ型に“数値”を選択し、フィールドとしては“合計”以外を設定しました。
式では、変数として現在のフィールドを使用することができ、上記にて選択したフィールドに対して動的に適用されます。また、通常のフォーミュラツールと同様にフィールドを使用することも可能です。
今回は、各月の売上が年間売上の割合を算出するため以下のような式を設定しました。

([_CurrentField_] / [合計]) * 100


ワークフローを実行した結果、各月の割合が確認できました。

まとめ

今回は、複数行・複数列の計算に関してご紹介しました。
結合されたセルに対する処理ができたり、式を作成する手間を軽減するのに便利なつーるになりますので、ぜひご活用ください。

明日のテーマは「Alteryxでデータを分割!パースしてみよう」になります!!お楽しみに!!