比較

2011-01-20 55 views
0

我將在Excel中的術語解釋這種不平等的長度比賽和不同的列只是所以它可能會更清晰。比較

我有一個2列的Excel表。

列A具有69000行。 B列有49,000行。

列A具有我們的全部產品 列B具有從製造商1產品列表

只有某些/一些行其是2列之間常見的。並且列B不是列A的子集。列A具有額外的條目,列B也具有額外的條目。

我需要知道列B中的哪些行與列A 相同,哪些行來自列B對列A不常見

我該如何實現這一目標?我很努力,但是vlookup正在永久掛斷。有沒有其他的Windows/Office工具可以幫助我?如果它是一個宏,你可以給我腳本和建議來執行它嗎?

我也可以訪問linux機器,我也熟悉這些工具。

我可以將此信息傳輸到文本文件/ s,我可以運行一些sed或awk腳本來打印輸出嗎?

任何幫助將是偉大的。

+0

也許將數據列加載爲數據庫中的兩個表格更好... – 2011-01-20 12:57:47

回答

1

這在Unix或Linux上很簡單。首先將所有公司的產品放在一個文件中,將所有其他公司的產品放在另一個文件中。我會稱它們爲FileA和FileB。

排序。

$ sort -u FileA > temp_file 
$ mv temp_file FileA 

$ sort -u FileB > temp_file 
$ mv temp_file FileB 

這兩個文件通用的產品。 。 。

$ comm -12 FileA FileB 

FileB獨有的產品。 。 。

$ comm -13 FileA FileB 
+1

這可能很簡單,但它與OP的問題有關嗎? – 2011-01-20 14:01:50

1

我很驚訝VLOOKUP是慢/不可靠的,70'000行不算什麼。你確定你的公式是正確的嗎?

鑑於你有Excel,你可能會有MS Access。加載列到Access表和使用連接會非常快

0

排序兩個列表,並使用近似VLOOKUP(最後一個參數真)解析:這將是非常快(二進制搜索),但你需要處理NOMATCH情況:這樣的事情在C列
=IF(B1=Vlookup(B1,$A$1:$A$69000,1,True),"Match","NoMatch")
抄下

1

使用MATCH()功能,它會給你一個號碼,如果有結果,並#NA如果沒有。

我總表工作在Excel 2007及更高版本,但會給兩種語法:

假設你有一個表,用的東西列比較「列1」和「列2」,檢查是否在價值列2出現在列1

=ISNUMBER(MATCH(Table1[[#This Row],[Column2]],[Column1],0)) 

或者,如果你有一個老同學的陣列,以在列A和B的數據,在A中的B尋找價值:

=ISNUMBER(MATCH(Sheet1!$B2,Sheet1!$A$2:$A$11,0)) 

什麼繼續 - 您正在尋找一列中當前行上的值與另一列中的值完全匹配(0參數),並檢查您是否獲得數值(是的,有匹配),或者不是(沒有匹配)