返回列表 上一主題 發帖

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

回復 28# azrael19
感謝您的提供 但裏面沒任何函數
結果當然沒有改變





TOP

回復 29# 准提部林

謝謝您 但那不是我要的 我目前都能很正常且檔案也變的很小 只是想把它弄得更有人性化

TOP

回復 30# azrael19
真的是高手 原來是用函數寫的 我還以為您的vba忘了存原檔案內
但結果是不太一樣? 應該是比對方式不同造成的 我有將比對之函數寫在附註內  感謝您  您那檔執行速度超快的 希望您能找出原因

這是我的使用現狀



已經加上data之檔案
~test% - TT3.rar (154.61 KB)

TOP

回復 30# azrael19

先說聲 :對不起
高手您的OK 是我沒有完全執行完 (有更改間距=您設的值) 但忘了做整套的比對 所以才會數據不同 之前回傳於您之程式 執行結果與我的完全相同
我再多試一些較長時間的測試 我想應該結果也會相同
真的沒想到用函數就可以完成



TOP

回復 30# azrael19

目前有發現個很小的問題 只是我沒能力修改那麼複雜的函數
目前經過數種方式的比對 "data"內之總數 與"結果"內之發生次數 都完全一樣 但統計後之"目前股價累計發生率"有小許的差距 可能是算式不同所致
可否麻煩您將"目前股價累計發生率" 改成如附件上放的方式 事實上我也發現之前我用的計算"目前股價累計發生率"的方式不太好 還好都只有小數點以下的誤差

謝謝您幫了我的大忙



    ~test% - TT4.rar (202.79 KB)

TOP

回復  azrael19

目前有發現個很小的問題 只是我沒能力修改那麼複雜的函數
目前經過數種方式的比對 "da ...
lcctno 發表於 2015-8-28 18:42


試試看...
~test% - TT5.zip (272.72 KB)

TOP

本帖最後由 lcctno 於 2015-8-28 23:15 編輯

回復 36# azrael19
感謝您 目前只測試2個不同族群的data 我很高興 結果"完全正確" 您的函數真的太強了

若方便的話 可否麻煩使用最白話的方式 告訴低能的我 您在"結果"分頁內 那3個函數的意思

區間=COUNTA(A:A)-1  值是正確 但為何是-1 而不是-2( 因為我看到有2個是非數字列) ?

資料列_最高價 '=OFFSET(INDIRECT(ADDRESS(IF(Data!$I$6="",2,Data!$I$6),3,,,"Data")),,,IF(Data!$J$6="",COUNTA(INDIRECT("Data!$A:$A"))-1,Data!$J$6-IF(Data!$I$6="",2,Data!$I$6)+1),) 這個我完全不知道是什麼

資料列_最低價 '=OFFSET(資料列_最高價,,1,,) 這個我也完全不知道是什麼

謝謝您了

TOP

回復  azrael19
感謝您 目前只測試2個不同族群的data 我很高興 結果"完全正確" 您的函數真的太強了

若 ...
lcctno 發表於 2015-8-28 23:14


1.COUNTA是計算範圍中不是空白的儲存格數目,-1就是減掉儲存格A2標題指數(股價)
2.其實組合公式看不懂時你可以先嘗試著分拆成一小段方式並輸入儲存格看輸出結果就很好理解,例如:
(a)
  公式: =ADDRESS(8,6) 就等於字串 "$F$8"
  公式: =ADDRESS(8,6,,,"Data") 就等於字串 "Data!$F$8"
(b)當Data!I6 值是18時:
  公式: =ADDRESS(Data!$I$6,3,,,"Data") 就等於字串 "Data!$C$18"
  公式: =INDIRECT(ADDRESS(Data!$I$6,3,,,"Data")) 就是參照儲存格 Data!C18
(c)當Data!I6 值是7,Data!J6值是306
  公式: =OFFSET(INDIRECT(ADDRESS(Data!$I$6,3,,,"Data")),,,Data!$J$6-Data!$I$6+1,)
  就是指向儲存格範圍 Data!C7:C306
(d)公式中使用到IF函數部分就是針對Data!$I$6或Data!$J$6是空白時的例外處理方式。
3.例如自定名稱資料列_最高價是指向儲存格範圍 Data!C7:C306
  公式: =OFFSET(資料列_最高價,,1,,) 就是指向儲存格範圍 Data!D7:D306

參考資料:
COUNTA
ADDRESS
INDIRECT
OFFSET
評估值公式
自訂名稱

TOP

回復 36# azrael19
經測試股票 有發現工作頁"Data"內H2之總數有誤
經極小化來檢視 發現您漏了將等於列之值取樣 如附件 有紫色的地方請看一下
昨天我只測試指數並沒發現與我的統計有異 但今天測試股價時發現了這問題
麻煩請您將函數修改一下 謝謝您

~test% - TT6.rar (124.83 KB)

TOP

回復  azrael19
經測試股票 有發現工作頁"Data"內H2之總數有誤
經極小化來檢視 發現您漏了將等於列之值 ...
lcctno 發表於 2015-8-29 09:19


將結果工作表 A4 公式由=A3+Data!$L$4改成=ROUND(A3+Data!$L$4,2)下拉自動填滿公式

TOP

        靜思自在 : 要用心,不要操心、煩心。
返回列表 上一主題