同様のテキストを含むが区切り文字が異なる2つのセルをExcelで比較したいとします。私は区切り文字を比較しながら区切り文字を無視したい。複数の区切り文字を含むテキストを含む2つのセルの文字列比較
例:
John Doe: Mary Ann. Are Married/
John Doe Mary Ann Are Married
マクロを完全に認識していません。すべてのリードは高く評価されています!
同様のテキストを含むが区切り文字が異なる2つのセルをExcelで比較したいとします。私は区切り文字を比較しながら区切り文字を無視したい。複数の区切り文字を含むテキストを含む2つのセルの文字列比較
例:
John Doe: Mary Ann. Are Married/
John Doe Mary Ann Are Married
マクロを完全に認識していません。すべてのリードは高く評価されています!
あなたはこれを試すことができます。
Function CompareByLetter(t1 As String, t2 As String) As Boolean
CompareByLetter = CleanString(t1) = CleanString(t2)
End Function
Function CleanString(t As String) As String
Dim t1, x, c
For x = 1 To Len(t)
c = Asc(UCase(Mid(t, x, 1)))
If (c >= 65 And c <= 90) Or c = 32 Then t1 = t1 & Mid(t, x, 1)
Next x
CleanString = t1
End Function
は、その後、あなたが数式としてそれを使用することができます。
=CompareByLetter(A1,A2)
このマクロはちょうどのみ保ち文字とスペースで文字列を比較します。
=CleanString(A1)
を使用して、他の文字をすべて文字列から削除することもできます。右(添付資料参照)左側にオフクリックしてInsert -> Module
右側のモジュールウィンドウにコードを貼り付けを選択し、プロジェクト内のオープンExcelをこれを使用してALT+F11
を押して
。その後
Image mirror since Stackoverflow image hosting seems down
、あなたは式と同じような機能を使用することができるはずです。
セルに=CompareByLetter(A1,A2)
と入力してください。あなたはOffice 365のExcelをお持ちの場合
私はちょうど理由として答えとして追加しました。私はあなたの方法を好む。あなたはコードをどこに置くべきかを説明したいかもしれません。 –
は、我々はこの配列数式を使用することができます:配列数式なので
=TEXTJOIN("",TRUE,IF(((CODE(UPPER(MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1)))>=65)*(CODE(UPPER(MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1)))<=90))+(CODE(UPPER(MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1)))=32),MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1),""))=TEXTJOIN("",TRUE,IF(((CODE(UPPER(MID(A2,ROW(INDIRECT("1:" & LEN(A2))),1)))>=65)*(CODE(UPPER(MID(A2,ROW(INDIRECT("1:" & LEN(A2))),1)))<=90))+(CODE(UPPER(MID(A2,ROW(INDIRECT("1:" & LEN(A2))),1)))=32),MID(A2,ROW(INDIRECT("1:" & LEN(A2))),1),""))
をそれが編集モードを終了するときはCtrl-Shiftキーを押しながら入力する代わりに入力して確認する必要があります。正しく実行された場合、Excelは{}
を数式の周りに置きます。
@ user1274820 Office 365 Excelが必要です。 TEXTJOINは比較的新しい機能です。 –
@ user1274820 TEXTJOIN()の使用を模倣するUDFについてはこちらをご覧ください:http://stackoverflow.com/questions/39532189/vlookup-with-multiple-criteria-returning-values-in-one-cell –
'何もない両方のセルで区切り記号を置き換えるために式' = SUBSTITUTE()を使用し、次いで比較。 – JNevill
いくつの区切り文字を使用していますか? 3つだけ表示されますか? –
はい。示されたものだけ。 – vnkrishna