Excel一对多查询巧用INDEX+SMALL+IF组合公式

来源:本站整理 作者:网络笔记

最佳答案以下面的例子为例,一个产品有不同的有效期,我需要查找出来并放在对应的产品下面,这个时候就需要用到index+small+if的结合。公式:=IFERROR(INDEX($R$1:$R$12,SMALL(IF($Q$1:$Q$12=U$1,ROW($Q$1:$Q$12)),ROW(Q1))),&#82......

以下面的例子为例,一个产品有不同的有效期,我需要查找出来并放在对应的产品下面,这个时候就需要用到index+small+if的结合。

公式:

=IFERROR(INDEX($R$1:$R$12,SMALL(IF($Q$1:$Q$12=U$1,ROW($Q$1:$Q$12)),ROW(Q1))),””)

公式解析:

①用Small+IF函数构成数组来确定第几个值:

IF($Q$1:$Q$12=U$1,ROW($Q$1:$Q$12))

==如果Q列的值等于U$1,就返回对应的行,如果不等于,就为FALSE

==即:

{FALES,2,FALSE,FALSE,5,FALSE,FALSE,8,FALSE, FALSE, FALSE, FALSE }

SMALL(IF($Q$1:$Q$12=U$1,ROW($Q$1:$Q$12)),ROW(Q1))

Small(数值范围,第几个最小值)

==在IF函数构成的数组里面,定位到第ROW(Q1)个的最小值,返回的结果即是行序号。比如在{FALES,2,FALSE,FALSE,5,FALSE,FALSE,8,FALSE, FALSE, FALSE, FALSE }里,第一个最小值是2,Small函数返回的是2,第二个最小值是5,Small函数返回的是5……以此类推。

★ROW(Q1)这里的“相对引用”,也就是下拉的时候会变成ROW(Q2)/ROW(Q3)……目的是为了能定位到第1/2/3……个最小值

②用INDEX来定位

INDEX($R$1:$R$12,SMALL(IF($Q$1:$Q$12=U$1,ROW($Q$1:$Q$12)),ROW(Q1)))

INDEX (数据范围,行序号,列序号)

== INDEX(在$R$1:$R$12里,定位到符合条件的行号)

这样子出来的结果就是查找到产品的不同有效期了~如果觉得难以理解的话可以直接复制公式,修改相关参数就好~

下面附上计算的过程更方便大家理解~

其实不用公式直接用数据透视表+vlookup也能轻松实现,大家想到这样子操作的实现步骤吗?

网络笔记 学习文库

我这一生没什么理想,能治愈我的,从来都不是时间,而是内心的那份释怀和明白!

热门分类

热门工具

联系客服QQ:+