Free Trial

ウィークリーチャレンジ

トップになるためのスキルをお持ちですか? ウィークリーチャレンジを購読しましょう。ベストを尽くして問題を解決し、解決策を共有して、他のユーザーがどのように同じ問題に取り組んだのか確認しましょう。私たちも解答例を共有しています。

チャレンジ #237: 銀行のリスクのあるビジネスに光を当てる

AYXAcademy
Alteryx
Alteryx

 

先週のチャレンジの回答はこちらで見つけることができます。

 

このチャレンジは@hannah_malek さんからのものです。Hannahさん、ご投稿ありがとうございました!

 

AYXAcademy_0-1696425062727.jpeg毎月、XYZ銀行のリスク・チームはリスク・レポートを作成し、その中で各主要リスク指標(KRI)は特定のしきい値に従って赤、琥珀、緑(RAG)のステータスに割り当てられています。これらのしきい値はKRIごとに固有であり、定期的に変更されます。

 

データセットは、KRI、日付、関連するKRIの詳細、および与えられた日付における各KRIに対応する閾値の集合から構成されています。これらには、赤色(red)カテゴリの閾値限界値、琥珀色(amber)および緑色(green)カテゴリの上限値および下限値と、それぞれのオペレータ(演算子)が含まれます。

 

今週のチャレンジは、特定の日付のRAGしきい値に基づいて、各KRIのRAGステータスを計算することです。

Yoshiro_Fujimori
オーロラ

回答します。

スポイラ
式のバリエーションが将来変更になった場合にも正常に動作するように作りたいとは思いましたが
どういう場合分けをすれば十分になるかわからないので、
もし想定外の入力で「RedでもAmberでもある」ような結果になった場合はエラーを出すようにしてみました。
Workflow
Challenge_237_1.png
Formula Tool Green
IF IsNull([Green Sign])
THEN
IF [Green Low] <= [Value] AND
[Value] <= [Green High]
THEN "Green"
ELSE Null()
ENDIF
ELSEIF [Green Sign] = ">"
THEN
IF [Value] > [Green Low]
THEN "Green"
ELSE Null()
ENDIF
ELSE Null()
ENDIF

Formula Tool Amber
IF [Value] > [Amber Low] AND
[Value] <= [Amber High]
THEN "Amber"
ELSE Null()
ENDIF

Formula Tool Red
IF [Red_sign] = ">" AND [Value] > [Red]
THEN "Red"
ELSEIF [Red_sign] = "<" AND [Value] < [Red]
THEN "Red"
ELSE Null()
ENDIF

Test Tool
[RAG] IN ("Green", "Amber", "Red")
sanae
ボリード

やってみました。

スポイラ
マクロタグが付いていたのでマクロを使うことを期待されていたかもしれないですが、なしでやりました。そしてソート順は分からずです・・・。
challenge_237_start_file_ja_sanae.png
gawa
15 - Aurora
15 - Aurora

マクロ使う想定だと、Dynamic Replace使うってことでしょうか?なんかマニアックな気もしましたが、それでやってみました。

スポイラ
image.png 

 

smiyazawa
コメット

やってみました。

スポイラ
マクロをどう使うか分からなかったです。
スクリーンショット 2023-10-05 204051.jpg
AkimasaKajitani
17 - Castor
17 - Castor

できました!今回はひねりなしでストレートにやっています。

 

Designer Desktop

スポイラ
スクリーンショット 2023-10-05 220602.png

 Designer Cloud

スポイラ
スクリーンショット 2023-10-05 220549.png

Trifacta Classic

スポイラ
スクリーンショット 2023-10-05 222745.png

AkimasaKajitani
17 - Castor
17 - Castor

マクロ版も作ってみました。

 

スポイラ
ここではバッチマクロを使っています。色々パターン作ってみました。

スクリーンショット 2023-10-05 234110.png



これ系の動的に式を組むパターンだと、例えば演算子と値を外部のExcelファイルに持って、そこだけワークフローを使う人が書き換えて、という感じでAlteryxの知識もってない人に使わせるような場合にしばしば使われる手法です。ただ、汎用的に動くワークフローを作るのなかなか技術が必要ですし、デバッグも大変なので、普通にワークフロー内に作り込みたいというのが正直なところです。

Macro1:
コントロールパラメータ入力に入力するフィールドに式を半分くらい作り込んでいます。こんな感じで・・・。 

スクリーンショット 2023-10-05 235200.png

これ、正直値まで入れ込むことも可能です・・・(普通の入力用にすべての値を埋め込んでいないのはちょっとした良心?です)。いずれにしても、マクロに入れる前に式を構築しておけば、マクロ自体は非常に単純なマクロになります。

スクリーンショット 2023-10-05 234249.png
スクリーンショット 2023-10-05 234301.png

Macro2:

逆に、バッチマクロ内で数式を作り込むパターンです。これ、パラメータが多くなるとマクロ内がキモくなるのであまり好きじゃないのですが、過去にこの3倍くらいのパラメータがあるやつ作ったことがあります。

スクリーンショット 2023-10-05 234409.png
数式は、アクションツール内で作り込みます。

スクリーンショット 2023-10-05 234429.png

正直意味不明になりやすいので、あまりおすすめしません。さらに複雑になると、接続自体に名前をつけないと混乱します。

標準マクロでバッチマクロを隠蔽:

Macro1を標準マクロの中に入れたパターンです。
スクリーンショット 2023-10-05 234845.png

これはいくつか利点があって、外部で作っている数式をマクロ内に閉じ込めることができます。また、Macro1も2もそうなのですが、バッチマクロを使う場合は、グループ化タブのControl Group Byフィールドを設定しないといけないのですが、これ運用のときに結構設定忘れてしまうので(特に初心者には理解できないですし、ベテランでも絶対説明必要です)、それが隠蔽できるのも非常に良いです。

 

スクリーンショット 2023-10-05 234952.png

 こういうパターンはいろんな実装方法がありますよね・・・。

 

gawa
15 - Aurora
15 - Aurora

@AkimasaKajitani さん

バッチマクロのコントロールパラメータって、2つ以上置けるんですね。今まで、コントロールパラメータはグループ化に指定したフィールド用に1つだけしか置けないものだと、盛大に勘違いしてました。勉強になります!

DaisukeTsuchiya
パルサー

手を抜いたので、一か所一致しませんでした。

 

スポイラ
スクリーンショット 2023-10-16 093103.png

Qiu
21 - Polaris
21 - Polaris

やりました。

スポイラ
challenge_ja_237.PNG