匹配不同文件中的单元格并返回另一个文件的值

时间:2014-10-22 17:14:28

标签: excel if-statement formula vlookup

我需要两个文件来查找单元格并确保它们匹配并返回另一个文件的实际值。当我使用下面公布的公式时,它只返回一个True或False,我需要单元格的实际值...

  

= IF(V:V ='[HW入库货件信息21月10日(2).xls]入境'!$ W:$ W,AND(K:K ='[HW入库货件信息21月10日   (2).xls]入境'!$ X:$ X,VLOOKUP('[HW入库货件信息21月10日   (2)的.xls]内向'$ U:!$ U,1,0)))

2 个答案:

答案 0 :(得分:0)

据我了解你的公式,其中几乎每个函数和括号都被错误地使用了。对不起:-) AND位于错误位置,IF没有有用的参数,VLOOKUP根本没有意义。尝试使用此公式:

=IF(AND(V:V='[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W,K:K='[HW inbound shipment info 21 Oct (2).xls]Inbound'!$X:$X),"success","failed"))

我不确定它是否正确,因为我没有办法在这里测试它,但我试图解决你的括号。

由于我完全不了解您打算从公式中返回哪个值,如果行匹配成功则返回“success”,否则返回“failed”。如果可行,请用所需的值替换这些字符串。

答案 1 :(得分:0)

您的OP“我有两个文件需要查找单元格并确保它们匹配”

所以看一下公式中的第一个测试,大概是在表格的第H列中输入了你测试的数据:

V:V='[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W

如果TRUE,则会返回V1 = '[HW inbound shipment info 21 Oct (2).xls]Inbound'!W1,如果FALSE

中的任何其他行,则'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W会返回'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W

列的比较隐式测试输入公式的行中的相等性。我希望尽可能明确。

可以使用其中一个查找函数VLOOKUPMATCH确定第V列中的PN /项是否存在= MATCH(V1, '[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W,0)中的任何位置。例如:

'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W

即使搜索到的数组未排序,

也会返回#N/A中V1的第一个匹配的行号。如果未找到匹配项,则会返回IF(ISNA(MATCH(V1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W,0), FALSE, TRUE)错误。您需要先测试V1是否在搜索到的数组中:

FALSE

如果未找到匹配,我返回AND的原因是允许在=AND(IF(ISNA(MATCH(V1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W,0), FALSE, TRUE), IF(ISNA(MATCH(K1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$X:$X,0), FALSE, TRUE)函数中测试两个条件:

AND(TRUE, TRUE) 只有在找到您的PN /项目和数量时才会评估为MATCH

此时你所知道的是两个值都被找到了,但你不知道它们是否在同一行,所以你需要另外一个测试,记住=(MATCH(V1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W,0) = MATCH(K1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$X:$X,0)返回的位置被测数组中的匹配值:

TRUE

如果是PN / Item和QTY,

将返回VLOOKUP  在同一排。 免责声明:测试显示只有在PN / Item和QTY都是唯一的情况下才会有效。如果没有,您将不得不求助于宏观解决方案。

您要返回的值位于您正在查找的列的左侧,因此您无法使用INDEX(array, row_num, [column_num])返回所需的值。唯一的选择是使用MATCH公式之一返回的row_num使用=INDEX('[HW inbound shipment info 21 Oct (2).xls]Inbound'!$U:$U, MATCH(V1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W,0))

=IF(AND( IF(ISNA(MATCH(V1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W,0)),FALSE,TRUE), IF(ISNA(MATCH(K1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$X:$X,0)), FALSE, TRUE)), IF(MATCH(V1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W,0) =MATCH(K1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$X:$X,0), INDEX('[HW inbound shipment info 21 Oct (2).xls]Inbound'!$U:$U, MATCH(V1,'[HW inbound shipment info 21 Oct (2).xls]Inbound'!$W:$W,0)),""),"")

现在我们可以在H1中将它们放在一起:

{{1}}

添加缩进使其更容易阅读。

通过创建HW入库货件信息21 10月(2).xls工作簿进行测试,其中包含在U,W和X列中具有测试数据的入库单。