2012-09-12 35 views
2

如何比較下面指定的兩個表格列,但是隻有Sheet1中位置(列)中的字符串的一部分將僅匹配部分字符串與位置(列)在sheet2中?
1.只能匹配sheet1中位置(列)的前兩個字符和sheet2中位置(列)的前兩個字符。
2.只能匹配sheet1中位置(列)的任意兩個字符和sheet2中位置(列)的任意兩個字符。請幫助如何僅比較不同Excel表格(列)中字符串的一部分

Location(sheet1) Location(sheet2)  
____________________________________________ 
india- north  USxcs 
India-west   Indiaasd 
India- east   Indiaavvds 
India- south  Africassdcasv 
US- north   Africavasvdsa 
us-west    UKsacvavsdv 
uk- east   Indiacascsa 
uk- south   UScssca 
Africa-middle  Indiacsasca 
Africa-south  Africaccc 
Africa-east   UKcac 
+0

嘗試像這 - = VLOOKUP(A,B,MatchingColumnName,真/假) 這裏:從工作表Sheet位置列 A =所需子由相關Excel函數獲得(像SUBSTRING()函數) B =所需的子字符串從Sheet2位置列獲得相關的Excel函數(類似於SubString()函數) (我只是給出一個想法,請檢查正確的語法) –

+0

這裏子字符串的位置在問題2中是未知的。需要比較兩個表如果字符串的任何部分(4個字符)匹配。 – neobee

+0

嗨,我想我已經在技術上解答了您的問題,即使您在擴大答案時遇到了問題。如果您想發佈代碼,我很樂意爲您提供幫助,但我認爲除非您不同意,否則我認爲您應該接受我的回答。 – OlduwanSteve

回答

0

問題1,您可以使用MID功能的前兩個字符從每個單元格的值提取並進行比較。

對於問題2,如果您可以接受預定的最大字符串長度,則有解決方案。這不是一個很好的好的解決方案!你可以使用嵌套的if語句,基本上是「展開循環」。此更新

似乎較舊版本的Excel具有7個嵌套函數的限制

=IF(IFERROR(FIND(MID(A1,1,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,2,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,3,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,4,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,5,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,6,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,7,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,8,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,9,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,10,2),B1,1),0)>0,TRUE, 
IF(IFERROR(FIND(MID(A1,11,2),B1,1),0)>0,TRUE, 
FALSE 
) 
) 
) 
) 
) 
) 
) 
) 
) 
) 
) 

由於詹姆斯詹金斯:此示例的單元格A1和B1比較了A1的長度可達12個字符。通過將相鄰單元格中的公式鏈接在一起,您可以解決此問題(如果您不介意使電子表格更加難看)。事實上,如果你想獲得真正的創意,你可以使用列索引來計算偏移的搜索,是這樣的:

=IF(IFERROR(FIND(MID($A1,(COLUMN(C1) - 3) * 6 + 1, 2), $B1, 1),0)>0,TRUE, 
...repeat with +2, +3, +4, +5 
if(D2 = FALSE, FALSE, TRUE) 
))))))) 

則列可以被正確的,如果你需要更多的字符串長度複製。請注意,當相鄰列爲空時,最裏面的'if'應強制爲TRUE或FALSE值。

+0

這裏子字符串的位置在問題2中是未知的。如果字符串的任何部分(4個字符)匹配,需要比較兩個表。試用MID,SUBSTITUTE,FIND,SEARCH功能。 – neobee

+0

我已經更新了我的答案,一旦我意識到你在問什麼。它有幫助嗎? – OlduwanSteve

+0

如果字符串長度更長,則不起作用。 – neobee