使用单元格中的值作为Excel SUM函数中行的索引

时间:2015-10-25 04:58:00

标签: excel

考虑到下面的两个工作表,我想在每列的F列中添加一个SUM,但不是在Sheet1中使用SUMMING值,我需要使用Sheet1中的单元格值作为Sheet2中的行号并使用这些单元格值在SUM中。例如,Bill的SUM应为SUM(Sheet2! B1,C6,D4,E3) = 200

            Sheet1  
A       B       C       D       E       F  
Bill    1       6       4       3       200  
Sue     2       1       3       2       450  
Mary    3       2       2       1       550  
Joe     4       3       1       4       150  
Alice   5       4                       25  
Bob     6       5                       0  

            Sheet2
A       B       C       D       E  
1      100     200      50     400  
2       50     100      25     200  
3       25      50       0     100  
4        0      25       0      50  
5        0       0       0       0  
6        0       0       0       0  

这只是一个示例电子表格;在真实的列中,已经有40列,必要时添加更多列。

2 个答案:

答案 0 :(得分:0)

Sheet1!F1

=SUMPRODUCT(N(OFFSET(Sheet2!$A$1,B1:E1-1+(B1:E1-1<0)*(2^20-1),COLUMN(B1:E1)-1)))

根据需要向下复制。

单元格Sheet2!1048576:1048576不应包含内容。因为如果Sheet1中给出的行号为0或为空,将引用这些单元格。

答案 1 :(得分:0)

将数据汇总在Sheet2!A1:E6中,在Sheet1的第一行F列中使用此公式。

=SUM(INDEX(Sheet2!B:B, B2)*SIGN(B2), INDEX(Sheet2!C:C, C2)*SIGN(C2), INDEX(Sheet2!D:D, D2)*SIGN(D2), INDEX(Sheet2!E:E, E2)*SIGN(E2))

Sheet1中的零或空白表示整个列,但是乘以该单元格值的SIGN function。乘以零的任何东西等于零,这不会影响总和。

SUM over INDEX

使用提供 row_num 参数的单元格值的INDEX function,可以避免会对工作簿的计算延迟产生负面影响的volatile¹函数。< / p>

¹当整个工作簿中的任何内容发生变化时,挥发性函数会重新计算,而不仅仅是在影响其结果的内容发生变化时。