チャレンジ #237: 銀行のリスクのあるビジネスに光を当てる
オプション
- RSS フィードを購読する
- トピックを新着としてマーク
- トピックを既読としてマーク
- このトピックを現在のユーザーにフロートします
- ブックマーク
- 購読
- ミュート
- 印刷用ページ
Alteryx
10-04-2023
06:18 AM
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- モデレーターに通知する
先週のチャレンジの回答はこちらで見つけることができます。
このチャレンジは@hannah_malek さんからのものです。Hannahさん、ご投稿ありがとうございました!
毎月、XYZ銀行のリスク・チームはリスク・レポートを作成し、その中で各主要リスク指標(KRI)は特定のしきい値に従って赤、琥珀、緑(RAG)のステータスに割り当てられています。これらのしきい値はKRIごとに固有であり、定期的に変更されます。
データセットは、KRI、日付、関連するKRIの詳細、および与えられた日付における各KRIに対応する閾値の集合から構成されています。これらには、赤色(red)カテゴリの閾値限界値、琥珀色(amber)および緑色(green)カテゴリの上限値および下限値と、それぞれのオペレータ(演算子)が含まれます。
今週のチャレンジは、特定の日付のRAGしきい値に基づいて、各KRIのRAGステータスを計算することです。
15 - Aurora
10-04-2023
05:30 PM
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- モデレーターに通知する
回答します。
スポイラ
式のバリエーションが将来変更になった場合にも正常に動作するように作りたいとは思いましたが
どういう場合分けをすれば十分になるかわからないので、
もし想定外の入力で「RedでもAmberでもある」ような結果になった場合はエラーを出すようにしてみました。
Workflow

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")
どういう場合分けをすれば十分になるかわからないので、
もし想定外の入力で「RedでもAmberでもある」ような結果になった場合はエラーを出すようにしてみました。
Workflow
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
ボリード
10-04-2023
05:49 PM
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- モデレーターに通知する
やってみました。
スポイラ
マクロタグが付いていたのでマクロを使うことを期待されていたかもしれないですが、なしでやりました。そしてソート順は分からずです・・・。

smiyazawa
ファイアボール
10-05-2023
04:42 AM
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- モデレーターに通知する
やってみました。
スポイラ
マクロをどう使うか分からなかったです。

17 - Castor
10-05-2023
06:32 AM
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- モデレーターに通知する
17 - Castor
10-05-2023
07:54 AM
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- モデレーターに通知する
マクロ版も作ってみました。
スポイラ
ここではバッチマクロを使っています。色々パターン作ってみました。

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

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



数式は、アクションツール内で作り込みます。


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

これ系の動的に式を組むパターンだと、例えば演算子と値を外部のExcelファイルに持って、そこだけワークフローを使う人が書き換えて、という感じでAlteryxの知識もってない人に使わせるような場合にしばしば使われる手法です。ただ、汎用的に動くワークフローを作るのなかなか技術が必要ですし、デバッグも大変なので、普通にワークフロー内に作り込みたいというのが正直なところです。
Macro1:
コントロールパラメータ入力に入力するフィールドに式を半分くらい作り込んでいます。こんな感じで・・・。
これ、正直値まで入れ込むことも可能です・・・(普通の入力用にすべての値を埋め込んでいないのはちょっとした良心?です)。いずれにしても、マクロに入れる前に式を構築しておけば、マクロ自体は非常に単純なマクロになります。
Macro2:
逆に、バッチマクロ内で数式を作り込むパターンです。これ、パラメータが多くなるとマクロ内がキモくなるのであまり好きじゃないのですが、過去にこの3倍くらいのパラメータがあるやつ作ったことがあります。数式は、アクションツール内で作り込みます。
正直意味不明になりやすいので、あまりおすすめしません。さらに複雑になると、接続自体に名前をつけないと混乱します。
標準マクロでバッチマクロを隠蔽:
これはいくつか利点があって、外部で作っている数式をマクロ内に閉じ込めることができます。また、Macro1も2もそうなのですが、バッチマクロを使う場合は、グループ化タブのControl Group Byフィールドを設定しないといけないのですが、これ運用のときに結構設定忘れてしまうので(特に初心者には理解できないですし、ベテランでも絶対説明必要です)、それが隠蔽できるのも非常に良いです。
こういうパターンはいろんな実装方法がありますよね・・・。
16 - Nebula
10-05-2023
04:16 PM
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- モデレーターに通知する
バッチマクロのコントロールパラメータって、2つ以上置けるんですね。今まで、コントロールパラメータはグループ化に指定したフィールド用に1つだけしか置けないものだと、盛大に勘違いしてました。勉強になります!
14 - Magnetar
10-15-2023
05:35 PM
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- モデレーターに通知する
21 - Polaris
10-20-2023
06:42 PM
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- モデレーターに通知する
やりました。