使用excel公式查找重复值对应的另一列值?

原始数据如图1,在B列中查找小于等于C1的值,然后在A列中找出这些值对应的值,并显示在D列中,比如在B列中第一个查找到的是20,期在A列中对应的值是“”丁“”,第二个查找的仍然是20,其在A列中对应的是“辛”,第三个查到的是18,在A列中对应的是“子”,依次类推,结果如图2所示。

应该是这个意思吧,数组公式,在函数输入栏输入后按ctrl+shift+enter,再下拉就可以了

=IFERROR(INDEX($A$1:$A$15,100-RIGHT(LARGE(IF($B$1:$B$15<=20,$B$1:$B$15*1000-ROW($B$1:$B$15),""),ROW(A1)),2)),"")

说明:

    if语句,判断B列是否小于等于20,如果是,记下这个值乘以1000再减去行号的数(这个构造出来的数字相等于记下了原数字和行号两个数,只要通过简单的计算就可以恢复这两个数,同时把相同数字按顺序区分出了大小,因为先出现的算比后出现的数字大,所以这里是用的减号,后面计算的100减去后两位就可以恢复出这个数的行号了,这个问题关键就是在这个数字的构造这里,后面都好解决了)

    large语句,找出数组中第几大的数,第几大的参数由行号提供,也就是这个公式里唯一的相对地址A1

    100-right语句,恢复找出来的数的行号

    index语句,找出A列中这行的文字

    onerror语句,如果找不出来就显示空,也就是最下面找完了再拖就不会有结果

追问

很感谢你解决了一个问题。我还想问一下,当上面的比较数20如果是万以上的数字的话,并且查找的数字范围是500多行,请问上面公式中那个1000该换成什么数字比较好以及100-right中的100要换成什么数字?麻烦你空闲的时候回复下好吗?

追答

跟20没有关系,只跟行数有关系
只要100那个位置的数超过行数就行了,如果是500多行的话,1000换成10000,100换成1000,都乘10就够了,right那个2位换成对应1000的3位就行了。

追问

A、B两列数据,单元格C8有一固定值,如图1.现在需要在B列中查找小于等于C8的6个值,这些值必须是从大到小从下向上排列,然后在A列中找出其对应的值,从C7单元格开始向上填充。在实际情况中,A、B列的数据比较多(可能500个左右,甚至更多),且B列数据比较大,类似如图3的B列G列数据。谢谢了。

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

d1IF(B$1:B$15<=C$1,B$1:B$15*1000-ROW($1:$15))数组公式,同时按ctrl+shift+回车结束下拉

第2个回答  2022-03-21
咱们学的可能不是一个知识系统,我学的是10比20小,所以B列第一个小于等于C1是10,所以没法解你这个题了。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网