粗略說來 EXCEL 的速度是
樞紐 > 公式 > VBA
您問這篇說到vba的快速
#1CP_GVlc (Office) [ptt.cc] Re: [算表] 在有上千筆資料比對
那篇原因是vba一遍一遍的讀取儲存格,慢,
先存到陣列中,也就是在記憶體中,再讀取記憶體,快。
大量的sumif countif已是很慢,sumifs可想而知,
最好能想辦法由樞紐得出結果。
我並不清楚這個題目如果用VBA以讀成陣列的方式進行計算,有沒有比公式或樞紐快,
可能要有經驗的大大來分享了。
樞紐最快的意思,還包含了其他內建、定的較死的運算功能如篩選,
而VBA較慢的說法,舉個例:
有三千列數值就好,約只有三十列有值,其他都是零,想把零的砍掉,
1. 於是寫VBA時用FOR,每列檢查是否為零,然後刪掉→慢
2. 寫VBA時用篩選,複製結果出來,原處整個刪掉→快
同樣是寫VBA,法1.用自己寫的流程,就顯示VBA的速度慢,
法2.利用內建好的功能,速度差十萬八千里~
題外話,
最近碰到要使用VLOOKUP或GETPIVOTDATA的決擇,
發現VLOOKUP可配合多執行緒,GETPIVOTDATA似乎不行~
※ 引述《yenwang (愛情的流浪漢)》之銘言:
: 軟體:excel
: 版本:2010
: 目前正在進行資料的彙整
: 這部分需要用到計算公式
: 大概就是某幾個項次的總合
: 大多用到sumifs之類的
: 可因為我的資料都多達一萬五千筆以上
: 我將公式寫好後用
: 複製--->貼上公式
: 則電腦會計算幾十分鐘後才會有結果出來
: 不知道這部分有沒有可以加速的方式
: 還是說板上的大家有類似的經驗可以分享給我
: 至少我覺得2010比2007算起來快多了
: 但是遇到這龐大的資料計算
: 仍舊是很久很久ㄚ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.4.169