excel函数求相邻单元格两两相乘之积的和

网友投稿 598 2022-10-18

excel函数求相邻单元格两两相乘之积的和

excel函数求相邻单元格两两相乘之积的和,需要在列A中放置列B至列U中的值两两相乘的结果之和,例如:

A2 = (B2*C2)+(D2*E2)+(F2*G2)+…+(T2*U2)

A3 = (B3*C3)+(D3*E3)+(F3*G3)+…+(T3*U3)

有没有不需要列出该行中的每个单元格的更简单的公式?

示例数据如下图1所示。

图1

先不看答案,自已动手试一试。

公式

如果数据在单元格区域B2:U2中,那么可以在单元格A2中输入公式:

=SUMPRODUCT(B2:U2*C2:V2*(MOD(COLUMN(B2:U2),2)=0))

公式解析

从公式中可以看到,SUMPRODUCT函数包含了3个数组:

数组1:B2:U2

数组2:C2:V2

数组3:(MOD(COLUMN(B2:U2),2)=0)

其中:

数组1就是单元格区域B2:U2中的值,即:

{10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20}

数组2是单元格区域C2:V2中的值,比数组1向右偏移了1列。即:

{20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,0}

数组3:(MOD(COLUMN(B2:U2),2)=0)

可转换为:

(MOD({2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21},2)=0)

对生成的数组求余:

({0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}=0)

比较后得到数组:

{TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE}

SUMPRODUCT函数将3个数组中相对应的值分别相乘:

{10*20*True, 20*10*False , 10*20*True,20*10*False , 10*20*True, 20*10*False , 10*20*True, 20*10*False , 10*20*True,20*10*False , 10*20*True, 20*10*False , 10*20*True, 20*10*False , 10*20*True,20*10*False , 10*20*True, 20*10*False , 10*20*True, 20*10*False}

可以看到,当3个数组相乘时,只有数组1和2中的奇数项将由SUMPRODUCT求值,因为所有偶数项都乘以False(=0),地跳开了相乘中的重复列,因此,上面的数组转换为:

{200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0}

即:

SUMPRODUCT{200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0}

结果为:

2000

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:wps文字批量清除多余空白段落两个技巧
下一篇:甘特图生成软件
相关文章