返回列表 上一主題 發帖

棘手的excel運算問題,如何改善??

棘手的excel運算問題,如何改善??

本帖最後由 藍天麗池 於 2016-1-26 14:18 編輯

明細變動記錄.rar (148.6 KB)

附檔是一個小弟平常用在紀錄的excel目前有些棘手的運算問題還麻煩版上大大幫我一下

如圖所示,左邊是我平時在紀錄的儲存格,右邊是計算用的儲存格,但是因為右邊計算的儲存格裡面我有寫一些函數,造成整個excel在跑的時候左邊無法紀錄或是整個當掉(因為所寫函數太吃CPU和記憶體),請問一下版上大大小的這個問題應該怎麼解決才好??

我有想出一些解決方式,無奈對VBA不是太熟,在煩請版上高手幫幫忙

解決方式
1.讓左邊A-F列即時運算(A2-F2是DDE所以需要隨時更新才能接收資料),R-T列每分鐘運算一次,更新完後寫成值而不是公式,這樣的方式可以嗎??(不知道同一個sheet可不可以不同頻率即時運算)

2.變更R-T列的函數寫法,讓整個程式跑起來不要那麼吃資源

3.將S-T列的函數寫在VBA裡面,每分鐘執行一次執行完後將公式寫成值

煩請版上的高手大大幫幫小弟

回復 2# c_c_lai
執行後有幾個問題跟C大說一下
1.R列因為會跟著指數創新高而改變所以不能是寫死的

2.R列只需要抓最高到最低區間200個左右,不需要一直向下增加

3.執行後S跟T列沒有任何動作

另外,如果我想在S列之後呈現8:45-13:45之間的所有結果這樣的話公式要怎麼改(意思就是S寫入8:45、T寫入8:46....一直寫到13:45)
PS.我看了一下用R1C1的方式寫公式好像就不用變更
=IF(SUMIFS(C5,C4,R1C,C2,R[-1]C18)=0,"",SUMIFS(C5,C4,R1C,C2,R[-1]C18))---每一行都這樣,這樣如果要寫到13:45分就應該不用輸入太多公式了

C大我的想法是這樣你看看可不可行
R列不動,S列在8:46:01-8:46:05之內寫入公式,5秒內甚至更短時間完成計算,之後將公式寫成值,T、U、V列依此類推(就是讓執行時間不要太久,執行完立刻將公式寫成值)
這只是小弟的一個想法,還請C大看看可不可行

TOP

本帖最後由 藍天麗池 於 2016-1-27 14:01 編輯

回復 7# c_c_lai

C大我說明一下,我的主要用意是左邊紀錄量,右邊我根據時間和不同的成交點位來加總
例如:
12:58:55        7775        1        1258        -1                                             
12:58:56        7776        1        1258        -1
12:58:56        7776        1        1258        -1
12:58:58        7775        25        1258        1
12:58:58        7775        1        1258        -1
12:58:58        7775        1        1259        -1
12:59:00        7774        4        1259        -1
12:59:00        7774        1        1259        -1
12:59:00        7774        1        1259        -1
12:59:01        7775        1        1259        -1
12:59:01        7774        1        1259        -1
12:59:02        7774        1        1259        -1
12:59:02        7774        5        1259        -1
12:59:03        7774        12        1259        1

右邊是將12:58裡面的所有7775、7776、7774的量加總,但不加總12:58分以外的量,這就是我為什麼用SUMIFS的原因,如果用SUMIF則會將當天所有同價位或同時間的數字都加總,而我要的只是某個時間段裡面有出現的價位的加總
如上所示
7776  -2        12:58分裡面7776出現2次,最後面的數字加總是-2
7775  -3        12:58分裡面7775出現3次,最後面的數字加總是-3
7774   0         12:58分裡面7774出現0次,最後面的數字加總是0
大概就是這樣,C大能理解嗎??

TOP

回復 8# 准提部林
所以函數不能直接打在儲存格上面,要用VBA且執行完要馬上將公式轉成值,要不然一樣會拖慢速度

TOP

回復 9# 准提部林

大大可以說明一下用法和原理嗎??我看不太懂,抱歉
謝謝你的幫忙

TOP

回復 9# 准提部林

大大好厲害,但請教一下
1.是每分鐘都要自己按統計嗎??
2.按統計的過程中會造成EXCEL變慢嗎??
3.如果把它改成自動每分鐘統計一次可以嗎??

TOP

回復 7# c_c_lai


    C大我要的效果大概跟7樓大大的附件一樣你看一下

TOP

回復 16# c_c_lai

哈哈,有點複雜,看不太懂,不過還是謝謝C大,我明天先來測試提大的看看

TOP

回復 18# 准提部林
準大,我測試了一下昨天那個手動的版本,發現價格無法自動記錄了,可以請准大幫幫忙嗎??
小弟簡單的可以,但是這對小弟來說已經超出能力範圍了,感謝

TOP

回復 16# c_c_lai

C大,昨天7樓的附件經測試後無法記錄價格,可以請C大幫我看看嗎??

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題