细胞K1001
,试试这个:
=IF((A1001&B1001&C1001&D1001&E1001)=(A1&B1&C1&D1&E1),K1,"")
然后拖动公式向下。
这将整行1001与整个第1行进行比较,这就是您要求的。
如果您打算找到的匹配行像一个VLOOKUP(你有这种暗示,但不清楚这是你的意图),那么你将需要使用VBA来做到这一点。
喜欢的东西(未经测试):
Sub MatchTables()
Dim tbl1 as Range, tbl2 as Range
Dim var1() as Variant, var2() as Variant, v as Variant
Dim r as Long, matchRow as Long
Set tbl1 = Range("A1:K500") '## Modify as needed
Set tbl2 = Range("A1001:K15001") '## Modify as needed
ReDim var1(1 to tbl1.Rows.Count)
ReDim var2(1 to tbl2.Rows.Count)
'## store the range values, conctaenated, in array variables:
For r = 1 to tbl1.Rows.Count
var1(r) = tbl1(r,1) & tbl1(r,2) & tbl1(r,3) & tbl1(r,4) & tbl(r,5)
Next
For r = 1 to tbl2.Rows.Count
var2(r) = tbl2(r,1) & tbl2(r,2) & tbl2(r,3) & tbl2(r,4) & tbl2(r,5)
Next
r = 0
For each v in Var2
r = r+1
'## Check to see if there is a complete match:
If Not IsError(Application.Match(v, var1, False)) Then
matchRow = Application.Match(v, var1, False)
'## If there is a match, return the value from column K in the first table:
tbl2.Cells(r,11).Value = tbl1.Cells(matchRow,10).Value
Else:
tbl2.Cells(r,11).Value = vbNullString
End If
Next
End Sub
不完全是。我需要将第1001行与第2行进行比较。如果它不匹配,则将它与第3行进行比较,然后将4,5,6(直到变量的最后一行)与比较匹配。当它发现一个它必须返回K或者如果它没有返回则什么也不返回。这将重新启动1002行,然后1003到最后一个(变量) – user2385809
您需要在VBA中这样做。如果有多个匹配怎么办?但更好的解决方案是获取可用数据和可用于查找/索引的标识符。如果这不是一个选项,您将不得不学习如何使用VBA。这不是一个特别复杂的请求,但是如果你还不知道某些VBA的话。虽然这里有人可能愿意为你做功课,并为你写代码,但我不是。我会建议使用'AutoFilter'方法,但是如果你的数据全部在你所描述的一张表中,并且在同一列中,那么这可能会有问题。 –
是的,这将成为vba代码的一部分。我知道如何使用VBS,但我没有掌握它。我尝试了两天,我的同事正在等待这个。我做了所有其余的代码,但这部分我只是不知道该怎么做。你至少能指出我朝着正确的方向吗? – user2385809