需要求一行中列B至列V中的值兩兩相乘的結(jié)果之和,例如:
(B2*C2)+(E2*F2)+(H2*I2)+…+(T2*U2)
注意,每?jī)蓚€(gè)列中的值相乘之間間隔了一列,也就是說,要求第1行中“A”和“B”對(duì)應(yīng)的第2行中的值相乘的積之和。有沒有不需要列出該行中的每個(gè)單元格的更簡(jiǎn)單的公式?
示例數(shù)據(jù)如下圖1所示。

圖1
先不看答案,自已動(dòng)手試一試。
公式
如果數(shù)據(jù)在單元格區(qū)域B2:V2中,那么可以使用公式:
=SUMPRODUCT((B2:V2)*((B1:V1)=”a”),(C2:W2)*((C1:W1)=”b”))
公式解析
從公式中可以看到,SUMPRODUCT函數(shù)包含了2個(gè)數(shù)組:
數(shù)組1:(B2:V2)*((B1:V1)=”a”)
數(shù)組2:(C2:W2)*((C1:W1)=”b”)
兩個(gè)數(shù)組相似,只看一個(gè)數(shù)組就行了。我們看數(shù)組1,其中的B2:V2就是單元格區(qū)域B2:V2中的值,即:
{10,20,30,10,20,30,10,20,30,10,20,30,10,20,30,10,20,30,10,20,30}
另一個(gè)(B1:V1)=”a”,判斷單元格區(qū)域B1:V1中的值是否與“a”相等,返回TRUE/FALSE組成的數(shù)組:
{TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE}
上述兩個(gè)中間數(shù)組相乘,即:
{10,20,30,10,20,30,10,20,30,10,20,30,10,20,30,10,20,30,10,20,30}*{TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE}
得到:
{10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,10,0,0}
可以看出,除列中第一行的值是“a”對(duì)應(yīng)的第二行中的值外,其余為0。
同樣,數(shù)組2:
(C2:W2)*((C1:W1)=”b”)
可得到:
{20,0,0,20,0,0,20,0,0,20,0,0,20,0,0,20,0,0,20,0,0}
即列中“B”對(duì)應(yīng)的值。
將這兩個(gè)數(shù)組傳遞給SUMPRODUCT函數(shù),實(shí)現(xiàn)對(duì)應(yīng)元素相乘后求和:
=SUMPRODUCT({10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,10,0,0},{20,0,0,20,0,0,20,0,0,20,0,0,20,0,0,20,0,0,20,0,0})
得到結(jié)果:
1400
公式調(diào)試技術(shù)小結(jié)
1.如果公式要處理的數(shù)據(jù)很多,可以在編寫公式時(shí)在少量的數(shù)據(jù)上測(cè)試,通過后再應(yīng)用到要處理的數(shù)據(jù)中。
2.測(cè)試公式時(shí),沒必要使用很大的數(shù)字,可以使用簡(jiǎn)單的數(shù)字如1、10、20等。
3.在測(cè)試公式時(shí),可以選取公式的某部分,按F9鍵查看中間結(jié)果,來評(píng)估公式是不是按我們的意愿在工作。






