考虑到下面的两个工作表,我想在每列的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列,必要时添加更多列。
答案 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。乘以零的任何东西等于零,这不会影响总和。
使用提供 row_num 参数的单元格值的INDEX function,可以避免会对工作簿的计算延迟产生负面影响的volatile¹函数。< / p>
¹当整个工作簿中的任何内容发生变化时,挥发性函数会重新计算,而不仅仅是在影响其结果的内容发生变化时。