はじめに
こんにちは、積立お兄さんです。
大企業新卒3年目のAlteryx初心者です。
ひょんなことから「365日後にPredictive Masterになる!」という目標を掲げて、公式のWeekly Challengeにコツコツ挑戦しています。
この記事では、Alteryx歴3か月の平社員が、実務で生かせそうなノーコード分析力をどうやって身につけていくかを記録&共有していきます。
仕事が忙しく、投稿ができませんでしたがGWに時間がある程度あるのでどんどん進めていこうと思います!!
- 目標:ETLツールを自在に使いこなせるようになる
- 対象読者:Alteryxを始めたばかりの方/Weekly Challengeの解説が欲しい方
今回のチャレンジ:Weekly Challenge #003
- タイトル:[Weekly チャレンジ #003: 日付の解析] LINK
- レベル感:中級者向け(正規表現に馴染みがないと大変)
- ゴール:出力ファイルと同じフォーマットに入力ファイルを変換する。
Field_1列の文には、複数パターンのフォーマットで日付が含まれている。この日付部分を抽出して、正しいフォーマットにして別の列に出力する。 - 入力1
- 出力
解いた流れと使用ツール
ワークフロー全体
処理の手順と解説
-
正規表現ツール :入力データのField_1列の値の中から、日付の部分を抽出する。使用した式は以下の通り。
(\d{2}-\w+-\d{4})|(\w{3}\s\d{2},\s\d{4})|(\d+-\u{3}-\d{2})|(\w{3}\s\d+\s\d{4})
使用した式内のメモを残す
・\d{2}:2桁の数字
・\w+:文字が1つ以上
・\d{4}:4桁数字
・\s:スペース
これらを組み合わせて、Fiels_1列で使用されている日付のパターンを全て作る。
また、正規表現ツールの解析モードを使用するときには、()で囲う必要があるらしい。 - フォーミュラツール1 :正規表現ツールで抽出した様々なパターンの日付(文字列)を、すべてYYYY-mm-ddの形にする。
- フォーミュラツール2 :正規表現ツールの解析モードでの出力は、各パターンについて別の列に出力される。よって、ここでそれらを1つの列にする。
- セレクトツール :不必要な列を削除する。
詰まったポイントとその解決
-
問題1:正規表現がそもそもあまりわからなかった
→ 調べるしかない(←雑) -
問題2:正規表現ツールの解析モードでエラー
→ 抽出したい部分を()で囲う必要があり、それによってエラー回避。 -
問題3:IF文の使い方ミス
→ IF文の使い方って、プログラミング言語によって微妙に違いますよね。その違いによって、何でエラーが出るのかわからずに止まる時間、ありますよね。こんかいもそれでした。ELSE IFではなく、ELSEIFでした。泣いた。
結果と出力確認
→正しい出力フォーマットで、指定要件を満たしていました!
今日の学び・振り返り
-
新しく覚えたツール:正規表現ツール
解析モードでは、抽出したい部分を()で囲む必要がある。
このあたりの正規表現は覚えておくべし:
・\d{2}:2桁の数字
・\w+:文字が1つ以上
・\d{4}:4桁数字
・\s:スペース - 工夫ポイント:正規表現の式で、()|()|()という風にすることで、1つの式で複数パターンを検索するようにした。工夫というより、普通かもしれませんが、私はこの方法は知りませんでした。
- 実務への応用:正規表現はなんだかんだとても使いやすく、Alteryxでも簡単に使用できることが分かったので、ルールベースで入力されているデータには使用していこうと思った。
次回予告
次は【Weekly Challenge #004】に挑戦予定!
なるべくヒントを見ずにまずは自分の力で解いてみる!
タグ
Alteryx
weekly Challenge
データ分析
Predictive Master
365日チャレンジ
ノーコード