体验零代码搭建

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

网友投稿  ·  2023-11-27 14:11  ·  所有内容  ·  阅读 939


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

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

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

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


excel函数求满足条件的单元格两两相乘之积的和 << 上一篇
2023-11-27 14:11
excel函数获取与满足多个查找条件的所有值
2023-11-27 14:11
下一篇 >>

相关推荐