excelperfect
有時(shí)候,我們想要知道某列中有多少個(gè)值同時(shí)又出現(xiàn)在另一列中,例如下圖1所示,列B中有一系列值,列D中有一系列值,哪些值既出現(xiàn)有列B中又出現(xiàn)在列D中。因?yàn)閿?shù)據(jù)較少,不難看出,在列B中僅有2個(gè)值出現(xiàn)在列D中,即“完美Excel”和“Office”。
圖1
可以使用數(shù)組公式:
=COUNT(MATCH(IF(MATCH(B3:B13,B3:B13,0)=ROW(B3:B13)-ROW(B3)+1,B3:B13,''),D3:D16,0))
得到結(jié)果:
2
公式中:
MATCH(B3:B13,B3:B13,0)
查找單元格區(qū)域B3:B13中每個(gè)單元格的值在該區(qū)域首次出現(xiàn)的位置,得到數(shù)組:
{1;2;3;1;5;6;2;3;5;1;2}
公式中:
ROW(B3:B13)-ROW(B3)+1
得到單元格區(qū)域B3:B13中每個(gè)單元格的值在該區(qū)域的相對(duì)位置,生成數(shù)組:
{1;2;3;4;5;6;7;8;9;10;11}
將上述生成的兩個(gè)數(shù)組相比較,得到數(shù)組:
{TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE}
其中TRUE表明該單元格中的值首次在該區(qū)域出現(xiàn),F(xiàn)ALSE表明該單元格中的值已經(jīng)在前面出現(xiàn)過。
代入IF函數(shù)中,公式:
IF(MATCH(B3:B13,B3:B13,0)=ROW(B3:B13)-ROW(B3)+1,B3:B13,'')
轉(zhuǎn)換為:
IF({TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE},B3:B13,'')
得到數(shù)組:
{'完美Excel';'Office';'Excel';'';'excelperfect';'Word';'';'';'';'';''}
即由該區(qū)域中不重復(fù)值和空組成的數(shù)組。
該數(shù)組傳遞給MATCH函數(shù),公式:
MATCH(IF(MATCH(B3:B13,B3:B13,0)=ROW(B3:B13)-ROW(B3)+1,B3:B13,''),D3:D16,0)
轉(zhuǎn)換為:
MATCH({'完美Excel';'Office';'Excel';'';'excelperfect';'Word';'';'';'';'';''},D3:D16,0)
查找上述不重復(fù)值組成的數(shù)組在單元格區(qū)域D3:D16中出現(xiàn)的位置,得到數(shù)組:
{1;5;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A}
其中#N/A表明沒有找到該值。
傳遞給COUNT函數(shù)統(tǒng)計(jì)數(shù)組中數(shù)字的個(gè)數(shù):
COUNT({1;5;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A})
得到結(jié)果:
2
即列B中有兩個(gè)值在列D中出現(xiàn),如下圖2所示。
圖2
聯(lián)系客服