先週のチャレンジの解答は こちらで見つけることができます。
今週からウィークリーチャレンジはACEプログラムとの新しいパートナーシップを開始します。 今週から4週間にわたり @NicoleJohnson がウィークリーチャレンジを出題します。楽しんでいただければ幸いです。
International Bank of Awesome Dataは、最も重要であるデータに焦点を当てる能力に誇りを持っている新しい銀行です。世界中に銀行の支店(Bank Branch)があるIBADは、実際にデータを読み取ることができれば、真に世界的なフォースとなることでしょう。
ところが、実際にはデータは乱雑で、本当に素晴らしいデータではあるのですが、それを使って何かをする前に、クリーンアップする必要があります。それでは、基本的なデータ準備の演習から始めましょう。IBAD本社に提出された銀行取引ファイルのサンプルを使用して、世界中の12の銀行支店(Bank Branch)の月次レポートを作成しましょう。
チャレンジ:
各支店は、データ抽出に独自のフォーマットを使用しているようです。したがって、各ファイルには月次レポートに必要な情報が含まれていますが、リージョン(Region)ごとにすべて異なるフォーマットでファイルが作成されているため、解析してクリーンアップして一貫性のあるフォーマットにする必要があります。
データ出力を標準化するために適用する必要のあるいくつかのルール:
- 顧客IDを除くすべてのフィールドから先頭の0および/または末尾の空白を削除してください(顧客IDは常に12文字で、スペースは使用せず、必要に応じて先行0を使用する必要があります)
- 銀行口座番号は常に6桁– 8桁– 2桁のパターンに従う必要があります(123456-12345678-12)
- トランザクションDateTimeは標準のAlteryx日時形式(yyyy-mm-dd HH:MM:SS)である必要があり、フィールドのデータ型はDateTimeである必要があります。
- Debit / Creditフィールドがない場合、Amountフィールドに-記号がある場合はCredit(C)であると見なすことができます。それ以外の場合は、デフォルトでDebit(D)になります。 **
- Transaction ClearedIndicatorのデータ型はブール値である必要があります。
**現時点では、[Amount] フィールドと[Opening Balance] フィールドを変更する必要はありません。これらのフィールドは来週のチャレンジでクリーンアップします。**
リージョンBの25行目の日付がだけ合いませんでした。
今回はエクストラクレジットまでできました!いろんな解き方ができそうですね。
できました!なかなか歯ごたえありですね・・・。
こちらはエクストラクレジットをわざと回答どおりにしたバージョンです(Challenge_150_ja_Start File_AK2.yxzp)。
となると思います。
本来は、こうなるべきな気がします(18行目だけ行の長さが1文字分長い)。
ACEシリーズ、おもしろいです!
今回は久しぶりにしびれました。かなり面倒でしたが、正規表現と日時変換の勉強になりました。
列分解ツールを使うのはカッコ悪いと思っている質なので、正規表現でやりましたが。Region B の Date の抜き出しだけはいい感じのルールを見つけることが出来ず、最終的に出力例に合うように Formula Tool で化粧直しをしました。(出力例の結果からの逆引きではなく 日付部分のルールを見つけた方こっそりとスポイラ返信で教えて下さい)
投稿します。
回答します。
Region B
1件 一致しませんでした。
IBANのフィールド長は国により異なるので、IBANの国とフィールド長の情報がなければどちらが正しいかは判別できません。
Field:Transaction DateTime Row:25
Expected:2021-09-06 16:10:36
Actual:2021-09-26 16:10:36
Region C
1件一致しませんでした。
Field:Opening Balance Row:18
Expected:0 82002,9
Actual:82002,9
先頭の0を除くのであれば、Actualで合っていると思います。
(この行は、ひとつ前のフィールドから既に1桁ずれていますね。後でクレンジングするのでしょうけど。)