excelperfect
本次的練習(xí)是:需要在列A中放置列B至列U中的值兩兩相乘的結(jié)果之和,例如:
A2 = (B2*C2)+(D2*E2)+(F2*G2)+…+(T2*U2)
A3 = (B3*C3)+(D3*E3)+(F3*G3)+…+(T3*U3)
有沒有不需要列出該行中的每個(gè)單元格的更簡(jiǎn)單的公式?
示例數(shù)據(jù)如下圖1所示。
圖1
先不看答案,自已動(dòng)手試一試。
公式
如果數(shù)據(jù)在單元格區(qū)域B2:U2中,那么可以在單元格A2中輸入公式:
=SUMPRODUCT(B2:U2*C2:V2*(MOD(COLUMN(B2:U2),2)=0))
公式解析
從公式中可以看到,SUMPRODUCT函數(shù)包含了3個(gè)數(shù)組:
數(shù)組1:B2:U2
數(shù)組2:C2:V2
數(shù)組3:(MOD(COLUMN(B2:U2),2)=0)
其中:
數(shù)組1就是單元格區(qū)域B2:U2中的值,即:
{10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20}
數(shù)組2是單元格區(qū)域C2:V2中的值,比數(shù)組1向右偏移了1列。即:
{20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,10,20,0}
數(shù)組3:(MOD(COLUMN(B2:U2),2)=0)
可轉(zhuǎn)換為:
(MOD({2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21},2)=0)
對(duì)生成的數(shù)組求余:
({0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}=0)
比較后得到數(shù)組:
{TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE}
SUMPRODUCT函數(shù)將3個(gè)數(shù)組中相對(duì)應(yīng)的值分別相乘:
{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}
可以看到,當(dāng)3個(gè)數(shù)組相乘時(shí),只有數(shù)組1和2中的奇數(shù)項(xiàng)將由SUMPRODUCT求值,因?yàn)樗信紨?shù)項(xiàng)都乘以False(=0),完美地跳開了相乘中的重復(fù)列,因此,上面的數(shù)組轉(zhuǎn)換為:
{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}
結(jié)果為:
2000
聯(lián)系客服