回覆列表
  • 1 # lmheu29967

    Excel檔案太大的話,肯定會導致執行緩慢,但是可以使用以下方法提高和改善:一、首先要合理設計資料的佈局,這是計算效率得到保障的前提  由於Excel引用訪問本工作表、不同工作簿或工作表資料的速度是有區別的,通常計算指向其他工作表的引用比計算工作表內的引用速度要慢。當資料計算量較大時,就必須考慮資料的整體佈局:資料是分工作簿儲存、分工作表儲存,還是儲存在同一工作表。  基於整體性原則,如果是清單型資料表格,可能的話,儘量將資料整合同一工作表,至少儘量在同一工作簿。如果不能整合在同一工作簿,寧願使用少量的大型工作簿,也不要使用數量較多的小型工作簿。儘可能地避免工作簿間的連結,對外部工作簿進行連結,既影響表格的開啟速度,並且當工作簿移動或刪除時,還容易出現斷鏈,不易於查詢和修復。  二、不可避免引用其他工作簿時的提速技巧  對關閉的工作簿儘量使用簡單的直接單元格引用。這樣做可以避免在重新計算任何工作簿時重新計算所有連結的工作簿。  如果不能避免使用連結的工作簿,最好將它們全部開啟而不是關閉,並且表格開啟順序也有講究,要首先開啟要連結到的工作簿,然後再開啟包含連結的工作簿。一般來說,從開啟的工作簿比從關閉的工作簿中讀取連結的速度要快。  進一步提速的“斷舍離”大法:  斷:資料量大的表格,應將已經計算出結果且不會再更新的單元格的公式計算結果採用選擇性貼上方式轉化為數值,以減少計算量;  舍:儘量不要大範圍使用計算量大的功能或公式。比如:儘管條件格式和資料有效性的功能非常強大,陣列公式運算功能也非常強大,但是,大量使用它們會明顯降低計算速度,除非你願意忍受蝸牛般的運算速度,否則,不要大範圍使用資料有效性、條件格式和陣列公式;  離:如果某張工作表需要進行大量運算,且其他工作表對它的引用較少,可考慮將其移出本工作簿。以免每次重新計算時,影響工作簿的整體計算速度。  三、原始資料要規範  原始資料一定的規範,否則,還要使用函式公式清洗不規範的資料,徒增中間環節,影響計算速度。比如資料的來源不是手工輸入,而是從其他系統匯出,匯出的資料可能並不規範,比如數字是文字格式、數字後有空格、不可見字元,這些資料就沒法直接參與運算,如果不手工整理成規範資料,還得用函式公式進行規避,這就大大影響計算速度。  四、要關注公式函式的計算效率,儘量使用效率高的函式,或使用其他功能代替。  1.非必要的情況下,不使用可變函式(易失性函式)。  Excel的可變函式有:RAND、NOW、TODAY、OFFSET、CELL、INDIRECT和INFO。可變函式有個特點,當數值發生變化時,每次都要重新計算,因而會影響表格的計算效能。  比如,我們常用的下面的公式來定義動態區域:  =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)  它的好處是:會自動擴充套件以包含新條目,但表格的計算效能會降低,這是因為OFFSET是可變函式,並且由於OFFSET中的COUNTA函式必須檢查很多行,計算效率較低。  一般情況下,我們可以使用Excel的表格功能來代替動態區域(Excel2003中稱為列表)。  2.使用其他行和列計算並存儲中間結果一次,以便在其他公式中重複使用它們。並且,如前所述,儘可能引用其他單元格已有的計算結果,這樣可提高運算效率。  11.png(13.93KB,下載次數:4)  下載附件儲存到相簿  2015-1-2422:57上傳  在C2單元格輸入公式:  =SUM($A$2:$A2)  然後向下填充公式到C2000。如上圖。B列的公式是上一累加結果加上本行數字。B列的公式是引用了上一行單元格的計算結果,B列公式比C列公式單元格引用總數減少了500倍,計算量大大減少。  3.減少每個公式中的引用數,最大程度地減少函式中的引用單元格範圍。  儘管在Excel2007以後的版本中,陣列公式可以處理整列引用,但是這會強制計算列中的所有單元格,包括空單元格。這樣會使表格計算起來很緩慢。  4.儘可能使用最有效的函式(一般情況下自定義函式慢於Excel中的內建函式),編制適當的公式,儘可能減少公式的計算次數  =IF(ISERROR(VLOOKUP("龍逸凡",$A$2:$C$1000,3,0)),"查無此人",VLOOKUP("龍逸凡",$A$2:$C$1000,3,0))  如果表格A2:A1000中有“龍逸凡”,使用上面這個公式,則Excel要運算VLOOKUP函式兩次。Excel2007以後的版本中,可以使用IFERROR來減少運算的次數:  =IFERROR(VLOOKUP("龍逸凡",$A$2:$C$1000,3,0),"查無此人")  五、非必要的情況下不使用會觸發重新計算的操作  以下操作會觸發重新計算:  1.在自動模式下單:擊行或列分隔符。  2.在工作表中插入或刪除行、列或單元格。  3.新增、更改或刪除已定義名稱。  4.在自動模式下重新命名工作表或更改工作表位置。  5.在表格中使用篩選、隱藏或取消隱藏行。  6.在自動模式下開啟工作簿。如果工作簿上次由不同版本的Excel計算,則開啟工作簿通常導致完整計算。  7.選中了“儲存前自動重算”選項的情況下在手動模式下儲存工作簿。  六、可能的情況下先對資料進行排序,再使用查詢引用。儘可能避免對未排序資料執行查詢,因為速度很慢。  1.如果使用完全匹配選項,則函式的計算時間與找到匹配項之前掃描的單元格數成比例。對於在較大區域內執行的查詢,此時間可能非常長。對排序資料使用VLOOKUP、HLOOKUP和MATCH的近似匹配選項的查詢時間很短,並且不會根據所查詢的區域長度顯著增加。  2.因為完全匹配查詢可能很慢,所以應該考慮使用以下可以提高效能的方法:  Ø使用一張工作表。使查詢和資料位於同一工作表中執行速度更快。  Ø如果可以,請首先對資料進行排序,並使用近似匹配。  Ø如果必須使用完全匹配查詢,請將要掃描的單元格區域限制在最小範圍內。使用動態區域名稱或表格(列表)功能,而不是引用大量行或列。  七、做到了前面四點,表格的運算速度還是很慢時,將Excel的計算模式改為手動計算,在需要時再重新計算。  在手動計算模式下,可以透過按【F9】觸發智慧重新計算。使用【Shift+F9】僅重新計算所選工作表,按【Ctrl+Alt+F9】強制對所有公式執行完整計算,也可以透過按【Ctrl+Shift+Alt+F9】強制徹底重新構建依賴項和執行完整計算。  F9計算所有開啟的工作簿中的所有工作表。  按Shift+F9可計算活動工作表。  按Ctrl+Alt+F9可計算所有開啟的工作簿中的所有工作表,不管它們自上次計算以來是否已更改。  如果按Ctrl+Alt+Shift+F9,則會重新檢查相關公式,然後計算所有開啟的工作簿中的所有單元格,其中包括未標記為需要計算的單元格。

  • 中秋節和大豐收的關聯?
  • 覺得自己寫的小說很棒,也不水,人物又不腦殘,還有很多細節深度,就是沒人看是怎麼回事呢?