2017-11-08 9 views
0

私は、プレーンデータと複数のダッシュボードシートとこれらのデータに基づくさまざまなグラフとkpiを持つ複数のデータシートで構成される大きなExcelファイルを持っています。 私は、ファイルのサイズを小さくして作業を高速化することを検討しています。フォーマットされていないデータをテーブルに変換するかどうか私は本当にこれをサポートする何かを見つけることができません。Excelテーブルとプレーンデータ

誰でもアイデアがありますか?

+0

以下のいずれかの回答に、あなたの質問に答えてください。 – jeffreyweir

答えて

0

テーブルには多くのメリットがありますが、通常、Excel 2016の最新バージョンではテーブルの速度が大幅に改善されていますが、一般的にプレーンデータよりも遅いです。

0

あなたは実際に間違った質問をしています。あなたが尋ねるべき質問は、「なぜExcelは再計算に時間がかかるのですか、なぜ私のファイルサイズが大きすぎるのですか?

あなたの症状について多くの情報を提供していません。あなたのファイルはどのくらいの大きさですか?そこには何行のデータがありますか?大きな範囲のルックアップがたくさんありますか?長い依存関係のチェーンの先頭にあるOFFSET、INDIRECTのような揮発性関数はたくさんありますか?どれくらい遅いですか?どのバージョン/ ExcelのSKUがありますか?

Excelがゆっくりと実行されるのは、一般的に、数式の選択肢が不十分でレイアウトが最適でないため、誤ってプログラムを実行してしまっているためです。テーブルに変換するかどうかは、物事の音によって、多くの違いを生むことはありません。

  • 揮発性関数長い計算鎖がそれらを実行すると:遅いファイルになり

    共通犯人は(最後の再テーブルに注意してください)以下のものが含まれます。この

  • (例えば、むしろ 1 MATCHと複数のINDEX関数を使用するよりも、同じレコードのデータによってもたらすために、複数に VLOOKUPSを使用するなど)複数のカラム上の非効率的な検索

  • の詳細については https://chandoo.org/wp/2014/03/03/handle-volatile-functions-like-they-are-dynamite/ で 私のポストを参照してください。
  • 非常に長い配列のルックアップ。ルックアップテーブルを並べ替え、バイナリマッチ パラメータを使用すると、ルックアップを何千倍も高速化する方法については、 http://dailydoseofexcel.com/archives/2015/04/23/how-much-faster-is-the-double-vlookup-trick/ の投稿をご覧ください。何千ものの書式を変更するためにIFおよび他の機能を使用して、このようなSUMPRODUCT、 シンプルな選択肢が存在する(SUMIFを含むとそれがより良い変異体、もしくはだ、ピボットテーブル)などのリソース集約式

  • 酷使カスタム番号書式を使用する代わりに、セルを使用します。

  • データテーブルを使用します。むしろ、動的に展開するエクセル表(別名 ListObjects)を使用するよりも、使用されない場合があります、データ入力セルを参照するために余分な式の何千もの 使用する(これらは本当に豚のリソースができ、時には より良い選択肢が存在する)

  • 自動的に。私常に私のデータと設定をホストするテーブルを使用します。それらは参照(VBAを含む)とファイルの保守性を大幅に簡素化します。

症状ではなく根本原因に対処する必要があります。ファイルサイズの点で

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/excel-tips-for-optimizing-performance-obstructions

を、チャールズ・ウィリアムズはそれを置くよう:メモリを保存し、ファイルを減らすために開始するには良い場所は、再計算の第一人者チャールズ・ウィリアムズこの記事(私が参照により減少している)でありますサイズでは、Excelは、使用されたワークシートにのみ領域に関する情報を格納しようとします。これを使用範囲といいます。時には、さまざまな編集や書式設定操作によって、現在使用されている範囲を大幅に超えて使用範囲が拡大されることがあります。これは、パフォーマンスの障害やファイルサイズの障害を引き起こす可能性があります。

Excelで使用されている範囲を確認するには、Ctrl + Endを押します。データが終了する場所の下または右に自分の距離がある場合は、その点とデータの端との間のすべての行/列を削除します。

  • すぐに行を実行するには、 Ctrl + Shift +下向き矢印( はスプレッドシートの右下にあるすべての行を選択します)、次に を右クリックして[削除]オプションを使用してデータの末尾にある の下にあります。
  • カラムの場合は、カラム全体をデータの右側の に直接選択し、Ctrl + Shift +右矢印を使用して を選択し、右クリックのDELETEオプションを使用します。

(あなたは右クリックしてオプションを削除し、ちょうどキーボードのDeleteキーを押していないを使用するために持っていることに注意してください。)

をあなたはこれをやったとき、Ctrlキー+終了を押しますもう一度やり直してください。あなたのデータの右下隅に近づいてください。時にはうまくいかない場合、Alt + F11(VBAエディタを開きます)を押し、イミディエイトウィンドウにApplication.ActiveSheet.UsedRangeと入力してEnterキーを押す必要があります。キャプション "Immediate"を押してからCtrl G)を押します。

最後に、PowerPivotとPowerQueryを使用して物事を根本的に簡素化し、ブックの数式を大幅に減らすことができるかもしれません。

+0

info jeffreyのおかげで、私は、ファイルには主にSUMIFS(列全体を使用)関数を使ってkpiを計算するダッシュボードがたくさんあると言いました。ファイルサイズは27MB、データシートは約10000ラインです。このファイルは、複数のデータシートとkpiシートで構成されています。私は上記の情報でファイルを高速化する方法を知っていますが、私はデータテーブルを使用してパフォーマンスに影響を与えるかどうかを知りたいです。 – user4373888

+0

差はごくわずかです。 SUMIFSをピボットテーブルに置き換えることは、物事を根本的に簡素化し、物事をスピードアップすることを提案します。 – jeffreyweir

+0

これは問題ではありません – user4373888

関連する問題