求助excel!如何查找特定数据域中,最接近某个数据的值

求助excel!如何查找特定数据域中,最接近某个数据的值

数据源 需查找的列 结果列

A列 B列 C列 D列 F列

1 aa bb cc

2 23:20:55 18:10:18 22:38:37 21:31:55

3 22:45:49 17:00:50 22:30:52 21:23:15

4 21:41:16 16:12:50 22:27:14 21:21:38

5 20:50:02 16:06:46 22:24:14 21:02:08

6 19:55:27 14:41:24 22:20:58 20:59:07

7 19:36:14 14:27:39 22:03:06 20:04:44

8 18:44:02 14:16:06 21:31:55 19:38:56

9 18:39:07 14:11:05 21:23:15 17:23:55

比如数据表是这样的,A、B、C是我本来有的数据源,格式都是时间的,有一组数据D列,需要从ABC列中找出与D列中每一个单元格中的数据最接近的数据,然后在F列中返回列名,如果最接近的数据大于20分钟,则返回无结果.

如D2,则F2的结果是cc,如D7,则F7的值为无结果

问答/496℃/2025-01-10 20:48:24

优质解答:

F2中输入

=IF(MIN(ABS(A2:C2-D2))>--"0:20","无结果",INDEX($1:$1,MATCH(MIN(ABS(A2:C2-D2)),ABS(A2:C2-D2),)))

同时按下CTRL+SHIFT+回车,输入数组公式,用自动填充柄下拉.

可以参照附件.

不过D2的21:31:55,与前面那些不是都相差20分钟以上么,怎么会返回CC的呢?

再问: 谢谢大侠,我尝试了下,但是有个问题,D列中的数值我需要跟ABC列中的每一个单元格的数据相比,而不是只比较那一列,有木有办法啊,有些列我可能有空格,比如说C列中的最后一个数据,可能是空,有没有可能把空值有去掉呢?

再答: =IF(AND(ABS(I2-A$2:F$30)-"0:20">0),"无结果",OFFSET(A$1,,MAX((MIN(ABS(I2-A$2:F$30))=ABS(I2-A$2:F$30))*COLUMN(A:F))-1))根据实际最大行数自己调整公式中单元格的引用。采用这个公式,将空单元格默认为0:00,如果I列不存在23:40——0:20之间的时间,用这个公式就OK;如果存在,公式就要进一步修改为:=IF(AND(ABS(I2-IF(A$2:F$30="",I2+"0:30",A$2:F$30))-"0:20">0),"无结果",OFFSET(A$1,,MAX((MIN(ABS(I2-IF(A$2:F$30="",I2+"0:30",A$2:F$30)))=ABS(I2-IF(A$2:F$30="",I2+"0:30",A$2:F$30)))*COLUMN(A:F))-1))也就是将前面的公式中的A$2:F$30替换为:IF(A$2:F$30="",I2+"0:30",A$2:F$30),以规避空单元格出现的问题。【另外】纠正你的一个错误:EXCEL中,一列指的是竖向,一行指的是横向,这和我们日常生活习惯是一致的。

我来回答

猜你喜欢

Copyright © 作文乐园 Inc.
Www.821218.Com All Rights Reserved
网站、品牌合作请联系