日付ツールで動的なデフォルト値を持たせるためのTips

2019.08.13

みなさんはDate Tool(日付ツール)を使っていますか?カレンダーのインターフェースで日付を選択できるところが便利ですが、特に開始日と終了日のような形でDate Toolを使っている場合、

デフォルトで月末と月初の日が選択されていたらいいのに…

と感じる方も多いのではないでしょうか。私も思います。夏ですしカーソル移動は最小限にとどめたいですよね。結論から言うと標準の機能としては備わっていないのですが、作り方を工夫することで実現が可能です。

もくじ

前提条件

このブログを書くに当たって使用した環境は以下の通りです。

  • Alteryx Designer 2019.2

動的なデフォルト値を持たせる

前述の通り、現時点で動的なデフォルト値を持たせる機能は標準で備わっておりません。そこで、ラジオボタンで「デフォルトの値を選択するか」と「ユーザーが任意で入力するか」を切り替えるようにします。完成図はこちら。

デフォルト値のラジオボタンを選べば月初から月末までの値が出力されます。

カレンダーから日付を選べば任意の日付レンジの値も出力できます。

この機能を実現するワークフローの作り方2種類をご紹介します。

Condition Tool(条件ツール)を使った方法

まずはCondition Tool(条件ツール)を使った方法です。ワークフローの全体図は以下の通り。

順を追って見ていきましょう。下部分のツールでは以下の処理を実行します。

  • 開始日(start)と終了日(end)にそれぞれ月初・月末の日付を入れる(Formula Tool)
  • 開始日より大きく、終了日より小さい値を抽出する(Filter Tool)

Formula Tool(フォーミュラツール)では以下の関数で月初・月末が入力されるように設定しています。

  • DateTimeFirstOfMonth()
  • DateTimeLastOfMonth()

Filter Toolは以下の通り。

この部分のワークフローだけを今日の日付(2019/8/12)実行すると、2019/8/1〜2019/8/31までのデータのみが抽出されます。インターフェースツールを配置してユーザーが操作できるようにしましょう。まずはDate Toolを配置して任意の日付を選択できるようにします。Radio Button Tool(ラジオボタンツール)を2つ配置し、それぞれ「デフォルト日付を選択したい時用」「日付を指定したい時用」に分けます。

「日付を指定したい時用」ラジオボタンが選択された場合にのみDate Toolで選択された日付をFormula Toolに流すため、Condition Tool(条件ツール)を使用します。基本的な使い方は以下のエントリにて紹介されています。

設定画面のExpressionに直前のRadio Button Toolから取得したコネクション名を入力することで、ボタンが選択された場合という表現ができます。今回の例では[#1]と入れています。

インターフェースツールの使用方法として、既存の値をアップデートする際はAction Tool(アクションツール)が必要となります。Action Toolの上側2つの小さなコネクタはそれぞれ以下の機能があります。

アイコン 名前 説明
条件アンカー Condition Tool(条件ツール)の入力を受け付ける
入力コネクタ インターフェースツールの出力を受け付ける

Condition ToolのアウトプットアンカーのT(真の場合)を条件アンカーに接続し、Date Toolのコネクションは入力コネクタへ接続します。「日付を指定したい時用」ラジオボタンが選択されていないケース、つまり「デフォルトの日付を選択したい時用」ラジオボタンが選択されているケースであるF(偽の場合)はどこにも接続しません。Formula Toolにはすでに月初・月末の日付が取得されるよう設定されているためです。

Action Toolの設定は「Update Value with Formula(フォーミュラで値を更新)」を選びます。画面下部分のFormulaにはDate Toolからのコネクション名を入力します。ここで注意しなければならないのはコネクション名をクォーテーションで囲むことです。日付はYYYY-MM-DDの形を取るため、引き算されてしまい数値型で後続のツールに渡され、クォーテーション無しの場合データ型が合わずにエラーが発生します。

最後にデフォルト日付を選択したい時用ラジオボタンがオンの時にはDate Toolを非活性にするようにしておきましょう。[View]->[Interface Designer]でInterface Designerを立ち上げます。

日付を指定したい時用ラジオボタンの配下にDate Toolが配置されるように右の十字ボタンで操作します。以下画像のようになればOKです。

細かい違いですが、以下のようにラジオボタンの配下にDate Toolが入っていない状態ですと、デフォルト日付を選択したい時用のラジオボタンが押されていてもカレンダーから任意の日付を選べてしまうので注意です。

Detour Tool(分岐ツール)を使った方法

条件分岐に使えるツールにはDetour Tool(分岐ツール)もあります。ワークフローの全体像は以下の通り。

「日付を指定したい時用」ラジオボタンをAction Toolに繋ぎ、さらにDetour Toolに繋げます。Detour Toolに繋げるとAction Toolの設定はデフォルトで「Update Detour Direction from Question(質問から分岐方向を更新)」となります。この場合、ラジオボタンが選択されていればDetour Toolの右に、そうれなければ左に処理が流れます。

ラジオボタンが選択されていない左側のFormula Toolには月初・月末が入力されるよう設定します。

ラジオボタンが選択された場合に処理が流れる右側にはDate Toolのコネクション名を入力し、指定した日付がそのまま入るようにしておきます。

あとの処理は前項のCondition Toolと変わりありません。Interface Designerでラジオボタンの配下にDate Toolが配置されるようにしておくのもお忘れなく。

最後に

あればちょっと便利な動的にデフォルト値を持たせるワークフローのご紹介でした。月初・月末以外にも独自の日付レンジを持たせたいケースにも対応できそうです。なお、今回使用したワークフローは弊社ご契約のユーザ様であれば、専用ポータルからダウンロードできます。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。 alteryx_960x400