如图所示,已有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列是其对应的引用
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,))
下拉即可
H列简单,只要G列的数据能出来,H列的就能出来,目前关键是G列弄不出来
就如图所示,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的方法处理,但不建议您使用牛刀去处理这个简单的问题。
祝您成功!