excelperfect 如下图1所示,我想使用公式: =SUMPRODUCT(A1:G1,G2:A2) 但是,Excel总是将其修改为从左到右的单元格区域: =SUMPRODUCT(A1:G1,A2:G2) 图1 如何实现自己的目的呢? 可以使用公式: =SUMPRODUCT(A1:G1,N(OFFSET(A2:G2,0,7-COLUMN(A2:G2),1,1))) 然而,公式使用了硬编码7,如果区域大小变了,这个数字也要手动更改。可以将上面的公式修改为: =SUMPRODUCT(A1:G1,N(OFFSET(A2:G2,0,COLUMNS(A2:G2)-COLUMN(A2:G2),1,1))) 为什么OFFSET函数前还要加上N函数呢?这是因为OFFSET函数只返回单元格区域引用,而不返回值。OFFSET函数使用第1个、第2个或第3个参数为数组的调用,返回一组单元格区域引用,当用于算术操作数或大多数函数的参数时,Excel无法处理。幸运的是,N函数是一个例外,它有效地将区域引用数组转换为数字数组(注意,它将不是数字的条目转换为数字零)。T函数对字符串执行相同的操作。N函数仅返回数值,将其他所有内容转换为0;T函数仅返回字符串,将其他所有内容转换为空;如果都想返回,使用CELL(“Contents”,…)。注意,当使用公式求值或按F9键时,Excel不能直接显示OFFSET部分的内容,而是显示为#VALUE!。 例如,我想求单元格A1+A3+A5之和,如果使用公式: =SUM(OFFSET(A1,{0;2;4},0,1,1)) 无论是否以数组公式输入,返回的值都是单元格A1中的值。 然而,如果使用公式: =SUM(N(OFFSET(A1,{0;2;4},0,1,1))) 则返回正确结果。 还可以使用公式: =SUM(TRANSPOSE(OFFSET(A1,{0;2;4},0,1,1))) 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。
|
|
来自: hercules028 > 《excel》