excel表格怎么指定數(shù)據(jù)剔除?書接上回,開啟進(jìn)階!
還是用昨天同一組示例數(shù)據(jù),稍微變一下表現(xiàn)形式:
只不過,今天不用輔助列了,直接用一個公式,剔除指定姓名,寫出保留姓名與成績。
公式實(shí)現(xiàn)
在F2單元格輸入公式:
=IFERROR(INDEX(A$2:A$10,SMALL(IF(COUNTIF($D$2:$D$6,$A$2:$A$10),””,ROW($1:$9)),ROW(A1))),””),Ctrl+Shift+Enter結(jié)束公式輸入。
公式向下、向右填充,會得到剔除指定姓名以后,保留的姓名及對應(yīng)成績。
如圖:
公式解析
COUNTIF($D$2:$D$6,$A$2:$A$10)
從D2:D5指定的要剔除的姓名區(qū)域,依次查找A1:A9所有姓名,查得到的返回1,查不到的返回0。所以此部分公式返回由1與0組成的數(shù)組:
{0;1;1;0;1;1;0;1;0 }
ROW($1:$9)
返回由1—9組成的數(shù)組:
{1;2;3;4;5;6;7;8;9}
IF(COUNTIF($D$2:$D$6,$A$2:$A$10),””,ROW($1:$9))
此部分公式原理用下圖解釋:
所以,本部分IF函數(shù)的返回值是數(shù)組:
{1;””;””;4;””;””;7;””;9}
SMALL(IF(COUNTIF($D$2:$D$6,$A$2:$A$10),””,ROW($1:$9)),ROW(A1))
ROW(A1)的返回值是1,所以,此部分是返回?cái)?shù)組{1;””;””;4;””;””;7;””;9}的最小值,即1;公式每往下填充一行,ROW(A1)變?yōu)镽OW(A2),ROW(A3),ROW(A4)……,此部分SMALL公式就會返回?cái)?shù)組{1;””;””;4;””;””;7;””;9}的第2、3、4……小的數(shù)值,即4,7,9……;
INDEX(A$2:A$10,SMALL(IF(COUNTIF($D$2:$D$6,$A$2:$A$10),””,ROW($1:$9)),ROW(A1)))
公式在F2中,即是返回A2:A10區(qū)域中第1位的數(shù)據(jù)A1;公式往下填充,即返回A2:A10區(qū)域中第4、7、9位的數(shù)據(jù)A4、A7、A9,即得到了剔除指定姓名以后保留的姓名;
IFERROR(INDEX(A$2:A$10,SMALL(IF(COUNTIF($D$2:$D$6,$A$2:$A$10),””,ROW($1:$9)),ROW(A1))),””)
用IFERROR,如果查找到結(jié)果就返回值,如果查不到,出現(xiàn)錯誤,則返回空值。
保留成績的計(jì)算:
因?yàn)楣街械腁$2:A$10,使用的混合引用,A列沒有鎖定,所以,向右填充,會自從變?yōu)锽$2:B$10,也就是保留的B列的成績。