ミネムラ珈琲ブログ

さすらいのコーヒー屋/Spreadsheets小説家/WEBサービスディレクターの日記

大量データのSpreadsheet貼り付けでブラウザをクラッシュさせない闇のテクニック

GoogleSpreadsheetsをつかった運用業務において、9列x40000行足らず、35万セルぐらいのデータをCSVファイルから貼り付けを行うと仮定する。仮定、というか実際にぼくの月次の業務にそれがある。

先によくある質問に応える。

Q.誰がそんなバカみたいなシート作ったんだ?

A.ぼくです。

Q.Spreadsheet脱出してシステム化しないのか?

A.元々そうするつもりなんだけど、要件洗い出したり業務フローを整えるためにプロトタイプとしてのSpreadsheetで当面乗り切ろうということにしていて、今その当面のさなか。あとユーザー向けの機能開発優先したいディレクター(ぼくです)のこころもちなどによって、まだやっていない。

具体的にこのシートがどのような運用がなされているかという話は一切書かなくて、データを貼り付ける際のテクニックについて書く。

データを貼り付けるのにテクニックいらないでしょ?と思っている方は、cmd+vを押したあと*1にブラウザが硬直し、なんどかの警告表示を経て、やっとのことでデータが貼れた!と思ったらブラウザクラッシュ。開き直してみると保存までたどり着けておらうずにしょんぼり。それならばと思ってブラウザの別タブをひとしきり閉じて再チャレンジするも、同じループの繰り返し。この結果無為な30分がすぎる*2。という経験がないのだと思う。幸福なことだと思うのでその後の人生もそうあって欲しい。

それで回答はとてもかんたんで、列ごとに分割して張り付ける、というものだ。

f:id:minemuracoffee:20200327135428p:plain

このキャプチャでいうところの、青⇒緑⇒赤のように3列ずつ分割して貼り付けをしていく。ちなみに35万セルの場合、この分割をしても一度ブラウザが応答していないという警告はでる。しかしスルーしていれば無事貼り付けることができる。分割数は好みの問題なので自分で調整して欲しい。

ちなみに行を分割する方法もあるだろうが、避けたほうが良い。行の場合は切れ目がわかりづらく、抜けや重複が発生する温床になりかねない。列であれば、抜けや重複があったらおそらくひと目で分かるはずだ。

こういった方法で分割貼付けをすれば、ブラウザクラッシュを避けることができる。GoogleSpreadsheetsのブラウザクラッシュは、シート内のデータ量よりも、操作の量によって規定されていると考えたほうが良いだろう。

ちなみにGoogleSpreadsheetsでやっているけど、Excelでも同様のことがきくかもしれない。いずれにせよ、こんなテクニックにはできれば関わりたくないという闇のテクニックというほかない。

*1:正確には値のみ派なのでcmd+shift+vも

*2:ぼくは今回30分ではなくて、1時間以上が過ぎたということをお伝えしておきたい。人生で何度かある気がする。