首页 > Excel专区 > Excel教程 >

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

Excel教程 2022-01-05 22:23:41

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


标签: Excel图表制作Excel常用函数excel数据透视表excel教程

上一篇:OFFSET函数 下一篇:INFO函数
office教程网 Copyright © 2016-2020 https://www.office9.cn. Some Rights Reserved.