返回列表 上一主題 發帖

[發問] 誰能幫這幾乎重複動作的VBA瘦身 謝謝

回復 43# lcctno

data!J2 可以直接帶函數比較簡單一些
=FORECAST(I2,OFFSET(結果!D1,MATCH(I2,結果!A:A,1),,-2),OFFSET(結果!A1,MATCH(I2,結果!A:A,1),,-2))


FORECAST(x,known_y's,known_x's)
X    是您要預測一個數值的資料點。
Known_y's    是因變數陣列或資料範圍。
Known_x's    是自變數陣列或資料範圍。



原 data!J2 公式
=IF(ISERROR(LOOKUP(I2,OFFSET(結果!$A$3,,,結果!$E$2,),ROW(OFFSET(結果!$A$3,,,結果!$E$2,)))),"--",IF(LOOKUP(I2,OFFSET(結果!$A$3,,,結果!$E$2,),ROW(OFFSET(結果!$A$3,,,結果!$E$2,)))>=結果!$E$2+2,1,VLOOKUP(I2,IF({1,0},OFFSET(結果!$A$3,,,結果!$E$2,),OFFSET(結果!$D$3,,,結果!$E$2,)),2)+(I2-LOOKUP(I2,OFFSET(結果!$A$3,,,結果!$E$2,)))*LINEST(OFFSET(INDIRECT("結果!D"&LOOKUP(I2,OFFSET(結果!$A$3,,,結果!$E$2,),ROW(OFFSET(結果!$A$3,,,結果!$E$2,))),1),,,2,),OFFSET(INDIRECT("結果!A"&LOOKUP(I2,OFFSET(結果!$A$3,,,結果!$E$2,),ROW(OFFSET(結果!$A$3,,,結果!$E$2,))),1),,,2,))))
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 43# lcctno

SUMPRODUCT函數很慢,需減少使用
A3:A2562 公式範圍太大使用計算變得很慢,實際才使用到A743

建議改為

結果!
A3 =IF(Data!N$2+Data!O$2*(ROW()-4) > Data!K$2, "", Data!N$2+Data!O$2*(ROW()-3))
B3 =IF(A3="",0,SUMPRODUCT((A3<=資料列_最高價)*(A3>=資料列_最低價)))
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 53# lcctno


原來的也是OK,修改一些公式感覺快一些。

大盤2011-12-19起 (ML089).rar (120.57 KB)
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 61# 准提部林


MMULT 在2007版
1. 測試 1000000X2 及 2X1000000 都可以跑
2. 測試 4000X4000以上就會出現公式資源不足的訊息
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 61# 准提部林

__登錄時都勾選了〔自動登錄〕,每次進來論壇還要再輸入帳號密碼,真不方便!

我的會自動登錄(WIN10+CHROME)
但一段時間(好像一個星期吧)就會要求重新登錄,若你不常上來就會感覺每次登錄都要重新輸入帳號密碼。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題