在Excel中,比较两个数组的多个条件然后返回不同的值

时间:2015-08-31 22:51:22

标签: excel

我有两个数组。第一部分包含来自不同公司的不同工作的费率:

Task:             Contractor:   Pay rate:
Labour            Company A     25
Excavation        Company A     28
Labour            Company B     22
Traffic Control   Company B     24
Labour            Company C     26
Excavation        Company C     26

第二个是我们输入每个公司所做工作的地方:

Task:             Contractor:   Hours:   Rate:   Total:     
Labour            Company B     18      
Excavation        Company C     8       

如果我使用VLOOKUP,INDEX(MATCH)等,它总是只检查它找到的第一个匹配,所以如果我要查找" Labor"它只会检查第一个劳务列表,而不是B公司或C公司的劳务列表。

有没有办法让Excel匹配"任务"和"承包商"价值,然后返回"支付率"值?

2 个答案:

答案 0 :(得分:1)

只要任务和承包商的每个组合在您的数据中只出现一次,您就可以进行简单的SUMIFS:

=SUMIFS($C$2:$C$7,$B$2:$B$7,B10,$A$2:$A$7,A10) 

enter image description here

答案 1 :(得分:0)

在Sheet2 D2中尝试这个,

=INDEX(Sheet1!$C$1:$C$999, AGGREGATE(15, 6, ROW($1:$999)/((Sheet1!$A$1:$A$999=$A2)*(Sheet1!$B$1:$B$999=$B2)), 1))

这是标准的两列匹配。出于您的目的(使用独特的组合),SUMIFS function也可以提供正确的付费率。