关于excel的比对问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 00:52:20
有两个表,表1有A和B两列数据,表2有C、D、E三列数据,现在要比对A和C一致且B和D一致的数据,并返回E列数据,有什么办法?

1、表1插入一列在A列前,设为F列,公式F1=A1&B1,双击F1单元格右下角“十”字自动下拉公式(前提是F列紧邻列A列不能有空单元格,否则只能手工下拉)
2、选择F列,复制后在原位置点鼠标右键选“选择性粘贴”,选“数值”,然后确定
3、表2插入一列在C列前,设为G列,公式G1=C1&D1,双击G1单元格右下角“十”字自动下拉公式(前提是G列紧邻列C列不能有空单元格,否则只能手工下拉)
4、选择G列,复制后在原位置点鼠标右键选“选择性粘贴”,选“数值”,然后确定
5、假设返回数据在表1,则原B列后一列公式=VLOOKUP(F1,SHEET2!A:D,4,FALSE)
则原B列后一列公式返回表2第4列数据,将数据为空或为#N/A的筛选后删除

假设表2为Sheet2,表1为Sheet1,有1000行数据(根据实际修改),在Sheet1的C1输入公式:
=IF(SUMPRODUCT((Sheet2!C$1:C$1000=A1)*(Sheet2!D$1:D$1000=B1)),INDEX(Sheet2!E$1:E$1000,SUMPRODUCT((Sheet2!C$1:C$1000=A1)*(Sheet2!D$1:D$1000=B1)*ROW($1:$1000))),"")
向下复制公式

数组公式
=INDEX(表2!$E:$E,MAX(IF((A1=表2!$C$1:$C$100)*(B1=表2!$D$1:$D$100),ROW($E$1:$E$100))))

PS数组公式输入后按ctrl+shift+enter完成;如果有多个匹配值,该公式返回行号最大的那个,你可以将max换成min返回行号最小的,或者用large、small获取中间某个位置的值。