Linuxからアホ話まで、何でもありでござる

2010年02月27日

Excelの不思議仕様

[MSあれこれ]
最近excelで少々まとまった枚数の資料を作らなければならなくなった。資料自体は枚数は多いが定型なので、マクロでバンバン作っていく。楽勝だぜ・・・のはずだったが、Excelの不思議仕様でちょっと困ったちゃんだ。ちなみにVerはSP3を適用したOffice2003である。

まず一つ目は、有名な小数計算の誤差だ。費用を係数を掛けて割り当てたりすると、なぜか合計が合わない。それはみんなこのクサレ仕様のせいである。本来0であるべきところが-0とかになっていたら誰だって気がつく。この仕様のおかげで差異が出てしまうと、その表自体の信憑性が疑われるので困る。俺を陥れるための罠に違いない。

二つ目はピボットテーブル関連。今回の資料はDBからデータを取り込んでピボットテーブルを作り、そこからGETPIVOTDATA関数でデータを抽出して作成の繰り返しなのだが、元となるピボットテーブルのデータを更新してもなぜかGETPIVOTDATA関数で呼び出す数値が変わらないのだ。これはブックを閉じて再度開くと、最初の一回だけはきちんと更新される。データを更新させるにはダミーのシートを追加・削除してやるとよいみたいなのだが、なんだか本当に意味不明。

三つ目はシートのコピー・移動に関するものだ。今回の資料では、資料作成用のブックで資料を作り作成されたものは違うブックにどんどん移動させるという形式をとっているのだが、ある一定枚数のシートを移動させるとシートの移動が出来なくなってしまう。しかし、シートのコピーは出来るのだ。遅いPCでやれば実感できるのだが、シートのコピー・移動ではシートの移動の方が圧倒的に速い。速いのだからメモリも食わないのだろうと想像しているのだが、なぜか速くて効率のいいと思われる移動がダメになる。一旦すべてのブックを閉じて再度開けば移動できるようにはなるのだが、面倒だ。

まぁ、いずれも得意の「仕様」なんだろうね。;p


ブログランキング・にほんブログ村へ
posted by oyajiman at 2010年02月27日 23:00:00



コメント

まち

二つ目だけですが、ピボットテーブルのツールバーに「すべて更新」ボタンを追加して、それで更新すると、GETPIVOTDATA関数も更新されると思います。
2010年03月02日 21:36:21

oyajiman

おお、マジですか?やったね。

と思いながら試したのですがダメでした。泣きたい。

仮にうまく行ったとしても、すべてのピボットテーブルのデータを再読み込みするため、160万レコード以上あるデータの読み込みには余りにも時間がかかりすぎます。

泣けますなー。
2010年03月03日 15:00:18

トラックバック

トラックバック
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.

コメントする