プロが教える店舗&オフィスのセキュリティ対策術

会社の業務で使用しているExcelファイルがあるのですが、いくつものシートとシートごとにデータ量と使用している関数が多量にあり、70MBほどのファイル容量となっています。そのため、処理速度が非常に遅く改善方法をインターネットなどで探しているのですが私がExcelがそれほど詳しくない為、なかなか良い改善方法が見つからない状況です。どうか詳しい方がいられたらいくつかの解決策を教えていただけないでしょうか?これからさらにデータ量が増える見込みで、おそらく100MB超のファイルになるのではないかと思っております。そのぐらいのデータ量ですともうExcelではなく、他のデータベースソフト等を使用したほうが良いのでしょうか?ちなみに現在のシート数は20シートほどあり、最大で30,000行、A~FC列までのデータやピボットテーブル、主にif,sumifs,countifs,vlookupといった関数でそれらのデータを集計、抽出処理しています。

A 回答 (6件)

データベースのように蓄積する必要があるものでしたら、他の方の回答のとおりです。



蓄積する必要がないものでしたら、分割することをおすすめします。
シート単位に分割するだけでも、70MB/20シート=3.5MBになります。
    • good
    • 0

長い 期間、


用いられ続けて いるのですよね?


あの、

他の 何方かが、
挙げられているか、
とも 思い、
確認しましたが、
↓は ないようですね。


知られていないのでしょうか?

割と 有名な、
話しなのですが、

excelの 主な、
鈍重化の 一因は、

excel自身が 抱え続ける、
「履歴、」です。


で、

全シートを 新規BOOKに、
以下の 手順で、
コピーではなく 移動させます。
https://azby.fmworld.net/usage/windows_tips/2005 …


此の際、

コピーでは 使いものに、
ならなく なりますので、
お間違えなく。


其れと、

作業前には 管理管轄責任者の、
了解を 取った上で、
バックアップを 作成して、
頂きたくも 思います。

(※注:無認可で バックアップ作成を、
    行うと、
    場合によっては、

    不正コピー、情報漏洩、転売、
    等、
    容疑が かけられ、

    賠償や 自主退職を、
    求められる場合が あります。
    お気を付けを。)


次に、

使用関数を 見直しましょう。


何れも、

鈍重そうな ものばかりだと、
思います。
(※注:IF構文、〜IF系構文は、

    コンピューターCPUの、
    パイプライン処理を 破棄させ、
    処理効率を 落とさせる、
    恐れが あります。


    ですので、

    条件分岐方から、
    配列数式での 論理式型に、
    移行しましょう。)


あくまで、

場合に よってですが、
嘘みたいに 軽くなる場合が、
あります。


私も、

過去 幾度となく、
オペを してきました。


加えて、

他回答者様も 既に、
挙げられて いますが、

計算方法を、
自動から 手動に、
切り替え、

入力等 処理が、
一々には 不要時には、

excelを 止めるのも、
手ですね。
https://pasokon-labo.com/excel-recalculation-aut …


更に、

上記文献中記載内容で 気付きましたが、
読むと 条件付き書式も、
悪さを するらしいです。


ただ、

抑も 巨大ですから、
アクセスですら コンパイルしないと、
難しい レベルかも、
知れません。


SQL等への、

乗り換えを 視野に、
いえららる べきかも、
知れませんね。


因みに、

excel稼働に チューンされた、
Pc、
例えば MacBookProなら、
最高峰カリカリ仕様クラスながら、

5年落ちモデルですら、
100MBファイルでも、
割と 動くと、
思いますよ、

私 使っていますから。


但し、

其の場合は、
構文も 構造も、
私が チューンした、
ものの 話しですがね。
    • good
    • 0

ファイル容量が何十Mbにもなっているなら基本は データベースだけで


も Accessなどのアプリケーションや SQLに移行すべきかと思います。

SQLとは?
https://hnavi.co.jp/knowledge/blog/sql/

ただデータ量の多さと処理の重さは必ずしもリンクしません。分けて
考えるべきです。データベースを移行するまでの場繋ぎとして考える
なら現行自体も見直した方がいいでしょう。

> 主にif,sumifs,countifs,vlookupといった関数で
これらを止めて別のブックでクエリなどを使って集計するだけで相当
処理が軽くなるはずです。大量のデータの入っているブックに数式は
一切入れないことですね。
    • good
    • 0

実際のエクセルブックを見ていないので、明確な対処については分かりませんが…。



相当絡み合ったエクセルファイルを軽くするのは厳しいです。
下手な操作をすると、関数の関連付けが壊れます。

関数は簡単に消せませんが、ピボットは元々のシートの一部を活用して集計しているだけですので、消しても良いのかなとも感じます。少しは軽くなるかと思います。

自身の経験上、エクセルはデータベースソフトのアクセスと違って、セル単位で処理するため融通が効き、軽いソフトです。このエクセルで重くなるのならば、アクセスへの移行も良いかもしれません。が…、使い勝手は、慣れた人なら良いですが、不慣れな人には厄介なソフトです。
試してみる価値はありますが、不慣れな方は相当の勉強が必要です。
また、アクセスに移行してもファイル容量は減らないと思います。

自身も8,000行までで20列程度のエクセルなら扱ったことありますが、30,000行でFC列ということは、180列位ですか。シート数も20もあると。

もし、エクセルマクロの操作について分かるようでしたら、20のシートを20のcsv形式に出力し、関数の代わりにマクロを使うことも可能ですが、こちらも相当の勉強が必要です。
    • good
    • 0
    • good
    • 0

とりあえず、「計算方法」を手動にすることで凌げると思います。


([F9]キーを押して手動で計算をさせます)

てか、そのために「計算方法」を手動にする機能があるんです。

・・・
100MBになるなら素直に Access に切り替えるべきでしょうね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!