PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   EXCEL 檔案比較 (https://www.pcdvd.com.tw/showthread.php?t=980253)

Carcia 2012-08-19 09:29 PM

EXCEL 檔案比較
 
想請問一下
有新舊2個EXCEL檔案

裡面都各有1500項目的資料
我要怎麼做才能快速的知道新檔案對照於舊檔案裡的項目,
有新增還是刪除了哪幾個項目?變更的有哪幾個項目?

譬如說:
OLD FILE:
1: AAA 100元
2: BBB 200元
3: CCC 300元
4: DDD 500元

NEW FILE:
1: AAA 100元
2: BBB 200元
3: DDD 400元
4: EEE 500元

當然一個個對是可以知道的,
但1500個項目不是個小數目
有比較有效率的方法嗎?
我知道像LINUX 裡打指令 diff可以幫我找出不一樣的地方

Doubla A 2012-08-19 09:40 PM

excel vba...

Carcia 2012-08-19 09:45 PM

VBA 有比較推薦的書還是網站教學嗎?

還是說自己建資料庫會比用EXCEL好?
但公司資料都是EXCEL的...

azteq 2012-08-19 10:43 PM

簡單一點的就用Vlookup囉,但要寫不少個,資料多的話效率不高
常要用就要學寫vba

另外,你看一下彰化兄這個你合不合用...
http://272586.blogspot.tw/2009/04/excel.html

異抗壞血酸鈉 2012-08-19 11:15 PM

只是簡單比對項目異同的話,我自己是用 vlookup 函數...

參考看看 -> Excel 資料比對小技巧

sazabijiang 2012-08-19 11:43 PM

引用:
作者Carcia
想請問一下
有新舊2個EXCEL檔案

裡面都各有1500項目的資料
我要怎麼做才能快速的知道新檔案對照於舊檔案裡的項目,
有新增還是刪除了哪幾個項目?變更的有哪幾個項目?

譬如說:
OLD FILE:
1: AAA 100元
2: BBB 200元
3: CCC 300元
4: DDD 500元

NEW FILE:
1: AAA 100元
2: BBB 200元
3: DDD 400元
4: EEE 500元

當然一個個對是可以知道的,
但1500個項目不是個小數目
有比較有效率的方法嗎?
我知道像LINUX 裡打指令 diff可以幫我找出不一樣的地方


1. 半自動法
把新舊兩個資料表放在同個檔案, 互相用Vlookup函數然後手動拖曳右下角的黑十字複製公式, 即可查出兩者有哪些項目不存在於對方的資料表

2. Access SQL法
把新舊兩個資料表匯入Access資料庫, 使用SQL語法 WHERE NOT EXIST 或 WHERE NO IN (SELECT ) 即可找出兩者的差異

3. Excel VBA法
在Excel裡寫VBA, 以雙重迴圈比對新舊資料的差異. 如果要進階一點, 可以先將新舊兩資料各自排序過, 則複雜度會從原本的 N^2 變成 N log(N)

4. Excel VBA SQL法
在Excel VBA裡透過ODBC物件, 把自身Excel當成資料庫, 然後以方法二一樣的語法查詢.


所有的時間均為GMT +8。 現在的時間是10:01 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。