[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『重い関数を軽くしたい』(pk)
いつも大変お世話になっております。
4シートに以下のような関数を入れて日次実績の集計をしているのですが
毎日保存するのに40分程、かかる時には4~5時間かかってしまいます。
以下のような関数を軽く出来る関数は無いでしょうか?
=SUMIFS(元data!E:E,元data!B:B,F1,元data!D:D,D4)+SUMIFS(元data!F:F,元data!B:B,F1,元data!D:D,D)+SUMIFS(元data!I:I,元data!B:B,F1,元data!D:D,D)+SUMIFS(元data!L:L,元data!B:B,F1,元data!D:D,D)
ご教示宜しくお願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
よく見る工夫としては、マクロでデータのある最下行を得て、数式を毎回ぴったりの範囲に書き換えるとか、最終行をデータよりひとつ下の行までとしておき、この空白行を塗りつぶしておいて、データ追加は必ず空白行より上に挿入するとか。(行追加は無視されますが、行挿入なら自動的に範囲が増える)
(???) 2018/11/05(月) 09:32
早速ご返信頂きありがとうございます!
それもやってみて、元data!E$1:E$30000に変更したのですがやはり重くてダメでした。。。
マクロで出来れば良いのですがマクロ初心者でVBAが組めずなのですが
やはりこういった場合にはマクロが良いのでしょうか
マクロでも良いやり方があればどなたか教えて頂けたら幸いですm(__)m
(pk) 2018/11/05(月) 09:46
しかし、3万行にしては、保存に時間がかかりすぎていると思います。 行数を変えてもあまり効果が無いとなると、数式以外が原因ではないでしょうか? 例えば、「ホーム」−「セルのスタイル」に、変な定義が大量に登録されている、とか、実は元データとはサーバ上に置いた別ブックだとか?
(???) 2018/11/05(月) 09:59
このSUMIFSの式は横は31日分までの列で縦は800行ぐらいあるのでそこに関数が
全部入っている×4シートなので計算が遅いのかもしれません(><)
教えて頂いたE,F,I,Lを無条件に足す作業例をやってみたいと思います。
ご丁寧にご教示頂きましてありがとうございました。
また宜しくお願い致しますm(__)m
(pk) 2018/11/09(金) 17:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.