はじめに
こんにちは、y.koです!【初心者向けAlteryx】第三回です!
今回の選題もそこまで難しい問題ではなく、初心者にぴったりのものになっていると思います!このような問題を解きつつ徐々に力をつけていきましょう!
問題および解答
問題はこちら!チャレンジ #107:相対的にみると年をとっています
タクヤはクミコの25年3ヶ月後に生まれました。ケンジはタクヤの1週間前に生まれたヨウヘイより2年53日上です。ヨウヘイは2015年5月5日に生まれました。サトシはタクヤの誕生月の初日に生まれました。ジュンコはタクヤの誕生のすぐ後の金曜日に生まれました。
家族全員の生年月日を見つけましょう。
こちらの問題に対する解答は
になります。めちゃくちゃシンプルです。
解説
問題文が少しややこしいですが、自分の理解しやすいように書き換えてみると全体像が見えてくるので、一例ではありますが数式に置き換えてみました。
❶タクヤ=クミコ+25y3m
❷ケンジ=ヨウヘイ+2y53d
❸ヨウヘイ=タクヤ+7d
❹サトシ=タクヤの誕生月の1日
❺ジュンコ=タクヤの誕生日のすぐあとの金曜日
こうすることによりどのようなツールおよび関数を使って解けばいいのかが可視化できるようになったと思います。では詳しく各ツールを見ていきましょう。ツール番号は先頭から順に割り振っています。
① 後の作業において、列単位で追加するためにカラムを直接名前となるようにクロスタブツールを用いて変換する
② ①で作業しやすいようにテーブルを変換したので、あとは上で整理した条件式に沿って式を追加する
❶ DateTimeAdd([タクヤ],-25,’years’)
DateTimeAdd([クミコ],-3,’months’)
→単位ごとにAlteryxが計算するため、手順数を減らすためにすべて’month’に統一して操作するとより効
率的ではある。
❷ DateTimeAdd([ヨウヘイ],-2,’years’)
DateTimeAdd([ケンジ],-53,’days’)
❸ DateTimeAdd([ヨウヘイ],+7,’days’)
❹ Left([タクヤ],8)+’01’
→「タクヤの誕生月の初日」ということから、フォーマットを見て最初の8文字が一緒であとの部分を01
にするという方法でやってみました(ずるい…)
❺ DateTimeFormat([タクヤ],’%A’)
DateTimeAdd([タクヤ],+3,’days’)
→’%A’は曜日のフルネームを表す。ここの意図としては、「タクヤの誕生のすぐ後の金曜日に」ジュンコ
が生まれたため、まずタクヤが生まれた日が何曜日だったかを確認し、「すぐ後の金曜日」に値するの
が何日後かを求め、タクヤの誕生日を基準にその日数分だけ加えようとした。今回タクヤの誕生日が火
曜日なので、すぐ後の金曜日はすなわち3日後であることがわかる。
③ ④で曜日の列を追加するために、転置作業を行う
転置ツールは【初心者向けAlteryx】ウィークリーチャレンジ#17 で説明させていただきました。そちらもぜひご覧ください!
④ DateTimeFormat([Value],’%A’)
というカラムを追加することにより、誕生日が何曜日だったのかがわかるようになる
⑤ この⑤の作業はなくても答えが既に出ていますが、自分の作成したデータセットをいつだれが見てもわかるようにカラム名を変更する
今回も新しいツールが出てきました。①のクロスタブツールです。
アイコンの見た目転置ツールととても似ていますね。操作内容はただ転置ツールをリバースしただけのものです。詳しい説明は弊社r.itoさんがChallenge#54!クロスタブツールの活用!で説明してくださっているので、Challnge #54こちらをと合わせてこちらもご参照ください!
おわりに
以上問題の解説をさせていただきました!いかがだっだでしょうか。DateTimeAddがすべてを物語っていたような気がします。
今回までの3回分で脱"本当の初心者"できたのではないでしょうか。次回からは少しレベルアップしてみようと思います!お楽しみに~!
y.ko