從兩列中提取相同或不相同數據的數組公式
來源: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數組公式應用徹底醒悟
※數組,鏈表,二叉樹,這些是為了解決什麼問題而出現的呢?