excel函数获取与查找值相对应的多个值,如下图1所示,单元格区域A1:B7中存放着数据,要求使用公式查找单元格D2中的分类对应的名称 。例如,单元格D2中是“水果”,则从列B中获取是水果的名称并放置在列E中 。
文章插图
图1
要求在E2中输入公式,向下拖拉以获取全部满足条件的数据 。
先不看答案,自已动手试一试 。
公式
在单元格E2中输入数组公式:
=IF(COUNTIF(A:A,$D$2)<ROWS($E$2:E2),””,INDEX(B:B,SMALL(IF($A$2:$A$7=$D$2,ROW($A$2:$A$7)),ROW(A1))))
向下拖拉至出现空单元格 。
公式解析
公式中的:
COUNTIF(A:A,$D$2)<ROWS($E$2:E2)
用来计算符合条件的结果数,并与已放置值的单元格数(已返回的值)相比较,以确定在单元格中输入的值 。
公式中的:
INDEX(B:B,SMALL(IF($A$2:$A$7=$D$2,ROW($A$2:$A$7)),ROW(A1)))
转换为:
INDEX(B:B,SMALL(IF({“水果”;”水果”;”蔬菜”;”蔬菜”;”水果”;”蔬菜”}=”水果”,ROW($A$2:$A$7)),ROW(A1)))
转换为:
INDEX(B:B,SMALL(IF({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE},ROW($A$2:$A$7)),ROW(A1)))
转换为:
INDEX(B:B,SMALL(IF({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE},{2;3;4;5;6;7}),ROW(A1)))
转换为:
INDEX(B:B,SMALL({2;3;FALSE;FALSE;6;FALSE},ROW(A1)))
转换为:
INDEX(B:B,SMALL({2;3;FALSE;FALSE;6;FALSE},1))
转换为:
INDEX(B:B,2)
得到单元格B2中的值:
苹果
【excel函数获取与查找值相对应的多个值】当向下拖拉时,ROW(A1)将更新为ROW(A2)、ROW(A3)……,得到值2、3……等,从而可以获取相应位置的值 。
推荐阅读
- excel函数求单元格区域中指定词语出现的次数
- excel常用函数判断回文
- excel函数获取与满足多个查找条件的所有值
- excel函数求相邻单元格两两相乘之积的和
- excel常用函数求数值中的各个数字之和
- excel函数获取单元格区域中移除空单元格后的值
- excel函数从数据区域提取值并按降序排列
- excel常用函数查找并比较时间
- excel函数查找第5个反斜杠的位置
- excel常用函数求奇数和