返回列表 上一主題 發帖

關於大面積的Vlookup緩慢改善的可能?

關於大面積的Vlookup緩慢改善的可能?

假設
A1~A65535 放商品代碼(英數混合共十位數)
B1~B65535 放價格 (但價格可能缺漏 或 出現錯誤值)
C1~C9999 隨機放入商品代碼(或客人自行輸入)
D1~D9999 顯示對應C欄的商品價格

目前的作法是將A1~B65536定義為名稱定義"商品價格表"
再把D欄用Vlookup的公式參照C欄去抓價格

但因為資料量大的關係? 比較弱小的電腦會跑很久
請問有更好的函數或自訂函數或陣列函數的寫法嗎?

謝謝

又
ps.小弟不是科班出生 有下面想法 不知道對否 如果觀念不對下可能會看不懂請忽略 或 指正 感恩!
VBA可以避免重複大量的運算嗎?例如先把名稱定義"商品價格表"的資料讀到記憶體內等方式?
不要讓D欄每一格Vlookup都去抓資一次名稱定義"商品價格表"的資料?
讓整個D欄每一格Vlookup(或自訂函數)共用記憶體內的"商品價格表"的資料
藉此讓Vlookup(或自訂函數)可以更快速運算?

謝謝

本帖最後由 jazzcarr 於 2017-7-9 22:19 編輯

其實資料量 還超過655536
價格可能缺漏 或 出現錯誤值的比率約0.1% (因為商品可能下架或暫時停售)
有比vlookup更好的函數或VBA函數嗎?

TOP

好喔 謝謝
另外請問可以寫成陣列公式嗎?
會比較快嗎?

TOP

謝謝 mhl9mhl9 大大 我的電腦比較慢 但兩個方法的時間 差了將近20倍!!!
可以請您註解一下程式碼嗎?(字典那個就可以)
第一次看到這樣的方式
但我還需要稍作修改
才能作為實務上的運用
感恩

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題