Alteryxツールアイコン「フォーミュラツール」(Formula Tool)をご紹介します
フォーミュラツール(Formula Tool)
[準備]カテゴリの[フォーミュラ]ツールについて紹介します。概要
フォーミュラツールは関数を用いて様々な計算を行えるツールです。既存のレコードのアップデートもできますし、新たなフィールドを作成し計算した値を格納することも可能です。
なお、フォーミュラツール1つで複数の計算を行うことができます。また、フォーミュラツール内の計算結果を新たなフィールドとしてそのまま同じフォーミュラツール内で計算することも可能です。
設定項目
フォーミュラツールの設定画面です。
項目 | 内容 |
---|---|
フィールドの選択 | 既存のフィールド選択を行います。新規フィールドの場合はフィールド名を入力します。 |
計算結果プレビュー | 入力した関数の計算結果が表示されます。 |
式記載エリア | 処理したい処理内容(関数等により作成)を記載します。 |
データタイプ・サイズ | 既存フィールドの場合は変更できません。新規フィールドの場合に設定します。 |
新規計算式の追加 | 関数フィールドを追加します。 |
注意既存フィールドではデータタイプ・サイズの変更ができない為、関数を用いてのタイプの変更や、計算結果でサイズをオーバーすると、正しくない結果となる可能性があるのでご注意ください。
関数の選択
関数の選択について概要を説明します。
概要説明ボタンをクリックすると関数選択画面が開きます。関数は13項目に分類されています。また関数一覧の上記の虫眼鏡マークの場所に入力を行うと関数検索ができます。
関数カテゴリ一覧
カテゴリ | 内容 |
---|---|
テスト | Null値の確認や文字列かどうかの判断などデータに対する確認テストを行う関数群です。 |
ファイナンス | 複合年間成長率や実効年利率などの金融アルゴリズム計算を行える関数群です。 |
ファイル | ファイルの存在確認やファイルパス抽出などファイル関連処理の関数群です。 |
変換 | データのタイプを変更する関数群です。 |
数学 | 絶対値や自然対数、三角関数など数学的な計算を行える関数群です。 |
数学:ビット単位 | 数値のみに対応する関数で、ビット単位での計算を行います。 |
文字列 | 文字列の加工や抽出、比較など文字列処理の関数群です。 |
日時 | 日時計算を行う関数群です。 |
最小/最大 | 最大値、最小値を求める関数群です。 |
条件式 | if文など条件分岐を行う関数群です。 |
演算子(演算式) | 関数で使うための演算子(+-×÷=<>! and orなど)一覧です。 |
特殊(スペシャライズド) | 結果ウィンドウにメッセージ出力を行ったり、XMLメタキャラ処理など特殊処理関数群です。 |
空間 | ポリゴン処理などの空間処理を行うための関数群です。 |
※「()」カッコ内は過去バージョンの表記
ここからサンプル
この関数群から必要な関数を選択して計算式を作っていきます。
入力データは下のテーブルを使用しています。この入力された「Value」の絶対値を求める簡単な関数を作成してみましょう。
地域 | value |
---|---|
東京 | 10 |
大阪 | -20 |
東京 | 30 |
東京 | -40 |
大阪 | 50 |
大阪 | -60 |
絶対値なのでABS関数を選択します。選択すると次の様に関数が記載されます。
設定値は新規フィールドとして名称を「絶対値」と入力します。データタイプは数値型です。今回は「Double(浮動小数点型)」とします。サイズは数値の場合は自動入力されます。
関数:ABS(x)のxの部分が変数です。このxの部分に実数やフィールドを記載することで式が完成していきます。
変数(フィールド)の選択
変数(フィールド)の選択方法について、概要を説明します。のちほど具体例を用いて説明します。
概要説明ボタンを押すとフィールド選択画面が開きます。
以下のフィールドや定数を選択できます。
項目 | 内容 | |
---|---|---|
既存の列 | 入力データのフィールドを選択します。 | |
新しいフィールド | フォーミュラツール内で入力位置の上に新規作成したフィールドがある場合表示されます。 | |
定数 | Engine.TempFilePath | Alteryxが一時ファイルを作成するディレクトリ。 |
Engine.Version | 実行しているAlteryxのバージョン。 | |
Engine.WorkflowDirectory | ワークフローのディレクトリ。 | |
Engine.WorkflowFileName | ワークフローの名前。 | |
Engine.GuiInteraction | ワークフローがGUIから実行されてる場合は1またはTrue、コマンドラインから実行されている場合は0またはfalseになります。 | |
Engine.IterationNumber(マクロのみ) | 0から始まるマクロの繰り返し回数になります。 |
ここからサンプル
ではサンプルに戻ります。フィールドを選択し、xの部分に記載するとプレビューに結果が表示されます。
エラー表示(プレビューが赤文字で表示)から通常のプレビューに変わったら関数は問題なしと判断できます。
出来上がった計算式を実行します。
新たなフィールドとしてValueフィールドの絶対値を計算したフィールドが、テーブルに追加されました。
複数の計算式について
フォーミュラでは1つのツールアイコン内に複数の計算式を持つことができます。また、ツールアイコン内で新たに作成したフィールドも計算に使うことができます。
では実際に計算式を追加してみましょう。
式を2つ追加したいと思います。
1つは、[数値]というDouble型の新規フィールドを作成し、計算式としては「[Value]+[絶対値]」とします。
もうひとつは、[文字列]というV_WString型の新規フィールドを作成し、計算式としては「"絶対値は"+ToString([絶対値])+"です"」とします。
数値フィールドと文字列フィールドにて、「+」の役割が変わることを確認してみましょう。
なお、「絶対値」はの「新しいフィールド」から選択します。
実行した結果は次の様になります。数値で「+」を使うと和算をおこない、文字列で「+」を使うと文字列の結合になります。
その他について
は最近使った関数や、保存された計算式を読み込めます。
は作成した計算式を保存できます。
関連記事
ファイル関数関連
数学関数関連
日付操作関数関連
※Alteryx Version 2018.2.5時点での情報です(一部は2019.4.4.20206に対応)