返回列表 上一主題 發帖

[發問] 萬筆資料快速比對處理

[發問] 萬筆資料快速比對處理

本帖最後由 bioleon69 於 2017-10-9 23:11 編輯

工作表一
約有兩萬筆資料
1.JPG
2017-10-9 23:06

工作表二
約有250筆資料
2.JPG
2017-10-9 23:06


想從工作表一只留下與工作表2符合的股票代號
不符合的rows全部刪除掉

最後留下的資料會只剩下跟工作表2一樣(約250筆)
而不是兩萬筆資料...

請問大大們
這樣情況
應該得怎麼處理會比較快速
還請各位大大指導技巧
謝謝!

祝各位中秋愉快!


附上 excel檔
test1.rar (795.97 KB)
VBA 從0開始
先從學會看的懂開始
先從會有基本修改能力開始
一步一步學習中
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

本帖最後由 ziv976688 於 2017-10-10 02:59 編輯

回復 1# bioleon69
VLOOKUP.rar (349.65 KB)

Sheet1!B1
=IF($A1="","",VLOOKUP($A1,Sheet1!$B:$H,COLUMN(),))
右拉至G欄,在右下角的小"+"快速點2次,或下拉填滿。

Sheet2!B:G有很多顯示#N/A的儲存格,
Sheet2! A欄的某些代號,是不是Sheet1!B欄沒有?
Sheet1!太多筆,沒仔細看。
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復 1# bioleon69
VLOOKUP_vba.rar (355.73 KB)

不好意思,沒注意到問題是放在程式區
再補上程式碼

Private Sub CommandButton1_Click()
[B1:G500] = ""

[B1].Resize(500, 6) = "=IF($A1="""","""",VLOOKUP($A1,Sheet1!$B:$H,COLUMN(),))"
[B1].Resize(500, 6) = [B1].Resize(500, 6).Value

[H1].Select
End Sub
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復 3# ziv976688


ZIV~謝謝你的回覆!
如果是說
要把SHEET1多餘的不符合股票代號
全部刪除應該怎麼做比較好?!
VBA 從0開始
先從學會看的懂開始
先從會有基本修改能力開始
一步一步學習中
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

本帖最後由 ziv976688 於 2017-10-10 19:11 編輯

回復 4# bioleon69
Sheet1=資料庫,Sheet2要比對的A欄資料一般都應該是以手動方式填入的,因此,是不是先將Sheet2!A不要比對的列,先自行移除後再執行巨集。

或在第一次執行巨集後,將Sheet2有顯示#N/A的列移除(筆數不多,且只要移除一次,應該不會很麻煩),再執行巨集一次即可。

我不懂股票,不知其代號有沒有特定的型態?有的話,可以用"取代"或程式移除非指定型態的Sheet1的列
以上僅供參考
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復 1# bioleon69
依你篩選規則,從1萬9千多筆資料中總共會篩出272筆資料,與需比對的249筆資料多出23筆,經檢查資料庫後發現共有33筆股票代號會有兩種股票名稱,例如:
61071包含:微星國票71購01、華美一,兩種股票名稱
61262包含:榮成元大6C購01、信音二,兩種股票名稱
61274包含:興勤永豐6C購01、九豪四,兩種股票名稱
...族繁不及備載。

另外需比對的249筆資料中,沒被篩出的股票代號共有底下的10筆:
13361、14663、17152、24022、30181、30392、35352、47143、80381、81712
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

test1.rar (784.03 KB)
sheets(1)的按鈕可以完成你的作業
lmh
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復 1# bioleon69

進階篩選

   
play.gif
2017-10-11 10:55
學海無涯_不恥下問
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

本帖最後由 bioleon69 於 2017-10-11 21:21 編輯

回復 8# Hsieh

謝謝
ziv976688
Kubi
mhl9mhl9
Hsieh
的指導方法

ziv976688
謝謝您的指導,我了解意思了
因為我主要是想把工作表1的數據留下需要看得而已
兩萬筆占了太多容量..
目前是在加迴圈判斷把NA的全部刪除後
工作表2資料複製起來
再跳到工作表1,把兩萬筆刪除
然後再將比對後的VALUE值貼到工作表1
這是目前小弟的照著您的說明演變的解決方法 感謝感謝


KUBI
感謝提醒,我知道原因是什麼了 哈
工作表2的數據一個月才會公布一次
工作表1的是每周,中間隔了三周沒更新
資料有異動

mhl9mhl9
感謝您的指導
不過小弟的程度似乎還不太夠
再慢慢吸收中...
哈 程式碼稍微高深了點拉!!
不過這個字典的功能速度倒是挺快!!
(PS,不是作業拉!..小弟自己每周追蹤股票用的..自用..自用)

Hsieh
感謝版大...這動態圖片真夠牛B
目前照著錄製後(程式碼只有兩行!)
自行錄製後>刪除工作表1的2萬筆資料
再將進階篩選後的資料貼到工作表1

目前兩個比對方法入手 感謝感謝各位大大!!
VBA 從0開始
先從學會看的懂開始
先從會有基本修改能力開始
一步一步學習中
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復 1# bioleon69
sheet1的20000筆資料裝進d,sheet2的500筆資料裝進dd,凡是d里有dd的編號的資料裝進ddd,最後刪除sheet1的舊資料貼上ddd,就是所需結果.
由於字典執行得很快,上述邏輯清楚,如果資料源有變化或結果要求有變化,程式碼很容易修改.所以類似課題我都喜歡用字典處理.
lmh
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

        靜思自在 : 受人點水之恩,須當湧泉以報。
返回列表 上一主題