新知一下
海量新知
5 9 7 5 3 3 2

寻找最接近给定值的那一个数值,如果你还不会就试试它吧。一用即知!

EXCEL应用之家 | 传播EXCEL新技能 2021/11/25 09:52

【置顶公众号】或者【设为星标】及时接收更新不迷路

新知达人, 寻找最接近给定值的那一个数值,如果你还不会就试试它吧。一用即知!

小伙伴们啊,今天和你们讲一讲FREQUENCY函数应用的例子。

某著名远洋货轮公司在母港每天都有进出港的排班计划,下表是他们进出港排班计划的一部分。

新知达人, 寻找最接近给定值的那一个数值,如果你还不会就试试它吧。一用即知!

操作人员每天都要做的工作是输入目标日期,查询早于目标日期的最近日期。

下面我们就来一起看看如何设置公式吧!

01

解决这一类问题,我们当然可以使用INDEX函数配合MIN函数来做,但是书写会比较繁琐一些。而使用FREQUECY函数则更简洁易懂一些。

新知达人, 寻找最接近给定值的那一个数值,如果你还不会就试试它吧。一用即知!

在单元格F2中输入公式“=LOOKUP(0,0/FREQUENCY(0,E2-IF($A$2:$A$13=D2,$B$2:$B$13)),$B$2:$B$13)”,三键回车并向下拖曳即可。

思路:

  • 由于进港日期和出港日期是放在一列中的,因此首先要用IF函数来做一个判断,返回那些符合条件的日期

  • E2-IF($A$2:$A$13=D2,$B$2:$B$13)部分,离目标日期最近,也就是说,和目标日期的差额最小。这部分的结果有可能是整数、负数或者是0

  • 利用FREQUENCY函数来在上面的结果上计频。它的第一个参数是0,FREQUENCY函数会在所有大于0的数据中最小的那一个上计频1,这部分的结果是{0;0;0;1;0;0;0;0;0;0;0;0;0}

  • 0/部分,将数字1转换为0,将0转换为错误值

  • 接下来就很简单了,利用LOOKUP函数返回对应的那个日期

02

今天这个例子向大家介绍了FREQUENCY函数一个非常重要的应用:在一组原数据中查找距离给定值的最近的那个数。

上面这个例子中,如果不限定“早于目标日期”这个条件,那么公式就要改成下面这个写法:

“=LOOKUP(0,0/FREQUENCY(0,ABS(E2-IF($A$2:$A$13=D2,$B$2:$B$13))),$B$2:$B$13)”,在E2-IF($A$2:$A$13=D2,$B$2:$B$13)外层有加了一个ABS函数。小伙伴们,你们知道这是为什么吗?

好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!

-END-

更多“EXCEL”相关内容

更多“EXCEL”相关内容

新知精选

更多新知精选