0

我想知道是否有人能够就最好的方法提供一些建议:

工作表 # 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*

In Worksheet#2in Cell C2- 我想检查Part-1inA1是否在 Col Ain中找到Worksheet#1。如果是,那么我还想确保数字与同一零件#旁边的 Col 中的B2数量匹配,如果零件#和数量都匹配,那么我想复制相应单元格中的值在 Col in ,到 Col in 。如果不匹配,我希望它返回一个.Worksheet#2BCWorksheet#1CWorksheet#20

4

2 回答 2

1

本质上,您所做的是基于两列中的值的查找。从这个角度来看,你可以使用SUMPRODUCT任何版本的 Excel 都支持的函数。Sheet2在单元格中输入以下内容C2

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

C2选择并向下拖动完成列的右下角C

这只适用于Sheet1, column中的值C是数字的事实。如果列中的值对ABofSheet1出现多次,它会中断,但您首先没有在问题中解决这种情况。

SUMIFS对于 2007 及更高版本,您可以通过基本相同的方法使用更方便的功能:

=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,但您仍然可以使用此处说明的类似方法。

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

于 2013-04-03T21:37:38.390 回答
1

这是 Reinier 的第二种方法的变体,其形式适用于任何版本的 Excel。您可以使用对特定数据范围的引用,就像我在这里所做的那样,或者对整个列进行引用。

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

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

于 2013-04-04T02:30:49.387 回答