远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数问题求助 SOS 两个条件都需要放在数字区间里面进行查询 并返回值 这样的多条件查询应该怎么办 小编想说 这个案例实在是太太太经典了 如下图所示 A1 D4 是数据源区域 也是我们的查询区域 列标题包含 3 个数字区间 行标题包含 3 个数字区间

欢迎大家来到IT世界,在知识的湖畔探索吧!

问题求助SOS:两个条件都需要放在数字区间里面进行查询,并返回值,这样的多条件查询应该怎么办?

小编想说,这个案例实在是经典了

如下图所示

A1:D4是数据源区域,也是我们的查询区域。列标题包含3个数字区间,行标题包含3个数字区间。

我们想要通过F2单元格的条件1(与列标题数字区间对应)与G2单元格的条件2(与行标题数字区间对应),这两个条件找到A1:D4数据源二维值区域的对应值。比如“7”位于数据源的第C列(5-10区间),“1.5”位于数据源的第3行(1-2区间),那么C列与第3行的交叉位置对应值为“E”。

两个条件均不含负值。

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数



欢迎大家来到IT世界,在知识的湖畔探索吧!

遇到这样的问题,你是不是还在傻傻的嵌套IF函数,不得搞个10层8层的,还自我感觉自己函数运用能力超级强,其实这种做法大错特错了。运用这种方法,不仅不能体现自己的技术高,还会被其他同事嘲笑不会“偷懒”找巧法。

要远离IF多层嵌套,遇到数字区间里的多条件查询,一定要用frequency函数。

FREQUENCY函数用于计算数值在指定区间内的出现频数,然后返回一个垂直数组。

常规语法:

FREQUENCY(一组数值,指定的间隔值)

FREQUENCY函数将第一参数中的数值以第二参数指定的间隔进行分组,计算数值在各个区间内出现的频数。最终返回的数组中的元素会比间隔值的元素多一个,多出来的这个表示最高区间之上的数值个数。

下面我们用一下就知道其中的奥秘了

第一步:确定条件1位置

运用本例中强力推荐的FREQUENCY函数:

=FREQUENCY(F2,{-1,5,10,15})

{-1,5,10,15} 以4个间隔分成5组区间:

x≤-1

-1<x≤5

5<x≤10

10<x≤15

15<x

这里之所以以最小的起点以-1开始,是为了让0值,包含在第二组-1<x≤5

(0-5)之内。因为两个条件均不含负值,所以不用考虑负数情况。

产生了纵向的频数分布:

{0;0;1;0;0}

条件1:“7”只在5<x≤10(5-10)这个分段内出现了1次,故频数返回1,在其余的分段中均为出现过,故都是频数0。

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

TRANSPOSE函数:

=TRANSPOSE(FREQUENCY(F2,{-1,5,10,15}))

将返回结果转置为横向的,更容易对比A1:D1区域观察理解,此步骤可省略

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

使用MATCH查找函数:

=MATCH(1,TRANSPOSE(FREQUENCY(F2,{-1,5,10,15})),0)

查找固定值“1”,在上一步返回数组中{0;0;1;0;0}的位置为“3”。

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

我们可以理解为:

条件1:“7”,位于查询区域A1:D4区域的第“3”列。

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

第二步:确定条件2位置

原理与步骤1相同。

使用FREQUENCY函数:

=FREQUENCY(G2,{-1,1,2,3})

{-1,1,2,3} 以4个间隔分成5组区间:

x≤-1

-1<x≤1

1<x≤2

2<x≤3

3<x

这里之所以最小的起点以-1开始,是为了让0值,包含在第二组-1<x≤1

(0-1)之内。因为两个条件均不含负值,所以不用考虑负数情况。

产生了纵向的频数分布:

{0;0;1;0;0}

条件2:“1.5”只在1<x≤2(1-2)这个分段内出现了1次,故频数返回1,在其余的分段中均为出现过,故都是频数0。

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

利用MATCH函数查找:

=MATCH(1,FREQUENCY(G2,{-1,1,2,3}),0)

查找固定值“1”,在上一步返回数组中{0;0;1;0;0}的位置为“3”。

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

我们可以理解为:

条件2:“1.5”,位于查询区域A1:D4区域的第“3”行。

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

第三步:交叉查询

我们只需要确定A1:D4区域中的第3行与第3列交叉位置的值“E”就可以了,所以使用INDEX函数交叉查询:

=INDEX(A1:D4,MATCH(1,FREQUENCY(G2,{-1,1,2,3}),0),MATCH(1,TRANSPOSE(FREQUENCY(F2,{-1,5,10,15})),0))

A1:D4:为查询区域。

MATCH(1,FREQUENCY(G2,{-1,1,2,3}),0):为第3行。

MATCH(1,TRANSPOSE(FREQUENCY(F2,{-1,5,10,15})),0):为第3列。

所以:

“E”位于A1:D4区域的第3行与第3列交叉位置。

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

数据源与查找结果可以实现动态的联动:

远离IF,遇到数字区间里的多条件查询,一定要用frequency函数

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/139018.html

(0)
上一篇 58分钟前
下一篇 48分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信