尋找一個公式,公式將傳回一行日期中的下一個日期(高於開始日期),然後傳回該日期的下一個日期

尋找一個公式,公式將傳回一行日期中的下一個日期(高於開始日期),然後傳回該日期的下一個日期

工作表 1 列出了我們飛機飛行的所有「航段」。然後,每天的一條或多條腿將轉到第 1 天的工作表 2,第 2 天的工作表 3,依此類推。支線列在列中,從支線 1 開始,然後是支線 2,依此類推。每條腿的頂部單元格中都有一個日期。我正在建立一個工作簿,它將記錄每天的航段,並將該航班的資訊轉移到另一個工作表(第 1 天、第 2 天…)。我遇到的問題是一天的航班可能是 1 航段,也可能是 5-6 航段。共有 24 篇專欄,涵蓋約 2 週的時段。每個「日」工作表只有 8 列,因為我們一天的飛行行程絕對不會超過 8 條。第一天的工作表很簡單,但第二天我遇到了問題。我目前正在使用 IF 和 AND 函數的組合來編寫公式以確定應輸入的下一個日期。但我就是無法讓它按照我想要的方式運作。我將嘗試在下面寫一個例子,希望能夠澄清這些渾水。

大師旅行工作表

LEG 1___LEG 2___LEG 3___LEG 4___LEG 5___LEG 6
8/5______8/6______8/6_____8/7__8/7_____8/8
CAK_____PLN_____APA____ASE_____ADS_____DAL
PLN_____________ASEASE_____ADS_____DAL_____DAL PLN_____________ASEASE________

第一天工作表

第 1
8/5
CAK
PLN段

第 2 天工作表

腿 2___腿 3
8/6______8/6
PLN______APA
APA______ASE

第 3 天工作表

第 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(工作表1!2:2,$A2)>COLUMN()-1,$A2,"")

這將複製「Day 1」!A2 中的日期,次數與 [Sheet1] 上出現的次數相同,該日期應與 Legs 相對應。公式的 Column()-1 部分是基於 B 列中的第一個公式,對於 B 列,它將傳回 1,對於 c 列,它將傳回 2,等等。這就是告訴它是否在工作表上回顯 A2 中的日期的原因。

因此,應該注意[第一天]工作表的日期。現在開始[第二天]。儲存格 A2 的公式有點複雜,但它所做的是測試前一天 # 工作表 +1、+2、+3 或 +4 上的日期是否在 [Sheet1] 上。第一個符合項目被放入儲存格 A2 中。現在,如果它顯示文字「No Match for previous date +1 to +4」而不是日期,則表示以下兩件事之一:要么您在兩腿之間休息的時間超過4 天,要么是[ 的最後一個日期Sheet1] 在前一個 [第 # 天] 工作表中找到。希望這是有道理的。以下是 [第 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(' Day 1'!A2:H2)+4,Sheet1!2:2,0)),"與上一個日期+1 到+4 不符",MAX('Day 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] 工作表中使用的這些儲存格完全相同。

對於每個後續的[第# 天] 工作表,您採用上面的長公式並將其插入該工作表上的單元格A2 中,然後使用“編輯”-->“替換”將其中的“第1天”引用更改為前一天的工作表名稱。

想要休息超過 4 天嗎?最好使用文字編輯器和 Excel 來完成此練習。取這個公式段:

IF(ISNA(MATCH(MAX('第1 天'!A2:H2)+4,Sheet1!2:2,0)),"前一個日期+1 到+4 不符",MAX('第1 天'! A2:H2)+4)

並對其進行以下更改:首先將“第一天”引用更改為前一天工作表的正確引用。第二次將 +4 出現次數改為 +5:總共有 3 個。現在,選擇修訂後的部分,然後選擇工作表上實際公式的“與先前日期 +1 到 +4 不符”,然後貼上修訂版本!

你可以重複這個過程來給你很長的休息時間,但代價是一個很長、很醜的公式。

我上傳了一個範例文件,其中包含 10 個[第 #] 天的工作表,您應該可以從此處下載:http://www.mediafire.com/view/k6qx3hahv8zl0o8/AircraftLegsLog001.xlsx

相關內容