見出し画像

その発想はなかった!文字列を右から区切る!

連続投稿となりますがお許しください、たっくんです。パブリック活動の締めくくりとして、Preppin' DATA Practiceの第6回のポイントについてご紹介したいと思います。

今回の動画では、 Preppin' DATA 24Wk35、Premier League Results を取り上げていますが、この問題、正直心を折られました。師匠のNakajima2さんをはじめ、多くの参加者が同じ気持ちだったと思うのですが、mitamuuさんが目から鱗の驚愕テクニックで世界を広げてくれたので、ぜひともご紹介!

セル幅130ptの文字列が2列という地獄

なんですか、これ。私の貴重な時間を(略)  ※北宇治高校の滝先生風に

間違ったExcel活用のお手本みたいな長い文字列。しかも環境依存文字上等。
文字列の規則性もちょこちょこ乱れているうえに、
驚くなかれ、ほんとの動画へ飛べるハイパーリンク付き。

ええ、ここまでは受け入れます。受け入れますとも!

でもね、これは付き合いきれんですよ!

1番上の塊のタイトルが、ヘッダーに吸われてる・・・行補充までさせる!?マジで!?
Matchday 1, 2, 3, 4, 5, 6, 7・・・・2ぃーー!?

DATA Saber向けの勉強もある中で深追いできなかったのが実情でした。

一番厄介なのは改行コードの数のバラつき!

みなさんがもっとも頭を悩ましたのが、上図でも見えている \n でした。
一見、各文字列に規則的に入っているようにみえるのですが、実は行によってバラツキがあります。

これを通常の感覚で 値の分割(Split) すると、意味の違う値が同じフィールドに混ぜ込まれてしまうことになります。こんな感じ。

1つだけ左のフィールドにずれている!この行だけ\nが2つ。他は3つが大半。

多くの参加者が、左から分割したものをどう直していくかが焦点でした。\nの数がバラついているのは左から4番目の位置なので、そこを飛ばして分割できればしたいけど、、、という感じです。

右から分割していくことも可能!

そこを彗星のごとくスマートに解決したのが、最後の区切り文字からN番目まで戻って分割、という技です

そういえばこんなのあった!

文字列を分割するのは split関数ですが、この引数にマイナスがあるのは見落としていました。

紹介してくださったmitamuuさんによると、URLを分割するときによく使うということで思いついたそうです。

これを使うことで、\nの数がばらついているところは、一番左のかたまりの末尾に追いやることができて、スマートにフィールドを作ることができるということでした。

引数に入るものを総確認してみると吉?

過去に、自分で思いつかなかった引数の入れ方の一つに、集計関数の中でIF文書いちゃうというのがあります。ほかにも、日付関数に記入するyyMMddを " " でくくるか ' ' でくくるかなど、引数に入るものについては、知識がまだまだ足りないように感じています。

たまにはヘルプを調べて、有用な引数の入れ方を勉強してみなければと思った次第です。