如何使用if语句返回false来转发数组值?

时间:2019-01-30 15:31:10

标签: arrays excel indexing match

我试图只将午餐时间拉长一个小时,并显示该时间的全部价值。

我尝试使用if语句包装整个代码,如果false则加1。我一直在搜索表单,试图查看我做错了什么,但找不到任何东西。我有一个有效的公式,该公式可以提取所有休息时间并显示时间和日期,但是当我尝试使用它来查找特定的时间时将无法正常工作。

Two cells that are working:
Date it happened: {=IFERROR(INDEX(Time,SMALL(IF(Reason=$K7,ROW(Duration)-MIN(ROW(Duration))+1),COLUMNS($K$7:K7))),"")}
Value of Duration: {=IFERROR(Duration(Time,SMALL(IF(Reason=$K7,ROW(Duration)-MIN(ROW(Duration))+1),COLUMNS($K$7:K7))),"")}

The formula I am trying:
{=IF(INDEX(Duration,SMALL(IF(Reason=$K7,ROW(Duration)-MIN(ROW(Duration))+1),COLUMNS($K$7:K7)))>=TIME(1,0,0),IFERROR(INDEX(Duration,SMALL(IF(Reason=$K7,ROW(Duration)-MIN(ROW(Duration))+1),COLUMNS($K$7:K7))),""),IFERROR(INDEX(Duration,SMALL(IF(Reason=$K7,ROW(Duration)-MIN(ROW(Duration))+1),COLUMNS($K$7:L7))),""))}

该公式不会忽略一个小时以下的时间,但是会将相同的数据提取两次。例如,第一个持续时间公式显示如下:

1:11:46 0:59:28 1:11:51 1:10:59

第二个显示:

1:11:46 1:11:51 1:11:51 1:10:59

我的最终目标是让它查找名称,然后让您休息/午餐,但现在我只想查找午餐时间。我希望它输出为1:11:46 1:11:51 1:10:59。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

=IFERROR(INDEX(Duration,SMALL(IF((Reason=$K7)*(Duration>=TIME(1,0,0)),ROW(Duration)-MIN(ROW(Duration))+1),COLUMNS($K$7:K7))),"") 

^固定了它