Board logo

標題: [發問] EXCEL 重算儲存格 [打印本頁]

作者: jochun    時間: 2013-4-21 14:00     標題: EXCEL 重算儲存格

我做了一個檔案有二個工作表(DATA及收入表)
收入表的部份資料連結DATA
其實這原檔不是我做的
我只是當時(大概10年前)覺得這個很好用就拿來修改
但是原檔我也弄丟了
修改後一直覺得很不順,整個檔案"跑很慢"
每次輸入金額就出現"重算儲存格"
然後要一直算到100%
平均都要等上個十幾秒鐘,如果要輸入很多金額就要一直等
我有試過手動試算,全部打再完再按F9,等它跑完大概要等3分鐘@@

因為我修改的EXCEL表無法上傳到這音裡來
所以我把公式貼到這上面來
收入表裡定義裡做了二個函數
=OFFSET(DATA!$B$1,MATCH(薪資收入!D4,DATA!$A$2:$A$971,0),,COUNTIF(DATA!$A$2:$A$971,薪資收入!D4))
=DATA!$C$2:$C$8

我不知道是不是有辦法可以讓它處理速度順暢一點?
作者: Bodhidharma    時間: 2013-4-21 14:08

回復 1# jochun

單就這樣看不出來,整個資料表中還有哪些函數運算?
作者: jochun    時間: 2013-4-21 14:26

本帖最後由 jochun 於 2013-4-21 14:27 編輯

回復 2# Bodhidharma


現在用的這是我修改過第二個版
我剛剛發現我之前那個版裡的VBA PROJECT裡還有很多的之前的檔案
可是卻刪不掉
但其實在之前那版時就已經是跑很慢了
不曉得是不是因為這樣所以才跑這麼慢
基本上應該是沒有其他函數了
作者: Hsieh    時間: 2013-4-21 17:20

回復 3# jochun
在VBA視窗中所看到的工作表,就是檔案內還存在這些工作表
這裡面光看工作表名稱就可知道會用到不少的公式
向重複值的計算通常會有很多輔助欄或是陣列公式
所以沒有檔案是不可能做到任何改善的建議
作者: jochun    時間: 2013-4-21 18:07

回復 4# Hsieh


我剛剛發現我把這些工作表隱藏了
刪除後是好了
但另一個檔案
就是第二個版本還是不行
因為第二個版本的工作表很多很多
所以如果我想要讓它跑的順暢是不是就必須要分開來做,不要全都塞在一個活頁簿裡?
作者: jochun    時間: 2013-4-21 18:13

我再請問一下,我的工作表裡以前有做巨集
後來我刪掉了,我也進去VBA裡把程式碼都刪掉了
但是我開啟時還是一樣會出現是否開啟巨集
所以這是不是表示我還是有潛在沒有使用的巨集沒有刪除到?
我要怎麼知道是哪些?
作者: Hsieh    時間: 2013-4-21 20:45

回復 6# jochun
瞎子摸象,開啟檔案會問是否開啟巨集,表示檔案內還存在程式碼沒錯
你的問題在沒有檔案的情況下,應該是無法得到解答(就算有檔案都不一定能夠改善速度)
建議將檔案壓縮上傳,才能對你的問題有所幫助
作者: jochun    時間: 2013-4-21 22:25

回復 7# Hsieh

我一直想著不能上傳EXCEL
忘了也可以弄成壓縮檔^^"
我現在在做兩個檔案
附件TEST的問題是開啟時會出現巨集的問題
ACC的這個檔案是很慢

花了一個下午+一個晚上
依照您的說明,我終於把一些複雜的公式都刪完了
所以重算儲存格很慢的問題也解決了
但是ACC的這個檔案還是非常非常慢
其實這個問題存在了一年多了
也因為如此我都不想開啟這個檔案
之前沒空處理,現在才有一點時間想好好的解決它
我猜想有兩個原因:
1. 資料筆數太多?--如果是這個問題很麻煩,因為我不想分工作表來做,這樣我在做資料很不好做
2. 我有使用「設定格式化條件」的功能?--如果是這個問題,是否有其他功能可以替代?
作者: Hsieh    時間: 2013-4-21 22:34

本帖最後由 Hsieh 於 2013-4-21 23:10 編輯

回復 8# jochun
巨集存在的問題如動畫將所有模組刪除才是不含任何巨集
[attach]14731[/attach]
ACC.xls速度慢是因為你的定義名稱很多,這些定義如果以你目前檔案內容根本都用不上
因為你的檔案只是資料的儲存並無任何計算
把定義名稱全部刪除應該就不會拖慢速度了
作者: jochun    時間: 2013-4-21 22:44

回復 9# Hsieh


    謝謝你
我剛剛把無用的定義都刪除只剩下三組:send/項目/類別
還是一樣。。。
是因為「項目/類別」這兩個的定義太複雜嗎?
作者: Hsieh    時間: 2013-4-21 22:50

回復 10# jochun

你的格式化條件公式並無法達到甚麼功能,把這些條件全刪除
重新檢討你的條件需求看看
作者: Hsieh    時間: 2013-4-21 23:21

回復 10# jochun


send/類別
在ACC中並無這些定義,只有項目一個存在
至於項目定義的公式是跨檔案計算變動範圍,這當然對速度會有影響
只是在此檔案中看不出它的存在必要性
作者: jochun    時間: 2013-4-22 00:01

我剛又試著把「定義」及「設定格式化條件」的功能全部刪除
還是一樣∼
囧∼所以應該是資料筆數太多的問題

作者: Hsieh    時間: 2013-4-22 08:36

回復 13# jochun
該檔案就算這些定義及格式化條件存在,在我的電腦中重算也不超過1秒
(只是這些定義及格式化條件並不合適,是否有存在必要?)
以這樣的資料量在EXCEL來說並不大
你會有太慢的情形,還要由其他方面去了解
作者: jochun    時間: 2013-4-22 11:45

我格式化條件的目的只是在於每當我建立一筆新的資料時,可以知道是否跟上面的有重複
我也不想每次都要重新找一次這個資料
我想請問如果不使用這個東西,是否還有其他方式可以做呢?
作者: jochun    時間: 2013-4-22 11:51

因為我也試過把定義及格式化條件全部刪除
我在上下拉動那個軸時也還是覺得很慢。。。
作者: Hsieh    時間: 2013-4-22 14:32

回復 15# jochun
用格式化條件檢查重複
首先要知道你所謂重複的條件是甚麼?
通常帳號與暱稱都要是唯一識別
[attach]14743[/attach]
然而,這樣的設計會每個儲存格都要重新計算一次
當然速度會差
要避免重複,可利用驗證功能
[attach]14744[/attach]
作者: Hsieh    時間: 2013-4-22 14:37

回復 16# jochun
有可能你的格式化條件沒有完全刪除
因為你每個區塊設有不同條件,你在刪除時可能遺漏某些區塊
利用隨便一個不含格式化條件儲存格
複製格式貼上即可全部刪除格式化條件

[attach]14745[/attach]
作者: jochun    時間: 2013-4-22 17:39

回復 18# Hsieh


所謂重複的意思就是說:
比如說我C欄或D欄裡
有同樣的名稱,如果是重複的就可以顯示讓我知道
我只知道格式化條件可以弄
如果有其他方式可以做,我也是可以改
但是我想不出其他可以做的方式:(




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)