![見出し画像](https://assets.st-note.com/production/uploads/images/154928861/rectangle_large_type_2_49c131d20017c5b25625733d34614e5c.png?width=1200)
その発想はなかった!文字列を右から区切る!
連続投稿となりますがお許しください、たっくんです。パブリック活動の締めくくりとして、Preppin' DATA Practiceの第6回のポイントについてご紹介したいと思います。
今回の動画では、 Preppin' DATA 24Wk35、Premier League Results を取り上げていますが、この問題、正直心を折られました。師匠のNakajima2さんをはじめ、多くの参加者が同じ気持ちだったと思うのですが、mitamuuさんが目から鱗の驚愕テクニックで世界を広げてくれたので、ぜひともご紹介!
セル幅130ptの文字列が2列という地獄
![](https://assets.st-note.com/img/1726759101-B5UckFpXKo0A8liujd2reYWE.png?width=1200)
間違ったExcel活用のお手本みたいな長い文字列。しかも環境依存文字上等。
文字列の規則性もちょこちょこ乱れているうえに、
驚くなかれ、ほんとの動画へ飛べるハイパーリンク付き。
ええ、ここまでは受け入れます。受け入れますとも!
でもね、これは付き合いきれんですよ!
![](https://assets.st-note.com/img/1726760148-GLQiH8w3ogjnvZcVBxmfyIbC.png?width=1200)
![](https://assets.st-note.com/img/1726760413-HPhy2Xs1zZ3x0NgiUnjoGtvS.png?width=1200)
DATA Saber向けの勉強もある中で深追いできなかったのが実情でした。
一番厄介なのは改行コードの数のバラつき!
みなさんがもっとも頭を悩ましたのが、上図でも見えている \n でした。
一見、各文字列に規則的に入っているようにみえるのですが、実は行によってバラツキがあります。
これを通常の感覚で 値の分割(Split) すると、意味の違う値が同じフィールドに混ぜ込まれてしまうことになります。こんな感じ。
![](https://assets.st-note.com/img/1726761294-kQ8rLTjuoRO0evsHVWU4XSmc.png?width=1200)
多くの参加者が、左から分割したものをどう直していくかが焦点でした。\nの数がバラついているのは左から4番目の位置なので、そこを飛ばして分割できればしたいけど、、、という感じです。
右から分割していくことも可能!
そこを彗星のごとくスマートに解決したのが、最後の区切り文字からN番目まで戻って分割、という技です
![](https://assets.st-note.com/img/1726761956-4waT39Bm72iKRkJS1NZVhtvc.png?width=1200)
文字列を分割するのは split関数ですが、この引数にマイナスがあるのは見落としていました。
紹介してくださったmitamuuさんによると、URLを分割するときによく使うということで思いついたそうです。
これを使うことで、\nの数がばらついているところは、一番左のかたまりの末尾に追いやることができて、スマートにフィールドを作ることができるということでした。
引数に入るものを総確認してみると吉?
過去に、自分で思いつかなかった引数の入れ方の一つに、集計関数の中でIF文書いちゃうというのがあります。ほかにも、日付関数に記入するyyMMddを " " でくくるか ' ' でくくるかなど、引数に入るものについては、知識がまだまだ足りないように感じています。
たまにはヘルプを調べて、有用な引数の入れ方を勉強してみなければと思った次第です。