excel函數(shù)獲取與滿足多個(gè)查找條件的所有值?如下圖1所示,單元格區(qū)域A1:E25中存放著數(shù)據(jù),列D中是要查找的值需滿足的條件,列I和列J中顯示查找到的結(jié)果,示例中顯示的是1月份南區(qū)超市銷售的蔬菜及其數(shù)量。
圖1
要求在I2中輸入公式,向右向下拖拉以獲取全部滿足條件的數(shù)據(jù)。
先不看答案,自已動(dòng)手試一試。
公式
在單元格I2中輸入數(shù)組公式:
=IF(COUNTIFS($A:$A,$G$6,$B:$B,$G$9,$C:$C,$G$3)<ROWS($I$2:I2),””,INDEX(D:D,SMALL(IF(($A$2:$A$25=$G$6)+($B$2:$B$25=$G$9)+($C$2:$C$25=$G$3)=3,ROW($C$2:$C$25)),ROW(C1))))
向右向下拖拉至出現(xiàn)空單元格。
公式解析
公式中的:
COUNTIFS($A:$A,$G$6,$B:$B,$G$9,$C:$C,$G$3)<ROWS($I$2:I2)
用來計(jì)算符合條件的結(jié)果數(shù)(本例中為5),并與已放置值的單元格數(shù)(已返回的值)相比較,以確定在單元格中輸入相應(yīng)的值還是輸入空。
公式中的:
($A$2:$A$25=$G$6)+($B$2:$B$25=$G$9)+($C$2:$C$25=$G$3)=3
轉(zhuǎn)換為:
{TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE}+($B$2:$B$25=$G$9)+($C$2:$C$25=$G$3)=3
轉(zhuǎn)換為:
{TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE}+{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}+($C$2:$C$25=$G$3)=3
轉(zhuǎn)換為:
{TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE}+{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}+{FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE}=3
轉(zhuǎn)換為:
{1;1;2;2;1;2;0;0;1;1;0;1;2;2;3;3;2;3;1;1;3;3;1;2}=3
數(shù)組中有5個(gè)3,表明有5條數(shù)據(jù)滿足條件。得到:
{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE}
代入IF語句中:
IF(($A$2:$A$25=$G$6)+($B$2:$B$25=$G$9)+($C$2:$C$25=$G$3)=3,ROW($C$2:$C$25))
轉(zhuǎn)換為:
IF({FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE},ROW($C$2:$C$25))
得到:
{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;16;17;FALSE;19;FALSE;FALSE;22;23;FALSE;FALSE}
代入SMALL語句中:
SMALL(IF(($A$2:$A$25=$G$6)+($B$2:$B$25=$G$9)+($C$2:$C$25=$G$3)=3,ROW($C$2:$C$25)),ROW(C1))
轉(zhuǎn)換為:
SMALL({FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;16;17;FALSE;19;FALSE;FALSE;22;23;FALSE;FALSE},1)
得到:
16
注意,當(dāng)公式向下拖拉時(shí),ROW(C1)將更新為ROW(C2)、ROW(C3)……,得到值2、3……等,從而可以獲取相應(yīng)位置的值。
代入INDEX語句中:
INDEX(D:D,SMALL(IF(($A$2:$A$25=$G$6)+($B$2:$B$25=$G$9)+($C$2:$C$25=$G$3)=3,ROW($C$2:$C$25)),ROW(C1)))
轉(zhuǎn)換為:
INDEX(D:D,16)
得到單元格D16中的值:
土豆
由于COUNTIFS($A:$A,$G$6,$B:$B,$G$9,$C:$C,$G$3)<ROWS($I$2:I2)轉(zhuǎn)換為:
5<1
結(jié)果為:
False
因此,該單元格中的公式返回的結(jié)果為:土豆
其余單元格公式轉(zhuǎn)換原理可依此類推。