Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

ウィークリーチャレンジ

トップになるためのスキルをお持ちですか? ウィークリーチャレンジを購読しましょう。ベストを尽くして問題を解決し、解決策を共有して、他のユーザーがどのように同じ問題に取り組んだのか確認しましょう。私たちも解答例を共有しています。

チャレンジ #150: International Bank of Awesome Data - パート I

NicoleJohnson
ACE Emeritus
ACE Emeritus

Weekly Challenge Image 302.png

先週のチャレンジの解答は こちらで見つけることができます。

 

今週からウィークリーチャレンジは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] フィールドを変更する必要はありません。これらのフィールドは来週のチャレンジでクリーンアップします。**

gawa
15 - Aurora
15 - Aurora

リージョンBの25行目の日付がだけ合いませんでした。

gawa_6-1641869812965.png

 

 

 

スポイラ
gawa_0-1641869267356.png

👇25行目のデータから日付をパースすると、2021.9.6か2021.9.26の2パターンあり得ます。他の行もこのパターンはあるのすが、その場合、日付が大きくなる方向にパースしましたが、この25行目はそれだとダメなようです。色々考えたのですが、日付を取り出すパターンが見つからず、他の方の回答を参考にしたいです・・・。

gawa_2-1641869356467.png

 

 

 

sanae
ボリード

今回はエクストラクレジットまでできました!いろんな解き方ができそうですね。

スポイラ
■メインフロー
Challenge_150_ja_Start File_MainFlow_sanae.png
■マクロ(リージョンC用)
Challenge_150_ja_Start File_Macro_sanae.png
AkimasaKajitani
17 - Castor
17 - Castor

できました!なかなか歯ごたえありですね・・・。

 

スポイラ

こちらはエクストラクレジットをわざと回答どおりにしたバージョンです(Challenge_150_ja_Start File_AK2.yxzp)。

AkimasaKajitani_1-1641904138925.png

 


本来あるべき姿でエクストラクレジットを作ると(Challenge_150_ja_Start File_AK.yxzp)、
AkimasaKajitani_4-1641904408611.png

となると思います。




回答例の方を見ると、Opening Balanceの18レコード目のパースでミスってますね・・・。
AkimasaKajitani_2-1641904261368.png

本来は、こうなるべきな気がします(18行目だけ行の長さが1文字分長い)。

AkimasaKajitani_3-1641904347031.png

 

 

ACEシリーズ、おもしろいです!

 

Qiu
20 - Arcturus
20 - Arcturus

Parse or not parse, that is the question. 😁

@SaoriG お休みですかね。

@NicoleJohnson 日本語もできるですね。👍

スポイラ
Challenge_ja_150.PNG
DaisukeTsuchiya
パルサー

今回は久しぶりにしびれました。かなり面倒でしたが、正規表現と日時変換の勉強になりました。

スポイラ
@AkimasaKajitani  のご指摘どおり、エクストラクレジットでは18行目がずれたままですが諦めました。
AM、PMの換算とか、色々なところに落とし穴がある問題でした。

キャプチャ.JPG



ks4050kt
アステロイド

 

列分解ツールを使うのはカッコ悪いと思っている質なので、正規表現でやりましたが。Region B の Date の抜き出しだけはいい感じのルールを見つけることが出来ず、最終的に出力例に合うように Formula Tool で化粧直しをしました。(出力例の結果からの逆引きではなく 日付部分のルールを見つけた方こっそりとスポイラ返信で教えて下さい)

 

スポイラ
ks4050kt_0-1642228403058.png

 

ntakeda
ボリード

フィールド名の規則性がわからなくてズルしました。

それでも、Date Timeが1か所合わなかったです。

 

スポイラ
ntakeda_1-1642418355161.png

 

Mukai
コメット

投稿します。

スポイラ
AとBにものすごく時間を取られてしまったので、Cは諦めました。
Mukai_0-1658241199082.png

 

Yoshiro_Fujimori
オーロラ

回答します。

スポイラ
Region A
Yoshiro_Fujimori_0-1668131684481.png

Region B
1件 一致しませんでした。
IBANのフィールド長は国により異なるので、IBANの国とフィールド長の情報がなければどちらが正しいかは判別できません。
  Field:Transaction DateTime Row:25 
  Expected:2021-09-06 16:10:36 
  Actual:2021-09-26 16:10:36

Yoshiro_Fujimori_1-1668131731362.png

Region C
1件一致しませんでした。
  Field:Opening Balance Row:18
  Expected:0 82002,9
  Actual:82002,9
先頭の0を除くのであれば、Actualで合っていると思います。
(この行は、ひとつ前のフィールドから既に1桁ずれていますね。後でクレンジングするのでしょうけど。)

Yoshiro_Fujimori_2-1668131766095.png