從兩列中提取相同或不相同數據的數組公式

從兩列中提取相同或不相同數據的數組公式

來源:excel格子社區

有時在Excel中需要對兩列進行比較,並提取兩列中相同或不相同的數據,例如A列和B列分別包含一些人員名單,現在需要找出兩列中都存在的姓名(A有B有)、A列中存在B列中不存在的姓名(A有B無)及A列中不存在B列中存在的姓名(A無B有),並分別放置到D、E、F列中。

假如兩列名單分別在A2:A20和B2:B15區域中,用下面的兩組數組公式即可獲取相應的名單,每個公式輸入完畢後,需按Ctrl+Shift+Enter結束。

1.獲取A列和B列中相同的數據,在D2中輸入數組公式:

=INDEX($B$2:$B$15,MATCH(1,COUNTIF(D$1:D1,$B$2:$B$15)+IF(COUNTIF($A$2:$A$20,$B$2:$B$15),1,0),0))

或:

=INDEX(A:A,SMALL(IF(COUNTIF($B$2:$B$15,$A$2:$A$20),ROW($A$2:$A$20),4^8),ROW(A1)))&""

2.獲取A有B無的數據,在E2中輸入數組公式:

=INDEX($A$2:$A$20, MATCH(0, COUNTIF($B$2:$B$15, $A$2:$A$20)+COUNTIF(E$1:E1, $A$2:$A$20), 0))

或:

=INDEX(A:A,SMALL(IF(COUNTIF($B$2:$B$15,$A$2:$A$20),4^8,ROW($A$2:$A$20)),ROW(A1)))&""

3.獲取A無B有的數據,在F2中輸入數組公式:

=INDEX($B$2:$B$15, MATCH(0, COUNTIF($A$2:$A$20, $B$2:$B$15)+COUNTIF(F$1:F1, $B$2:$B$15), 0))

或:

=INDEX(B:B,SMALL(IF(COUNTIF($A$2:$A$20,$B$2:$B$15),4^8,ROW($B$2:$B$15)),ROW(A1)))&""

上述公式輸入完畢後,分別拖動填充柄向下填充,第一組公式直到出現「#N/A」為止,第二組公式直到出現空值為止。

推薦閱讀:

4分鐘寫完C語言動態數組
數組公式入門——開開啟函數公式的新大門
數組基礎知識精華版
Excel數組公式應用徹底醒悟
數組,鏈表,二叉樹,這些是為了解決什麼問題而出現的呢?

TAG:數據 | 公式 | 數組 |