2015-04-22 128 views
0

在兩列中有大量的數據。我必須打印這兩個字符串是否匹配或不匹配到第三列作爲匹配/不匹配。Excel中的字符串比較VBA

For example- YES & YeS match 
       yes & YES match 
       ye2 & yes No match & so on 

我一直在這樣做,手動檢查每列中的值,然後寫入匹配/不匹配。希望有一些幫助,使過程自動化。

+0

做[這個問題](http://superuser.com/questions/284022/comparing-two-strings-in-excel)的答案給你答案?總而言之,如果您只是在'C1'中放入'= EXACT(A1,B1)'並複製下來,您將獲得布爾值以確定它們是否匹配,而無需使用VBA。要獲得匹配/不匹配,只需將該布爾值放入「IF」語句。 – eirikdaude

+0

@eirikdaude我已經嘗試過這個EXACT語句,對於像YES&yEs這樣的例子,雖然這兩個字符串是相等的,但它使我的值爲false。 –

+0

'= A1 = B1'是否有效?這似乎是在我測試時做的,而「EXACT」給我的結果和你一樣。如果有效,我會將我的評論寫成答案並刪除評論。 – eirikdaude

回答

0

你並不真的需要VBA來做到這一點,但如果是的話,你可以簡單地寫一個UDF指定(在模塊的頂部)你使用Compare text選項。

Option Compare Text 
Public Function compareText(ByVal str1 As String, ByVal str2 As String) As String 

    If str1 = str2 Then 
     compareText = "Match" 
    Else 
     compareText = "Do not match" 
    End If 

End Function 

一旦加入,說你有在細胞A1B1數據,那麼你只需添加到細胞C1公式=compareText(A1,B1)和滾動下來的其他值。

請注意,這是最有效的方法,因爲Option Compare Text將執行字符串的二進制比較(在比較之前不必將任何字符串轉換爲UPPER,如果數據量真的很大,會影響性能正如你所說)。