web-dev-qa-db-ja.com

Excelのフィルタリングが非常に遅い

私が働いている会社には、会社が昨年行った購入を追跡するためのExcelスプレッドシートがあります。このシートには、約1500行と30列があります。

数日前、このシートでのフィルタリングは非常に遅くなり始めました。キーワードの列をフィルタリングするには、約5秒かかります。このシートは多くのフィルターが適用され、煩わしいので、これはかなり長いです。シートには、他のシートやファイルへの数式や参照はありません。セルの変更で実行されている2つのマクロがありますが、両方のマクロを無効にしても高速にはなりません。

また、1つを除くすべての行を削除しようとしましたが、残りの行にフィルターを適用すると、完了するまでに5秒かかります。

なぜこれがそんなに遅いのかについて誰かが知っていますか?

6
mius

これは通常、Excelがデータセットが実際よりもはるかに大きいと考えるために発生します。たとえば、セルA1048576に移動して書式設定した場合、外観が異なっていなくても、Excelでは100万行以上あると見なされます。これをテストするには、セルA1を選択し、CTRL + Endを押します。これにより、Excelがワークシートの最後のセルであると信じているものに移動します。これが問題である場合は、実際のデータが終了した後にすべての行や列を削除し、ファイルを保存して閉じ、再度開きます。これにより、Excelはこれらの空のセルをすべてデータの一部として表示しなくなります。これが機能しない場合は、データを選択して新しいファイルに貼り付けることで修正できます。

7
user2597747

おそらく手遅れですが、自動計算をオフにしてください。 VBAでは、これら2つを使用して自動計算をオフにし、フィルターを適用してから、自動計算をオンに戻します。

Sub automatic_update_on()

   Application.Calculation = xlAutomatic

End Sub

Sub automatic_update_off()

   Application.Calculation = xlManual

End Sub
1
Iorek

ステップ1:すべて選択(Ctrl + A)

ステップ2:ホーム>クリア>フォーマットのクリアに移動します。

Step3:ファイルを保存してフィルターを再適用します。

完了です。それはいつも私のために働きます。それがあなたのために働くかどうか私に知らせてください!

1
Rakesh Dhedhi