2017-04-13 73 views
0

我不是在尋找一個VBA解決方案。 目標是找出John在2015年7月1日開始的12個月內工作了多少小時。 我有兩個工作表。一個工作表如下所示:陣列算術,Excel,非VBA

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

工作表2

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

的日期可以儘可能的電子表格將允許下去。我正在做的是將函數保留在工作表公式中。公式我現在是:

=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。

+0

沒關係!我已經回答了這個問題 - 例如:= SUMPRODUCT(OFFSET(出席!$ A $ 1,0,1,368)) – bdpolinsky

回答

1

嘗試使用偏移量。

=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)) 

應該獲取正確的列。