Excel情報(bào)局
職場聯(lián)盟Excel
1 職場實(shí)例
多個(gè)條件“且”的含義是:
當(dāng)所有條件都成立時(shí),返回結(jié)果為true,數(shù)值表示為1,反之有任意一個(gè)不成立,則返回false,數(shù)值表示為0。
多個(gè)條件“或”的含義是:
當(dāng)所有條件中有任意一個(gè)是成立的,返回結(jié)果為true,如果都不成立,才返回false。
這個(gè)問題的解決實(shí)際上已經(jīng)超出了SUMIFS函數(shù)的使用范圍了!
2
解題思路
=sumproduct(數(shù)組1,數(shù)組2,數(shù)組3, ……)
數(shù)組里面的相應(yīng)元素進(jìn)行相乘后,再將乘積求和。
常規(guī)運(yùn)算過程如下演示:
=SUMPRODUCT({1;2;3},{4;5;6})
=1*4+2*5+3*6
=32
首先我們?cè)贔2單元格輸入函數(shù)公式:
=(B2:B9="男")+(C2:C9>30)
其實(shí)這一步主要做的是一系列的邏輯判斷,來獲取相應(yīng)的數(shù)組元素。
(B2:B9="男")
按下F9鍵,查看數(shù)組返回元素:
{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE}
即該區(qū)域單元格如果等于“男”,即返回邏輯真值TRUE,否則返回邏輯假值FALSE。
我們選中公式部分:
(C2:C9>30)
按下F9鍵,查看數(shù)組返回元素:
{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE}
即該區(qū)域單元格數(shù)值大于30的話,即返回邏輯真值TRUE,否則返回邏輯假值FALSE。
(B2:B9="男")+(C2:C9>30)兩個(gè)邏輯判斷進(jìn)行相加:
{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE}+{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE}
={1;0;1;0;1;0;0;1}+{1;0;1;0;1;0;1;0}
={2;0;2;0;2;0;1;1}
我們發(fā)現(xiàn)新的數(shù)組結(jié)果:
={2;0;2;0;2;0;1;1}
如果兩個(gè)條件都符合的話會(huì)返回?cái)?shù)字2,即兩個(gè)TRUE相加等于2;如果兩個(gè)條件都不符合的話會(huì)返回?cái)?shù)字0,即兩個(gè)FALSE相加等于0;如果兩個(gè)條件有其一符合的話會(huì)返回?cái)?shù)字1,即一個(gè)TRUE加一個(gè)FALSE等于1。
即只要數(shù)組元素結(jié)果大于0的就符合“或”的要求。但是數(shù)組元素2不屬于邏輯值范疇,所以我們可以將其轉(zhuǎn)換為1即可。
這里我們使用的是SIGN函數(shù):
=SIGN((B2:B9="男")+(C2:C9>30))
SIGN函數(shù)用于返回?cái)?shù)字的符號(hào)。當(dāng)數(shù)字大于0時(shí)返回1,等于0時(shí)返回0,小于0時(shí)返回-1。
所以SIGN函數(shù)的運(yùn)算過程會(huì)如下演化:
=SIGN({2;0;2;0;2;0;1;1})
={1;0;1;0;1;0;1;1}
所以只要符合“或”條件的,數(shù)組元素全部轉(zhuǎn)換成了固定的邏輯值數(shù)字“1”。
最后用SUMPRODUCT函數(shù)的常規(guī)思路就可以了:
=SUMPRODUCT(SIGN((B2:B9="男")+(C2:C9>30)),D2:D9)
將第2參數(shù)D2:D9展開,實(shí)質(zhì)就是用數(shù)組引用了D列的銷量數(shù)據(jù):
{204;208;230;236;204;288;132;201}
=SUMPRODUCT({1;0;1;0;1;0;1;1},{204;208;230;236;204;288;132;201})
=1*204+0*208+1*230+0*236+1*204+0*288+1*132+1*201
聯(lián)系客服