Excel如何比较两列数据并在新列中显示

如图所示,已有A列,B列两列数据,现在需要对A列和B列进行对比;其中,A与B相同的,需要对照位置给出行号,并引用“A引用”对应的数据;A与B不相同的,需要放到新的一列。目前已经实现:
E列使用公式:=MATCH(C2,A:A,0)
F列使用公式:=IFNA(INDEX(B:B,E2),"")

问题点:G列的公式如何写能实现效果?其中G列不能有空行。
小白求助,希望高手不吝赐教,谢谢!
就如图所示,E列放的,是匹配到的行号;F列放的是后面对应的引用;G列放的,是A列中不存在于B的数据,H列是其对应的引用

第1个回答  2014-09-04

G2输入数组公式

=IF(ISERROR(INDEX(A$2:A$9,SMALL(IF(COUNTIF(C$2:C$11,A$2:A$9)=0,ROW(A$2:A$9)-1,8^8),ROW(A1)))),"",INDEX(A$2:A$9,SMALL(IF(COUNTIF(C$2:C$11,A$2:A$9)=0,ROW(A$2:A$9)-1,8^8),ROW(A1))))

以同按CTRL+SHIFT+回车 这三个键作为结束

再下拉


H2输入公式

=IF(G2="","",VLOOKUP(G2,A:B,2,))

下拉即可

第2个回答  2014-09-04
在H行中输入公式“=vlookup(G2,A1:B10,2,0)”即可。
A1:B10可以随着数据的范围扩大 ,比如A B两行的数据填到A11 B11了 就吧A1:B10 改成A1:B11 即可 以此类推追问

H列简单,只要G列的数据能出来,H列的就能出来,目前关键是G列弄不出来

第3个回答  推荐于2017-09-04
G2公式:
=IFERROR(INDEX(A$2:A$9,SMALL(IF(COUNTIF(C$2:C$11,A$2:A$9),9^9,ROW($1:$8)),ROW(A1))),"")
数组公式,按CTRL+SHIFT+回车,下拉;

H2公式:
=IFERROR(VLOOKUP(G2,A:B,2,0),"")
下拉。本回答被提问者采纳
第4个回答  2014-09-04
搞不定的话 我能解决
第5个回答  2014-09-04
这个问题很简单,但请您表述清楚您想在每列放置怎样的值?追问

就如图所示,E列放的,是匹配到的行号;F列放的是后面对应的引用;G列放的,是A列中不存在于B的数据,H列是其对应的引用

追答

G列,插入一个辅助列(如J列),用以判断A列各个值是否在C列(表头B列)中有值:
1、使用函数vlookup。如J2输入【=vlookup(A2,$C$2:$C$11,1,false)】,如果公式的结果返回错误值(#Value),即意味着A列对应行的值不存在于C列(表头B列)。
2、在G列使用第1步的结果,如G2列输入【=iferror(J2,A2)】,即可找出您所找的数据。
3、向下拖选即可得到整列结果,这个我相信您会的。
以上方法是最快捷简单的方法,单它会将您的需要的数据断续地放在非连续的位置。
可以通过简单的处理,就可以把它们放在一起。【选中→定位非空白区域→复制→粘贴】或【选中→定位空白区域→删除】
还可以使用VBA的方法处理,但不建议您使用牛刀去处理这个简单的问题。
祝您成功!

相似回答