寻找一个公式,该公式将从一行日期中返回下一个日期(高于开始日期),然后从该日期中返回下一个日期

寻找一个公式,该公式将从一行日期中返回下一个日期(高于开始日期),然后从该日期中返回下一个日期

工作表 1 列出了我们飞机飞行的所有“航程”。然后,每天的航程将转到工作表 2(第 1 天)、工作表 3(第 2 天)等等。航程按列列出,从航程 1 开始,然后是航程 2,依此类推。每条航程的顶部单元格中都有一个日期。我正在创建一个工作簿,它将获取每天的航程,并将该航班的信息转置到另一个工作表(第 1 天、第 2 天……)。我遇到的问题是,一天的航班可能是 1 条航程,也可能是 5-6 条航程。有 24 列,涵盖大约 2 周的时间。每个“天”工作表只有 8 列,因为我们一天飞行的航程不会超过 8 条。第 1 天的工作表很简单,但在第 2 天我遇到了问题。我目前正在使用 IF 和 AND 函数的组合来编写公式,以确定下一个应该输入的日期。但我就是无法让它按我想要的方式工作。我将尝试在下面输入一个示例,希望能澄清这个混乱的问题。

主行程工作表

航程 1___航程 2___航程 3___航程 4___航程 5___航程 6
8/5______8/6______8/6_____8/7______8/7_____8/8
CAK_____PLN_____APA____ASE_____ADS_____DAL
PLN_____APA_____ASE____ADS_____DAL_____SUN

第一天工作表

第 1 段
8/5
CAK
波兰兹罗提

第 2 天工作表

行程 2___行程 3
8/6______8/6
PLN______APA
APA______ASE

第三天工作表

腿 4___腿 5

8/7______8/7
ASE______ADS
ADS______DAL

第 4 天工作表

第6 段
8/8
达尔桑

因此,第 1 天、第 2 天……工作表只需获取下一个新日期(同样,每个单独的工作表上可能包含 1 到 8 条航段)。我已经想出了如何移动所有航段信息,我只需要能够将日期分离到正确的工作表上。

如果这还不够清楚,请告诉我。谢谢!!

答案1

也许这会有所帮助:在 [Day 1] 工作表上,单元格 A2 输入这个简单的公式来从 [Sheet1] =Sheet1!A2 中获取第一个日期 将此公式放入 [Day 1] 工作表的 B2 中并向右填充到您想要的位置 - H 列?

=IF(COUNTIF(Sheet1!2:2,$A2)>COLUMN()-1,$A2,"")

这将复制“Day 1”!A2 中的日期,次数与 [Sheet1] 中出现的次数相同,该日期应与 Legs 相对应。该公式的 Column()-1 部分基于第一个公式位于 B 列,对于 B 列,它将返回 1,对于 c 列,它将返回 2,其余列依此类推。这就是告诉它是否在工作表的 A2 中回显日期。

这样应该就可以处理 [Day 1] 工作表的日期。现在来处理 [Day 2]。单元格 A2 的公式有点复杂,但它的作用是测试前一天工作表 +1、+2、+3 或 +4 上的日期是否在 [Sheet1] 上。第一个匹配的日期将放入单元格 A2。现在,如果它显示的是文本“前一天日期 +1 到 +4 没有匹配”而不是日期,则意味着以下两种情况之一:要么您在两段旅程之间休息的时间超过 4 天,要么 [Sheet1] 上的最后一个日期是在前一个 [Day #] 工作表上找到的。希望这说得通。以下是 [Day 2],单元格 A2 的公式:

=IF(ISNA(MATCH(MAX('第 1 天'!A2:H2)+1,Sheet1!2:2,0)),IF(ISNA(MATCH(MAX('第 1 天'!A2:H2)+2,Sheet1!2:2,0)),IF(ISNA(MATCH(MAX('第 1 天'!A2:H2)+3,Sheet1!2:2,0)),IF(ISNA(MATCH(MAX('第 1 天'!A2:H2)+4,Sheet1!2:2,0)),"前一个日期 +1 至 +4 无匹配",MAX('第 1 天'!A2:H2)+4),MAX('第 1 天'!A2:H2)+3),MAX('第 1 天'!A2:H2)+2),MAX('第 1 天'!A2:H2)+1)

[Day 2] 工作表 B2:H2 单元格的公式与我们在 [Day 1] 工作表上使用的单元格完全相同。

对于每个后续的 [Day #] 工作表,您都可以采用上面的长公式并将其插入到该工作表的单元格 A2 中,然后使用编辑-->替换将其中的“Day 1”引用更改为前一天的工作表名称。

想要休息 4 天以上?最好使用文本编辑器和 Excel 来完成此练习。请看以下公式片段:

IF(ISNA(MATCH(MAX('Day 1'!A2:H2)+4,Sheet1!2:2,0)),"前一个日期 +1 至 +4 无匹配",MAX('Day 1'!A2:H2)+4)

并对其进行以下更改:首先将“第 1 天”引用更改为前一天 # 表的正确引用。其次将 +4 次出现更改为 +5:总共有 3 次。现在,取出修订部分,选择工作表上实际公式的“前一天 +1 到 +4 无匹配”,然后将修订粘贴到那里!

您可以重复此过程,以便获得真正长时间的休息,但代价是公式非常长且丑陋。

我已经上传了一个包含 10 张 [Day #] 表的示例文件,您可以从这里下载:http://www.mediafire.com/view/k6qx3hahv8zl0o8/AircraftLegsLog001.xlsx

相关内容