【初心者向けAlteryx】ウィークリーチャレンジ#109

【初心者向けAlteryx】ウィークリーチャレンジ#109 | Tableau-id Press -タブロイド-
Alteryx Designer x64 - challenge_ja_109_start.yxmd

はじめに

こんにちは、y.koです。4月になりました、お馴染みの(?)【初心者向けAlteryx】シリーズです!

過去の投稿をご覧いただければお察しの通り、本当に基本的なところからスタートしています。ベテランの先輩方には本当に当たり前のことしか書いてないと思われざるを得ないほど、文字通り”初心者向け”となっています!

なぜここまで基礎的な部分に最初こだわり続けるかというと、1→10よりも0→1のほうがはるかに難しいからです。基本的な部分の反復練習がないと次のステップには進めません、進んだとしても感覚的な操作でしかないと個人的に思います。また、Alteryxには認定試験が3つほどあり、初歩的な位置づけとしてAlteryx Designer Coreという試験があります。公式のPREP GUIDEを見る限り、まだそこまで難しいツールは出てきません。このブログを読んでくださっている初心者はまずはこの試験合格を目指しましょう!

とここまで前置きが長くなってしまいました、さっそく今週わたしがピックアップした問題を紹介していきたいと思います!

 

問題および解答

チャレンジ#109:燃料の供給

です!2021/4/2現在日本語版の最新の問題となっています!

提供されたデータセットを使用して、レビューが必要な怪しいトランザクションにフラグを立てましょう。

ここで言うフラグとは、「(車両容量×燃料価格)を超えるトランザクションはレベル2として、(車両容量×燃料価格)の値の90%を超えるトランザクションはレベル1としてフラグを立てる」ことを言います。

そしてこの問題に対して以下のようなプロセスで答えに導くことができました。


いつも通り、解説用に先頭からツールに番号を割り振りました。

 

解説

まずは問題の解釈です。フラグを立てる条件式を日本語の数式で表してみると、

車両容量×燃料価格 < トランザクション :レベル2

(車両容量×燃料価格)×0.9 < トランザクション :レベル1

これをどこかのタイミングでフォーミュラツールを用いて表せばいいということがわかります。

次に、データセットを見てみます。4つあるためそれぞれの中身をチェックすると、

トランザクション:カード番号・日付・量

カードペアリング:車両番号・カード番号

燃料タイプ:車両番号・タイプ・容量

燃料価格:日付・レギュラー・ディーゼル

となります。複数のデータの間には共通項があるため、最初の思考回路として4つのデータセットを一つで表すことが思い浮かぶと思います。Joinツールを用いて2つずつ合わせていきます。


トランザクションカード番号・日付・量

カードペアリング:車両番号・カード番号

燃料タイプ:車両番号・タイプ・容量

燃料価格:日付・レギュラー・ディーゼル

カード番号が一致しています。これらを結合させると新たなデータセットができます。

カード番号・日付・量・車両番号

燃料タイプ車両番号・タイプ・容量

燃料価格:日付・レギュラー・ディーゼル

出来上がった新しいデータセットと、「燃料タイプ」データセットを比較すると、車両番号が共通していることがわかります。ただ、「燃料タイプ」内の車両番号はある一定の範囲で区切られてタイプとして表されているため、個々の車両番号が並べられている新しいデータセットとそのまま合わせることができません。そのため、フォーミュラツールを用いて、「燃料タイプ」にある車両番号とタイプの関係を参考にしながら新しいデータセットに"タイプ"という新しいカラムを作ってみます。

カード番号・日付・量・車両番号・タイプ

燃料タイプ:車両番号・タイプ・容量

燃料価格:日付・レギュラー・ディーゼル

とそれぞれのデータセットが上のようなカラムを持つことになったので、共通しているタイプで結合します。このとき「燃料タイプ」データセット内の車両番号はもう出番がないため、出力から除外しました。

カード番号・日付・量・車両番号・タイプ・容量

燃料価格日付・レギュラー・ディーゼル

このようなデータセットが得られました。最後に、"日付"のカラムが共通しているため結合します。

このようにして、最初の4つのデータセットを1つにまとめることができました。

カード番号・日付・量・車両番号・タイプ・容量・レギュラー・ディーゼル

データセットを1つにまとめることができたらあとは答えにたどりつくように自分で計算して取捨選択するだけです。

取捨選択をするには取捨選択のための条件式が必要となります。

車両容量×燃料価格 < トランザクション :レベル2

(車両容量×燃料価格)×0.9 < トランザクション :レベル1

そこで、先ほど示したこの2つの式が生かせます。大小比較する前に、車両容量×燃料価格という計算をする必要があるため、"価格チェック"と名付けたカラムを新しく作ってみます。

④までで作ったフィールドでは、燃料タイプによって平均燃料価格が異なります。そのため燃料タイプを条件で場合分けしなければなりません。

"価格チェック"が作れたら、上の2つの条件式の出番です。日本語の式通りに以下のようにフラグを作成することができます。

フラグが1または2以外のものをNullにすることによって、フラグが立っているものを次の作業で抽出することができます。

"フラグ"カラムがNullでないものがこの問題の解答であるため、フィルターをかけてあげます。

こうして得られたものがほぼ答えです。あとは出力で示されている通りのフォーマットに直すだけです。

フィールド取捨選択して並び替え、

"カラム"と"車両番号"を昇順にしてあげたら完成です!

 

おわりに

いかがだったでしょうか。新しいツールを使わなくても解けるシンプルな問題だったと思います。

問題一つとってもさまざまなアプローチ法があると思うので、もっと効率的なやり方あるよ!もっとかっこいいやり方あるよ!を発見したらぜひぜひ教えてください!

次回もお楽しみに

 

y.ko