Technoboseの日記: Excelでデータ処理についての感想
最近、職場で「EUC」がバズワードになってる。
今まで業務システムから必要なデータの出力を、運用管理業務の一環として委託していたのをコスト削減のため止めるから、自分たちでやれという理由なんですな。
改めて思い知ったけど大量のデータ処理なのにExcelを使うことを前提にしているものって、結構ありますね。ていうか、うちの職場では「Accessは難しくて危険だからExcelで」という方針なんですね。以前は、「パソコンを使ってもマクロは使うな」と言ってた。なので、ネット経由で外部から渡されたデータを印刷して、手入力なんてよくある光景ですね。
で、内部や外部とのデータ交換の方法として「CSVファイル」を使ってるだけど、単純な表形式(項目行とデータ)ではなく、ヘッダレコードでデータ種別、最後の行でレコードを渡すといった単純なものだけでなく、レコード毎に項目数や項目の順番が違ったり、行毎に全然違うデータを入れたりとか、おそらくそれ用の処理プログラムがあることを前提にしているものまであって、どうしてもプログラムを組む必要に迫られるわけです。
仕事を引き継ぐと、これに対応するため前任者たちの作成した解読困難なExcelワークブックが残されていて苦労しますね。
私なら自由に編集できる表計算ソフトで大量のデータを処理することのリスクが、まず怖いのだけど、そういうワークブックを確かめて本当に怖いのは何も考えずにvlookup等で表引きとかしてること。
複合条件で表引きが必要なのに、条件が一つで処理とかごく当たり前にあるし、読み込み時にデータが変わってしまうことにも無頓着だったり、関数を何万件にもコピペしてたり(全部に正しく貼り付けてるか、どう保証するのだろう)とか、手間・暇・時間をかけてる割に正確性や作業の再現性などに難が多いものが大半。
きちんとデータベースを設計して、データを読み込んでしまえば、データベースの方がデータ処理が楽に正確にできるし、作業手順も文書化しやすくなるので、こういうのに当たると、関係各所に手配してデータ交換のタイミングやらファイルの定義書やらを準備して資料を整え、作業全体の流れを明らかにしつつ、ワークブックをAccessのデータベースに作り替えてる(手作業やマクロをVBA等で自動化する)。
こうすると、作業全体の流れも、細かいデータ変換処理も文書化されるので説明しやすくなる。
数十万件程度のデータならAccessで処理できるが、標準機能で対応できない「CSVファイル」はVBAで読み込み処理を作る必要があって、まあ、難しいといったら難しいけど、業務で必要なデータそのものが複雑なのだから、それに対応できるシステムを準備するか、対応できる人材を準備するかは必要だよね。
Excelでデータ処理についての感想 More ログイン