数组算术,Excel,非VBA

我不是在寻找一个VBA解决scheme。 目标是找出John从2015年7月1日起在12个月内工作了多less小时。 我有两个工作表。 工作表一看起来如下所示:

Name | Date Start | Total Hours John | 7/1/2015 | Formula goes here 

工作表二

  Date | John | Jane | Joe 7/1/2015 | 3 | 2 | 2.5 7/2/2015 | 3 | 2.5 | 0 rest of attendance data 

date可能会下降,直到电子表格将允许。 我正在做的是保持在工作表公式中的function。 我现在的公式是:

 =SUMIFS(Worksheet2!B:B, Worksheet2!$A:$A, ">="&Worksheet1!$B2, Worksheet2!$A:$A, "<="&EDATE(Worksheet1!$B2, 12)) 

如果我通过VBA做到这一点,我可以做一些事情:

 Range("B"&2 & ":" & "B" & 1058476) 

但是我正在寻找一些方法来查找这个人的名字,这个名字在行中的表1上,他们的名字在表2中出现在哪个列上; 然后总结表2中该列中所有在12个月时间间隔内的值,并将该数字放在工作表1的单元格C2中。 我不想用Worksheet2!B:B。

尝试使用偏移量。

 =SUMIFS(OFFSET(Worksheet2!A:A,0,MATCH(Worksheet1!$B1,Worksheet2!$A2:$A100,0)), Worksheet2!$A:$A, ">="&Worksheet1!$B2, Worksheet2!$A:$A, "<="&EDATE(Worksheet1!$B2, 12)) 

应该获取正确的列。