• ベストアンサー

エクセルの複数シート間の計算について

エクセルについてです。複数のシート間でVLOOKUP関数やSUMPRODUCT関数を使用しています。データ量が大きくなるにつれて、あるセルの数字を変更しただけで、全体の自動計算にとても時間がかかってしまいます。メニュー→ツール→オプションの計算方法タグにて、手動計算にすればいちいち全体の自動計算をさせずに済むのですが、これだと作業シート内の計算も更新されません。作業シート内の計算だけ自動にして、他のシートへの計算は後で行うような方法ってあるのでしょうか?]

質問者が選んだベストアンサー

  • ベストアンサー
noname#52504
noname#52504
回答No.2

データが増えると再計算の負担が大きくなるのは数式処理の宿命ですね。 残念ながら作業中のシートのみ自動計算させる設定というのは難しいと思います。 それ以外の対策としては… ●数式を見直す 数式をネストさせて同じ計算を複数回行う代わりに、 中途の値を作業列に書き出して参照した方が軽くなる場合があります。 複数行・列のセル範囲をVLOOKUPで埋める代わりに、 作業列にMATCHで行位置を書き出しておいてINDEXで引く方が軽くなる場合があります。 ISERRORやISNAを使って数式内でエラー処理する代わりに、 条件付書式でフォント色を制御したり、 ページ設定で印刷しないようにした方が軽くなる場合があります。 SUMPRODUCTの代わりに配列数式のSUM(IF())を使った方が軽くなる場合があります。 ※これらは理論上あるいは経験則からの意見で、  厳密に検証したわけではありません。ご容赦ください。 ●ブックを分ける 多くの関数は閉じたブックの値を参照することができますが、 閉じたブックの値そのものは当然再計算されませんから、 シートを独立のブックにして作業すれば、 作業中のシートのみ再計算されることになります。 ただし、INDIRECTやOFFSETなど閉じたブックを参照できない関数もあります。 COUNTIFも、Excelのバージョンによっては閉じたブックを参照できません。 また、ブックがネットワーク上にある場合(ローカルにない場合)は、 閉じたブックを参照する際の負担でかえって重くなる可能性もあります。 ●マクロ化する 身も蓋もない提案ですが…。 数式で処理している部分について、 適当なタイミングで、マクロで直接値を書き込むようにすれば、 格段に軽くなると思います。 以上ご参考まで。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>作業シート内の計算だけ自動にして、他のシートへの計算は後で行うような方法 VLOOKUP関数やSUMPRODUCT関数のようなワークシート関数ではそのような方法はありません これらの関数は参照しているセルの値が変わったら、自動的に再計算されるからです どうしてもというならマクロでそのシートだけの計算をさせるしかないでしょう

関連するQ&A

  • エクセルの再計算

    いつもお世話になります。 エクセルで住所録を作っています。 sheet1に社員No.、郵便番号、氏名、住所1、住所2、住所3と入力したものを sheet2に封筒印刷できるようにVLOOKUP関数を使っています。 sheet1に住所を新しく入力しEnterを押すとツールバーの下のグレーの所 (普段は”コマンド”と表示されています) が再計算10%→25%→→100%となり、再計算が終わらないと次のセルの 入力ができません。 ツール→オプション→計算方法タブの計算方法を自動から手動に変えても いつの間にか戻ってしまいます。 住所録を入力するのに時間がかかり、困っています。 何か良い策はありませんか? そしてなぜこのようになってしまったのでしょうか? 宜しくお願いします。

  • Excelの計算方式について

    Excelのツールメニューから入り、[オプション]のなかに計算方式のタグがあります。自動計算か手動計算かを設定するところがありますが、手動ににするとどのようなメリットがありますか、または手動でこんな使い方をしているよといったことを教えてください。

  • Excelの計算方法の違い

    Excel2000で、ツール-オプションの計算方法タブに計算方法の設定がありますが、 自動はそのままの意味として、手動にすると関数等を入れても全く計算されなくなるのでしょうか? 試してみると確かに計算されませんでした。 また、その右横にある再計算実行ボタンは、 手動の場合で再計算させる時に押すボタンという認識でいいんでしょうか? でもそうなるとその下のシート再計算というボタンとどう違うのか分かりません。 これって何ですか?これはどういうものなんでしょうか?

  • EXCELの自動(再)計算について

    EXCELの自動計算について質問します。 EXCELの自動計算である特定のセルのみ自動計算をしないように設定することは出来るのでしょうか? 具体的には、ある共有しているファイルがありまして、そのトップ部分にファイルの更新時間を表示させております。 NOW()関数をそのセルに設定しているのですが、オプションでの自動計算が自動になっていると EXCELを開いた瞬間にこのファイル更新時間が再計算されてしまいますが、ここの更新時間表示の関数のみ オプションの自動計算の「手動(保存時に再計算)」にしたいのです。 この共有しているEXCELの他のセルには様々な関数が設けてあるのですが、それについては自動で再計算してもらわないと とても困るのです。(コンピュータを余り知らない方々も操作することもあるので、F9を押して再計算して下さいと混乱を招く 様な事はしたくないと言うこともあるので…) 何か良い方法がありますでしょうか?

  • 一つのセルだけを自動計算または手動計算にしたい

    Excel2007利用です。 一つのセルだけを自動計算もしくは手動計算にするということはできないのでしょうか? 「数式」タブの「計算方法の設定」では「自動」「手動」の切り替えができますが、一つのセルだけを自動または手動にはできないのでしょうか? たとえばA1とA2に関数式が入っているとしますが、A1を手動にするとA2が計算されません。ひとつの設定に対して全体が作用されます。一つのセルだけを指定して自動または手動にすることはできないのでしょうか?

  • エクセルの自動計算設定について教えてください。

    毎回エクセルシートを開いて、ツール→オプション→計算式を、手動から自動に変えています。 毎回自動で計算してほしいのですが、いつも終わってまた開くと手動に戻ってしまっております。 どのように自動に固定できるのでしょうか? どうぞ教えて下さい。 PS.余談ですが、なぜ手動の機能があるのでしょうか? 自動であってこそのエクセルだとおもうのですが、手動機能のメリットがナゾです(・・?

  • エクセル 計算方法が変わってしまいます

     職場の人からエクセルの事で質問されたのですが解決方法が分かりません。  あるエクセルのファイルを開くと「ツール」→「オプション」→「タブ:計算方法」内の計算方法の項目が手動になっていて、いつも自動に変えて保存するのですが、次に開くと手動に戻ってしまうらしいのです。  いちいち変更しなくても自動で設定を保存できないのでしょうか、どなたか解決方法がありましたらご教授くださいませ。  もしかしたらファイル自体が壊れているのかもしれないので、解決方法がないようでしたらスッパリあきらめて作り直します。

  • エクセルで自動計算を解除したいのですが?

    エクセルを使っています。たくさんの長い数式を使っておりシートの数も5つくらいあります。それで、最近ひとつのセルに数字を打ち込むだけでも自動計算?が勝手に働くみたいなので、ツールのオプションで計算を「手動」にし、開く時にマクロを「無効」にしているのですが、やはり数字を入力するだけでも自動計算?みたいなのが働いているようでしばらく何にも操作ができない状態になってしまいます。そこで質問なのですが、エクセルを使う上で、まったく計算が働かないようにすることはできるのでしょうか?できれば数値だけをずらずらっと先に打って後でいっきに計算したいんのですが?

  • Excelで手動計算になっていないのに自動計算できない

    手動計算の設定になっていないのに自動計算出来なくて困ってます。 作業は↓のようなことをしています。 シートが左からsheet1、sheet2、sheet3、sheet4と有ります。 1.sheet1からsheet3までのA1セルの合計をsheet4のA1に出します。関数は=SUM(Sheet1:Sheet3!A1)になります。 2.その後、sheet2をsheet4の右側に移動します。  これでsheet4に入れてある関数自体は変わらないものの、中味の数値には変化があります。(sheet1とsheet3だけの合計になるから) 問題はこの後です。 3.移動したsheet2を元の位置に戻します。  通常でしたらこの時点で再計算され、sheet4にはsheet2の数値を含めたsheet1からsheet3までの合計が出るはずです。 がしかし、出ません。 ・手動計算の設定になっているのかと思い、確認しましたが、自動計算の設定になったままでした。 ・試しにF9キーを押してみましたが再計算されません。 ・実際はシートが大量にある為、計算速度が遅いのかと思い、5分程まってみましたが再計算されません。 ・上書き保存をして、PCも再起動して見ましたが、再計算されません。 結局どうしても再計算されないため、式が入っているセルをF2キーで再入力できる状態にしてからEnterキーを押して更新・再計算しています。(式を再入力している状態ですね) どうにか自動で再計算できないものでしょうか? それともこういう場合って再計算できないものなのでしょうか?

  • エクセルの特定シートを完全に手動計算にする方法

    こんにちは。 エクセルのVBAについて最近勉強を始めた初心者です。 下記について知恵をお借りしたく、質問させて頂きます。 4つのシートで構成されているブックがあります。(他ブックとの連動はありません) シート1は集計表で、シート2~4はシート1の元データーが入っています。 本体はシート1のみ手動計算にしたいのですが、現状は以下の方法を取っています。 (1)ブックを開くと、ブック全体を手動計算にする (2)必要なタイミングで、シート1の特定セル範囲(3パターンあり)を再計算させるマクロを実行 (3)ブックを閉じると、自動計算に戻す こちらの方法でほぼ問題無いように思えたのですが、 ブックを閉じる時にエクセルの仕様で『'ファイル名.xls'への変更を保存しますか?』と聞かれますよね。 そこで"キャンセル"を選択すると、ブックは開いたまま自動計算モードに戻る=シート1が再計算されてしまうのです。 (このタイミングで(3)(Workbook_BeforeClose)のコードが走っているのだと思います) 先述の通り、本来手動計算にしたいのはシート1に限定されており、 シート2~4は自動計算で構いません。 やりたい事をまとめると、 ■ブックを開く  :シート1=手動計算、シート2~4=自動計算 ■ブックを閉じる:シート1=自動計算に戻す、ただしキャンセルした場合は手動計算モードを保持 現在のWorkbook_BeforeClose~の部分に何らかのコードを加えたら実現可能? とも思いますが、そこが分からず行き詰っています…。 上記実現するために良い方法がありましたら、ご教示お願いいたします。 【This Wook Book】に記述しているコード----------------------- Private Sub Workbook_Open() 'ブックを開くと手動計算にする Application.Calculation = xlCalculationManual End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) 'ブックを閉じると自動計算に戻す Application.Calculation = xlCalculationAutomatic End Sub -----------------------------------------------------