データサイエンス100本ノックをAlteryxで。15日目(解答)

100本ノック

このページは解答編です。

↓ネ

↓タ

↓バ

↓レ

↓防

↓止

答えと解説

設問はこちらでした。

P-015: 顧客データ(customer.csv)から、ステータスコード(status_cd)の先頭がアルファベットのA〜Fで始まり、末尾が数字の1〜9で終わるデータを全項目抽出し、10件表示せよ。

解答ワークフローは以下のようになります。

基本的にはフィルターツールを使いますが、13問目、14問目のAND条件となるため、そのまま流用することも可能です。

  1. 複数のフィルターツール(13問目、14問目流用)
  2. 1つのフィルターツール
  3. 正規表現ツール

できれば1つのフィルターツールで表現できるようにすることをおススメします。

1. 複数のフィルターツール(13問目、14問目流用)

「ステータスコード(status_cd)の先頭がアルファベットのA〜Fで始まり、末尾が数字の1〜9で終わるデータ」ということなので、「先頭がアルファベットのA~F」かつ「末尾が数字の1~9」という二つのAND条件です。

まずは、13問目、14問目の結果をそのまま流用していきましょう。

1つめのフィルターツールは、13問目の内容です。

2つ目のフィルターツールは14問目の内容です。

2. 1つのフィルターツール

それでは、今度は二つのフィルターツールを一つにまとめてみましょう。

13問目の条件式は以下の通りでした。

Left([status_cd], 1) >= "A" AND
Left([status_cd], 1) <= "F"

14問目の条件式は以下の通りでした。

Right([status_cd], 1)>="1" AND
Right([status_cd], 1)<="9"

これらを単純にANDで結合すれば完了です。

Left([status_cd], 1) >= "A" AND
Left([status_cd], 1) <= "F"
AND
Right([status_cd], 1)>="1" AND
Right([status_cd], 1)<="9"

すべてAND条件なので特にカッコでくくってたりはしませんが、途中にOR条件を含むような場合は、13問目、14問目の条件式をカッコでくくってからANDでくくりましょう。

3. 正規表現ツール

若干高度な手法になりますが、正規表現ツールを使うこともできます。

今回は、「ステータスコード(status_cd)の先頭がアルファベットのA〜Fで始まり、末尾が数字の1〜9で終わるデータ」ということですが、単純に13問目と14問目の正規表現式を結合すればオッケーです。13問目は「^[A-F].*」、14問目は「.*[1-9]$」ですので、13問目が行頭、14問目が行末です。そのまま結合すると「.*」が重複しますが、片方のみあればよいので、「^[A-F].*[1-9]$」となります。

正規表現ツールの設定は以下の通りです。

実際のワークフローは以下のようになります。

正規表現が使えればすっきりとした式で表現できますが、式を作れるようになるまでのハードルが若干高いです。これはもう色々と触って慣れてください。

解答ワークフローダウンロード

2022/08/21に差し替えました

コメント

タイトルとURLをコピーしました