概述
在Excel中根据条件查找匹配多个值(vlookup只能匹配第一个值)
之前在深圳的时候就被问过这个问题,今天又遇到同事在问,索性记录在此。
如下图,根据E列的值,在A列中查找对应的数据,输出匹配行上B列的值,依次填入到FGH...列
公式拆解
首先,它是一个数组公式
COLUMN(A$1)
从F列往右,返回值为1,2,3,4,5,6……序列数,表示匹配到的第几个值
ROW($1:$2000)
返回1:2000 各行的行号
IF($A$1:$A$2000=$E1,ROW($1:$2000),4^8)
A列数据和E列当前行数据进行匹配,相等,则返回行号,不相等,返回一个常数4^8,即65536,在Excel2003中,它是表格的最后一行
SMALL(IF(xxx),COLUMN())
返回第COLUMN()个最小值,即依次返回A列上匹配到的值对应的行号
INDEX($B:$B,SMALL())
在B列返回SMALL指定行号的值
INDEX()&""
将结果转换为文本
{}
括弧表示这是一个数组公式
之前在深圳的时候就被问过这个问题,今天又遇到同事在问,索性记录在此。
如下图,根据E列的值,在A列中查找对应的数据,输出匹配行上B列的值,依次填入到FGH...列
公式拆解
首先,它是一个数组公式
COLUMN(A$1)
从F列往右,返回值为1,2,3,4,5,6……序列数,表示匹配到的第几个值
ROW($1:$2000)
返回1:2000 各行的行号
IF($A$1:$A$2000=$E1,ROW($1:$2000),4^8)
A列数据和E列当前行数据进行匹配,相等,则返回行号,不相等,返回一个常数4^8,即65536,在Excel2003中,它是表格的最后一行
SMALL(IF(xxx),COLUMN())
返回第COLUMN()个最小值,即依次返回A列上匹配到的值对应的行号
INDEX($B:$B,SMALL())
在B列返回SMALL指定行号的值
INDEX()&""
将结果转换为文本
{}
括弧表示这是一个数组公式
转载于:https://blog.51cto.com/foolishfish/1372768
最后
以上就是哭泣玉米为你收集整理的在Excel中根据条件查找匹配多个值的全部内容,希望文章能够帮你解决在Excel中根据条件查找匹配多个值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复