iT邦幫忙

0

Excel 取交集資料

Neish 2017-12-19 17:52:5010562 瀏覽

目前有個表單需求

使用VBA或是公式都可以

主要有A、B兩表

目的需要將B表資訊填入A表

根據A表第一欄與第一列作為B表交集條件,取B表對應出的數值,填入A表黃底欄位中

目前想說要用FOR迴圈來找
先判斷A表值有沒有在B表
(因為A表A欄位的值,可能不存在於B表A欄)
再找出A欄值再B表的位置
進一步判斷A表第一列的值對應B表的數值
......

文字難以描述... 煩請各位參閱附件實例

實際筆數非常多A表約25萬筆,B表約2萬5千筆

用上述的邏輯可能會掛掉...

煩請各位大大是否有較聰明的作法

如有描述不清之處 再請告知

謝謝

操作實例如下
https://cowtransfer.com/s/7yAFEyQJFEyA

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2017-12-19 22:36:29
最佳解答

我只會 101 招...VLOOKUP

1.B表加一欄key,把兩個值合成一個
A2=B2&D2
A3=B3&D3
...以此類推

https://ithelp.ithome.com.tw/upload/images/20171219/20001787mh7xNmTFZV.png

2.A表就用 VLOOKUP 去查 B 表即可
B2=VLOOKUP($A2&B$1,B表!$A$2:$D$11,3,FALSE)
其他儲存格公式都可以用「複製B2-貼上」的方式
或者用「黑十字拖拉」的方式(例:先拉 B2..B13,再往右拉到欄G)

https://ithelp.ithome.com.tw/upload/images/20171219/20001787TANuMgvto2.png

還有
25萬筆不算多
不必太在意
Excel 2011 最多列數已經有 1,048,576 列
會慢只是因為電腦慢

Neish iT邦研究生 1 級 ‧ 2017-12-20 09:10:30 檢舉

感謝海綿寶寶晚上10點還回文
清楚明瞭 !

直覺看到這種問題都在想FOR迴圈...
而且我第一次處理到20幾萬筆資料

我再另一個論壇得到使用SUMPRODUCT的方法
也還不錯

可是我不太理解公式的原理 哈哈

分享如下
=TEXT(SUMPRODUCT(--($A2=B表!$A$2:$A$11)*--(B$1=B表!$C$2:$C$11)*B表!$B$2:$B$11),"0;;""""")

其中
SUMPRODUCT(--($A2=B表!$A$2:$A$11)*--(B$1=B表!$C$2:$C$11)*B表!$B$2:$B$11)
我不加--也OK,不確定--的用意為何

TEXT(....,"0;;""""")
應該是把0轉成空格,好抽象的寫法XDD

我要發表回答

立即登入回答