Excel 两列数据匹配(两列顺序不同),含有四个相同字就算正确,如何匹对。

A B
12345 ABCFG 正确

ABCDEFG 1235 正确

楼主的问题,乍看确实是一头雾水,函数公式恐怕是难以胜任,建议楼主使用VBA程序进行判断、匹配。根据楼主的意思,大致写出如下的VBA程序代码,望笑纳。

(一)其VBA程序代码如下:

Sub Char_Compare()
Dim j1, j2, j3, j5, j6, j7, j8, j9, myArray1(100), myArray2(100)
On Error Resume Next  '忽略运行过程中可能出现的错误
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1")  '定义工作表Sheet1
mysheet1.Columns("C:C") = ""  '清空C列

For j1 = 2 To 1000  '从第2行到1000行
 If mysheet1.Cells(j1, 1) <> "" And mysheet1.Cells(j1, 2) <> "" Then  '如果两个单元格不是空白,则
   j9 = 0  'j9初始化0
   Erase myArray1
   Erase myArray2
   j2 = Len(mysheet1.Cells(j1, 1))  '获取单元格字符长度
   j3 = Len(mysheet1.Cells(j1, 2))
   For j5 = 1 To j2
    myArray1(j5) = Mid(mysheet1.Cells(j1, 1), j5, 1) '把截取的结果放到数组相应的位置
   Next
   For j6 = 1 To j3
    myArray2(j6) = Mid(mysheet1.Cells(j1, 2), j6, 1)
   Next
   For j7 = 1 To j2
    For j8 = 1 To j3
     If myArray1(j7) = myArray2(j8) And myArray2(j7) <> "" And myArray2(j8) <> "" And _
     myArray2(j7) <> " " And myArray2(j8) <> " " Then
      j9 = j9 + 1
      myArray2(j8) = ""  '如果存在相同,数组对应的值置空白
      Exit For
     End If
    Next
     If j9 >= 4 Then
      mysheet1.Cells(j1, 3) = "正确"
      Exit For
     End If
   Next
 End If
Next

End Sub

(二)其执行结果如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-03
在C1中输入或复制粘贴下列公式
=IF(COUNTIF(B:B,A1),A1,"")

=VLOOKUP(B1,A:A,1,)
下拉填充追问

你这是精确匹配了呀,老哥

相似回答