2013-07-16 118 views
2

我有一個Excel數據錶鏈接到對Oracle數據庫的查詢。該數據表具有兩個: (1)附加的計算出的列(一些涉及數組公式&匹配)添加到數據表(基於查詢的值),和 (2)許多依賴公式傳遍其他標籤Excel數據表刷新非常慢

雖然如果將查詢本身完全按照原樣添加到全新的Excel文件中,則查詢本身的刷新速度會很快,但依賴公式似乎會減慢EVEN WITH CALCULATIONS SET TO MANUAL。

我已經試過幾件事情: 1)一套計算爲手動 2)禁用屏幕更新 3)禁用事件 4)數據表(只是正常的公式)

似乎沒有任何刪除計算列幫助...任何想法?謝謝。

+0

「額外的計算列」可能有重的Excel公式,例如數組和/或VLOOKUP?添加一些例子。 – zx8754

+0

嗨@ zx8754,感謝您的評論。是的,有一些重的公式(數組,vlookup等),但是您是否知道暫時禁用它們的方法,以便可以刷新所有基礎數​​據?你知道爲什麼Calculation = Manual不起作用嗎? – user2587696

+0

*完成*在黑暗中拍攝(因爲我有我的工作wkbk我有)..在每張紙上,選擇所有的空白行並做一個全部清除。對所有空白欄執行相同操作。然後保存該工作簿,關閉並重新打開..當我有一個wkbk有成百上千行的數百個操作,有時它減慢了工作簿的爬行,即使單元格顯示爲空 – Jaycal

回答

1

此鏈接可能會對您有所幫助。

Excel Recalculation http://msdn.microsoft.com/en-us/library/office/bb687891(v=office.12).aspx

Thread Safe Functions http://msdn.microsoft.com/en-us/library/office/bb687899(v=office.12).aspx#xl2007xllsdk_threadsafe

有可以觸發重新計算事件也VOLATILE功能讀了許多事件。一個易變函數是一個值,即使它的任何參數(如果需要的話)都改變了,它的值也不能被認爲從一個時刻到下一個時刻是相同的。

The following Excel functions are volatile. 
NOW 
TODAY 
RAND 
OFFSET 
INDIRECT 
INFO (depending on its arguments) 
CELL (depending on its arguments) 

重新計算數據表的處理方式稍有不同。重新計算與常規工作簿重新計算異步處理,因此大型表可能需要比其餘工作簿更長的時間進行重新計算。

嘗試設置Automatic Except for Data Tables。也許即使設置爲手動計算,也意味着只要事件觸發手動,它就會計算受影響的單元格。也許你的刷新觸發了所有這些將會多次計算的事件,因爲當事件觸發時,更多事件進入並再次觸發。

您可以做的最簡單的事情是儘可能多地去除VOLATILEARRAY公式。 Personal exp告訴我,RAND和ARRAY功能是最差的。