Excelでレポートを作成

SQLServerからデータを抽出して、Excelに貼り付けてレポートを作成するというシステムをだいぶ前に開発した。当初は我ながらうまいやり方だと悦に入っていたが、今になって思うとそれほどうまいやり方ではなかった。データを加工するロジックがストアドと、エクセル関数に分離されているので、データソースをトレースするのがめんどくさいのだ。開発者である私しかトレースできないというのが大きな問題である。しかも当初の想定以上に様々なバリエーションが登場したためにストアドがスパゲッティ状態になってしまった。これを解消するために、システムのリニューアルを最近考えているがどんな形態が良いのか悩むところだ。
条件としては、エクセルがプラットフォーム(複雑なグラフィックや、エクセルしか利用できない関数があるため)であることと、出力されたエクセルのファイルを見るだけで、トレースができること、最大限の柔軟性を持たせることなどがある。エンドユーザーでも簡単にひな形を開発できるとさらに良い。
どのようなやり方があるのか?エクセルのアドインでも利用するしかないかと考えるようになった。
ワークシートにデータとは別のレイヤーがあって、そこにデータ抽出条件を入れることができればいいのだが、考えてみるとセルのコメントがそれに該当する。ただしメンテナンスがしにくいだろう。MS QUERYはワークシートのどこにクエリーが埋め込まれているのか非常にわかりにくいので対象外だ。
ユーザー定義関数の中でDBに接続してデータを抽出するということも可能かもしれないが、関数が埋め込まれたセル以外も値が変化してしまうのは混乱のもととなりそうな気がする(そもそもユーザー定義関数でそんなことができるのか不明)。







Excel Hacks(ASIN:4873112052)に興味がわいてきた。