昨今「ビッグデータ」が騒がれており、普通のビジネスマンでもデータ活用の機会が増えていると思います。今回はデータ処理の時に陥りやすい「Excelで処理しきれないデータをどうすればいいか」という課題についてお話しします。
Excelで処理できなければプログラム言語で
よくある事例1:集計に使いたいローデータが104万行を超えている
多くの人がご存じのとおり、Excelの行数は104万8576行(Excel2007以降の場合)が上限です。上限を超えた分は表示されません。
WebのPV履歴を集計したいとき、Excelで一旦集計前のデータを取り込む必要があるのですが、それすらできない状況です。「集計後のたった10行くらいなのに…」なんて思われることはよくあるのではないでしょうか。
よくある事例2:Excelに読み込ませることはできるが、VLOOKUPやSUMIFなど関数を使うとExcelがフリーズしてしまう
実際はフリーズしていないのですが、見た目はExcelのウィンドウがホワイトアウトしフリーズしたように見えます。10万行ほどのデータでも、関数を駆使して加工や分析をするときにはかなりPCに負荷をかけてしまい、非常に時間がかかります。私はこんな現象が起きてしまったときはExcelを強制終了させています(笑)。
プログラム言語の活用
プログラム言語を活用すると、上記2つの事例は解決します。プログラム上に読み込ませられるデータの行数に制限はありませんし、ExcelのVLOOKUP関数のようなこともできます。「コードとか打ち込むの難しそう」と思われるかもしれませんが、Excelの関数も1種のコードなので大丈夫です(と自分に言い聞かせてください)。
プログラミングでデータ集計してみよう
それでは実際にやってみましょう。今回はWindows Powershell(以下Powershell)を使います。Powershellを使う理由は単純で、Windows7以降のPCにはプリインストールされているからです。PowershellはPC管理者用ツールとのイメージが強いですが、プログラミングもできます。さらに、マイクロソフト製なのでOffice製品との親和性が高く、ExcelやVBAの関数も使うことができます。
PowershellはWindowsの「スタート」→「プログラム」でファイルの検索窓に”powershell”と入力すると起動できます。データセットですが、以下のようなデータをtest.txtというファイル名でデスクトップ上に作成してください。なお、データの区切りはタブです。
ID | PV |
A | 1 |
B | 10 |
B | 100 |
C | 16 |
左列のABCが個人名、右列がPVだと思ってください。このデータをPowershellに読み込ませます。以下のコードを打ち込んでください
正常に完了すると以下のように表示されます。
このデータをID単位でPVを集計したいです。以下のコードを打ち込んでください。
こうするだけで、ID単位のPVが集計できました。
集計結果をcsvに保存するのも忘れずに。
これで集計は完了です。
今回の例ではたった5行のデータですが、100万、200万の行数があるデータもPowershellをはじめ、各種プログラム言語は集計可能です。「ビッグデータを扱いたいけど、Excelの行数制限を超えるデータは扱い方が分からない」とあきらめていた人は、ぜひ一度やってみてください。