意外と賢いデータインタープリター!でもご利用は計画的に!?
前回の投稿からめちゃくちゃ時間が経ってしまいました(汗)DATA Saber挑戦中のたっくんです。残すところ2週間を切りました!今日はパブリック活動も兼ねて出演しているPreppin' DATA Practice#5でのポイントをご紹介したいと思います!
5回目となる上記の動画では、24Wk31:Olympic Special ということで、女子7種競技についてのデータを前処理する問題を扱っています。各選手が7種目を順番にプレイしていくのに沿って、その順位と得点を追っていけるようにデータを作ることが主眼になります。
ところがこの元データ、パッと見でこれ大丈夫!?となる書式です。
まず、コンピュータが選手ごとの区切りをどこまで認識できるかアヤシイ感じです。それにポイントも ( ) がついていて文字列扱いになってます。。。こんなのどうやって整形するの???という印象を受けるかもしません。
見た目に惑わされず、まずはポチってみる!
これをDBで扱える形にするには、実際いろいろなやり方があると思います。動画の中では、入力ステップでRowNumberを有効にして「下を埋める(フィル)」を利用する方法が紹介されていますし、データソースに手を加えていいのなら、A列にRow()を書き込むことで同様に処理できます。
ですが、今回のように単発のデータソースを扱うのであれば、まずデータインタープリターを試すのがオススメです!
データインタープリターは、入力ステップの下にあるチェックボタンを押すことで利用できる機能です。これがハマるときはホントに便利で、不要行の削除からフィルまで秒で整ってしまいます!
個人的な感覚ですが、この機能は思ったより賢いです。結合セルを使った多段ヘッダをいい感じに読み取ったりもしてくれますし、アドホック的に使う分には実務で重宝すること請け合いです!まず使ってみる、というマインドでポチるのが吉と思っています。
使わない方がいい局面・・・再現性の問題
この機能、慣れてくると頼りすぎてしまうのですが、頼らない方がいい使い方も実際あります。実務でもよくある、類似のファイルをいくつも処理したい場合です。例えばこの問題に即していうと、10種競技データも追記して、過去5大会分まとめて処理しよう!とか言い出すと厳しいと思います。
理由は、人間が『類似のファイル』と思っていても、Prep君から見ると実は結構違っていることがあるからです。
例えば、10種競技にするとシート上にデータが書かれている領域のバランスが変わります。全体的に縦長だったのが横長になるとか。これが起こると、自動実行する処理内容が変わってくることがあるのです。縦長のときは結合セルを分解してくれたのに、横長になると分解してくれないなど。
特に実務でよくあるのは、継ぎ足し継ぎ足しで書き込んでいくと、そのうちあるべきところが空白になることも増えてきます。途中リタイアした選手も書いていこう!みたいな感じ。するとますます読み取り領域が不安定になって、期待したデータを作れなくなるのです。
人間が悪いこともよくあります。
複数ファイルを読もうとしたら、先頭行がバラバラで失敗しました、とか。
誰かさんが右端にメモ書きしてある、とか。
空白に見えるのに実は余白が入ってる、とか!
・・・なんだか仕事のグチになってしまいましたが(笑)データインタープリターは、賢いけどデリケートなので、使う局面を選んで上手に付き合ってあげるとよいかと思います。