重建資料表時 Excel COUNT 速度變慢

重建資料表時 Excel COUNT 速度變慢

我正在使用一個 Excel 插件,當您使用即時資料庫中的資料刷新時,該插件會刪除並重新建立資料表,這樣對資料表的引用就不會被破壞。我使用公式 COUNT('DataSheet'!A:A) 來計算有多少行資料減去列標題行。如果資料沒有刷新,幾乎會立即重新計算,但是當使用 add 刷新資料時,計數會慢慢增加,直到公式完成計算。我需要使用其他類似的公式,這些公式會顯著減慢工作簿的速度。

我可以想到解決方法,但我需要知道當 COUNT 正常重新計算以及刷新資料時重新計算時,導致行為差異的原因是什麼。此時資料在刷新前後的行數相同,且格式化範圍不長於資料。

編輯:我想知道這是否與 excel 處理記憶體中哪些單元格處於活動/填充狀態的方式有關?

答案1

歡迎@TheGreatO96。

嘗試使用 COUNTA() 而不是 COUNT(),但我幾乎懷疑這會有多大幫助。我懷疑您的外接程式中有一些需要優化的地方。資料庫刷新是一種易失性操作,它將觸發通常在沒有刷新的情況下不會觸發的重新計算。如果您使用任何易失性函數,例如 OFFSET、INDIRECT、NOW 甚至條件格式,在大型工作簿中事情會慢慢停止。事實上,您可以在單一儲存格中看到 COUNT(...) 更新的值,這可能表示巨集中存在明顯的延遲。您可以嘗試調整程式碼中的一些內容:

  • 啟動巨集時禁用重新計算。運行其餘程式碼。重新開啟重新計算。

  • 啟動巨集時禁用螢幕更新。運行其餘程式碼。開啟螢幕更新。

  • 透過禁用事件來啟動巨集。運行其餘程式碼。重新打開事件。

詩。我曾經透過擺脫 OFFSET 函數而轉而使用相對命名範圍,將巨集執行速度提高了近 2 個數量級。

相關內容