excel中如何把A列第二次出现的数据在B列返回A列第一次出现时的对应的B列数据,用公式如何表示?

如A1:A10,A1=A3=A5=A7=A9=a,A2=A4=A6=A8=A10=b,B1=10,B2=5,B3:B10为空值,如何在B3到B10中用公式查找并显示B3,B5,B7,B9=B1=10;B4,B6,B8,B10=B2=5。求大神指点,万分感激!

结果如图,公式:=IF(COUNTIF($A$1:A3,A3)>=2,INDEX($A$1:$B$2,MATCH(A3,$A$1:$A$10,0),2),"没有数据")

下拉填充就好!

追问

求大神释义函数表达,谢谢!

追答

=IF(COUNTIF($A$1:A3,A3)>=2,INDEX($A$1:$B$2,MATCH(A3,$A$1:$A$10,0),2),"没有数据")

公式的解释,第一步:

当这个函数COUNTIF($A$1:A3,A3)>=2,成立时候,

(也就是从A1这个位置开始查找A3这个数据出现的次数,如果次数大于或者等于2)

就执行后面的index函数,如果次数小于2就显示“没有数据”。

其中A1是绝对引用,表示下拉公式时候也是从A1位置开始查找,而A3没有绝对引用,是随着公式下拉变化的,例如当下拉填充到A4单元格时候,公式中的A3就变成A4.

第二步,再解释函数,INDEX($A$1:$B$2,MATCH(A3,$A$1:$A$10,0),2)

在第一步的函数成立条件下,返回数据区域($A$1:$B$2)中的指定行号和列号的数据,指定了行号和列号,数据就确定了,

行号的确定:MATCH(A3,$A$1:$A$10,0),公式确定行号,就是A3在区域$A$1:$A$10的位置,

列号的确定:指定列号 2,就是第二列。

有疑问可以继续讨论!

追问

感谢大神,已学习。没想到index能定位单元格,match能定位第一次出现的位置,大神行家呀,以后还要多多请教,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-02

B3输入

=VLOOKUP(A3,A:B,2,)

下拉

追问

简单实用,想到了conutif,vlooup没想通,经您的指点,还真是可以,谢谢!

有一点还想问您,比如说A7,对应的B7数据,查找后是返回的B1数据还是B3或B5的数据?

追答

B1的数据,B列首次对应的数据

本回答被网友采纳