Excel函数帮助 – 将工作表中的2个单元格与另一个工作表中的2个单元格进行比较,如果匹配,则返回不同列中的值

我想知道是否有人能够提供一些build议,请最好的方法来做到这一点:

数据在工作表#1

Col A | Col B | Col C Part-1 | 8 | 2 Part-2 | 7 | 7 Part-7 | 9 | 4 Part-8 | 2 | 6 

数据在工作表#2

 Col A | Col B | Col C Part-1 | 8 | *Return value* (If Part-1 is found and 8 matches, return 2) Part-2 | 7 | *Return value* Part-3 | 8 | *Return value* 

在单元格C2 Worksheet#2中 – 我想检查A1Part-1是否在Worksheet#1 A中find。 如果是这样,那么我也想确保在Worksheet#2中的数字B2与在相同部分#旁边的列B中的数量匹配,如果部分#和数量匹配,那么我想跨越值从Worksheet#1中Col C中的相应单元格复制到Worksheet#2 Col C 如果不匹配,我希望它返回一个0

这是Reinier第二种方法的一种变体,它可以在任何版本的Excel中工作。 您可以使用对特定数据范围的引用,正如我在这里所做的,或者对整个列。

  =SUM((A2=Sheet1!$A$2:$A$5)*(Sheet2!B2=Sheet1!$B$2:$B$5)*Sheet1!$C$2:$C$5) 

这是一个数组公式,所以需要用ControlShiftEnter组合 input 。 它执行与SUMPRODUCT相同的操作。 (还有其他几种方法可以做到这一点,例如使用带INDEX或OFFSET的MATCH。)

本质上,你在做什么是基于两列值的查找。 从这个angular度来看,您可以使用任何版本的Excel都支持的SUMPRODUCT函数。 在工作表Sheet2 ,单元格C2input以下内容:

 =SUMPRODUCT((Sheet1!$A:$A=$A2)*(Sheet1!$B:$B=$B2)*Sheet1!$C:$C) 

select并向下拖动C2右下angular以完成C列。

这只能依靠Sheet1C中的值是数字这一事实。 如果Sheet1 AB列中A值对出现多次,它就会中断,但是您首先不会在您的问题中解决这种情况。

对于版本2007及更高版本,您可以使用更方便的函数SUMIFS和基本相同的方法:

 =SUMIFS(Sheet1!$C:$C,Sheet1!$A:$A,$A1,Sheet1!$B:$B,$B1) 

或者,您可以使用IFVLOOKUP函数的组合。 适用于Excel 2007或更高版本的公式如下:

 =IFERROR(IF(VLOOKUP($A1,Sheet1!$A:$C,2,FALSE)=$B1,VLOOKUP($A1,Sheet1!$A:$C,3,FALSE),0),0) 

早期版本的Excel不支持IFERROR ,但您仍可以使用类似的方法,如此处所述。

我已经在这里上传了一个示例工作簿,其中还包括Sheet2 D列中的另一种方法。