怎么按照多个条件把最接近要求的时间用函数写出来?

如图:怎么查找对应人员,对应项目,对应日期内,把最接近的时间查找出来?例如:想查找张三项目A里面,5月5日最接近9点20分的时间

多个条件的情况,可以使用组合公式来解决。

假如单元格如下:

则在J2单元格输入:

=INDEX(D2:D20, MATCH(MIN(IF((A2:A20=F2)*(B2:B20=G2), ABS(D2:D20-I2), 1E+100)), IF((A2:A20=F2)*(B2:B20=G2), ABS(D2:D20-I2), 1E+100), 0))

最后将单元格式改为“时间”

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-05-09
可以使用Excel中的INDEX和MATCH函数来实现。首先,需要在表格中创建一个筛选条件的区域,包括人员、项目和日期。具体步骤如下:

1. 在表格的顶部或底部创建一个筛选条件区域,包括人员、项目和日期。例如,可以创建一个名为“筛选条件”的区域,包括列A为“人员”,列B为“项目”,列C为“日期”。

2. 在筛选条件区域中输入要查询的条件,例如“张三”、“项目A”和“5月5日”。

3. 在表格中创建一个名为“时间匹配”的区域,在该区域中使用MATCH函数来查找符合条件的行数。例如,可以在单元格D2中输入以下公式:

=MATCH(1,INDEX((A:A=$A$2)*(B:B=$B$2)*(C:C=$C$2),0),0)

其中,$A$2、$B$2和$C$2是筛选条件区域中人员、项目和日期的对应单元格,A:A、B:B和C:C表示表格中对应列的所有单元格。

4. 在表格中创建一个名为“时间结果”的区域,在该区域中使用INDEX函数来查找符合条件的时间。例如,可以在单元格E2中输入以下公式:

=INDEX(D:D,D2,1)

其中,D:D表示“时间匹配”区域所有单元格,D2是对应的匹配行数,1表示要查找的列数(可以根据需要修改为正确的列数)。

5. 在表格中创建一个名为“时间差”的区域,在该区域中使用ABS函数来计算匹配时间与目标时间的差值。例如,可以在单元格F2中输入以下公式:

=ABS(E2-$F$1)

其中,E2是上一步中查找到的时间,$F$1是目标时间(例如9点20分)对应的单元格。

6. 在表格中创建一个名为“最接近时间”的单元格,在该单元格中使用MIN函数来查找“时间差”区域中的最小值。例如,可以在单元格G2中输入以下公式:

=MIN(F:F)

其中,F:F表示“时间差”区域所有单元格。

7. 在表格中创建一个名为“最终时间”的单元格,在该单元格中使用INDEX和MATCH函数来查找最接近目标时间的实际时间。例如,可以在单元格H2中输入以下公式:

=INDEX(E:E,MATCH(G2,F:F,0))

其中,E:E表示“时间结果”区域所有单元格,G2是上一步中查找到的最小值,F:F是“时间差”区域所有单元格。MATCH函数将最小值与“时间差”区域中的单元格进行匹配,INDEX函数将查找到的单元格对应的时间返回。

完成以上步骤后,即可通过修改筛选条件和目标时间来查找符合条件的最接近的时间。
第2个回答  2023-05-09

=IFERROR(INDEX($D$3:$D$21,MATCH(1,($A$3:$A$21=F3)*($B$3:$B$21=$G$1)*($C$3:$C$21=$H$2)*($D$3:$D$21>=$I$2),0)),"")

CTRL+SHIFT+回车,然后下拉填充

追问

为什么赵六这个地方不出来的呀

追答

赵六没有符合条件的时间