不好意思想請各位幫忙下條件式函數,謝謝

不好意思想請各位幫忙下條件式函數,謝謝

不好意思想請各位幫忙
上方為機票追蹤表
想請問該如何下函數讓狀態出現上方所示
2個問題如下
1.
出發日、回國日為正常購票日
但有時行程有變更會出現改票狀態
想請問狀態欄如果想出現「出差中」或「已回國」該如何下函數
條件是依每日的日期來判斷是否已回國或出差
如果改票日(迄)沒有出現日期就依回國日來判斷狀態
如果改票日(迄)有日期出現就依改票完成日來判斷最新狀態

2.表單內容顯示依已回國往下排序

最終希望呈現的內容如下


不好意思想請各位幫忙下條件式函數,謝謝


謝謝
2024-08-29 16:19 發佈
=IFS(
AND(NOT(ISBLANK(D1)), D1 <= NOW()), "已回國",
C1 <= NOW(), "已回國",
AND(NOT(ISBLANK(B1)), B1 <= NOW()), "出差中",
A1 <= NOW(), "出差中",
TRUE, "未出差"
)
邏輯大概是這樣,沒有細想
E1:
=IF(B2="",IF(A2>TODAY(),"尚未出發",IF(D2="",IF(C2<=TODAY(),"己回國","出差中"),IF(D2<=TODAY(),"己回國","出差中"))),IF(B2>TODAY(),"尚未出發",IF(D2="",IF(C2<=TODAY(),"己回國","出差中"),IF(D2<=TODAY(),"己回國","出差中"))))
向下複製公式到E2:E10。



E1:
=IFS(AND(D2<>"", D2 <= NOW()), "已回國",D2>NOW(),"出差中",C2<= NOW(), "已回國",AND(B2<>"", B2 <= NOW()), "出差中",A2 <= NOW(), "出差中",TRUE, "未出差")

錦色如月,子耀光芒。
比較容易出現爭議的是,
如果出發日或回國日剛好是今天,
狀態到底要算在哪一種?

補充說明:
下圖公式雖然較簡短,但限於改票日比原日期晚,
若改票後的日期可能比原本早,
那麼公式就得另外設計!

My Interior Knowledge is Extraordinaire
我已將公式貼上但出現的訊息是不對的
可以麻煩幫忙查看是那裡出了問題嗎??
謝謝

唬唬生瘋

你把公式貼出來(不是圖)比較好找問題

2024-08-31 13:42
givenchy9999 wrote:
我已將公式貼上但出現...(恕刪)


看跟你的公式差在哪?
下面這我打是OK
=IF(D2="",IF(C2>TODAY(),"尚未出發",IF(F2="",IF(E2<=TODAY(),"己回國","出差中"),IF(F2<=TODAY(),"己回國","出差中"))),IF(D2>TODAY(),"尚未出發",IF(F2="",IF(E2<=TODAY(),"己回國","出差中"),IF(F2<=TODAY(),"己回國","出差中"))))
修改了一下公式,
改善前述當改票日早於原始日期時的錯誤,
新公式比先前的公式稍長一點!

My Interior Knowledge is Extraordinaire
我的公式如下
=IF(D2="",IF(C2>TODAY(),"尚未出發",IF(F2="",IF(E2<=TODAY(),"己回國","出差中"),IF(F2<=TODAY(),"己回國","出差中"))),IF(D2>TODAY(),"尚未出發",IF(F2="",IF(E2<=TODAY(),"己回國","出差中"),IF(F2<=TODAY(),"己回國","出差中"))))

不好意思我使用上方的公式測試
正確資訊應該都是「尚未出發」
但實際顯示的資訊是一個「尚未出發」、一個「已回國」


givenchy9999 wrote:
我的公式如下
=IF(D2="",IF(C2>TODAY(),"尚未出發",IF(F2="",IF(E2<=TODAY(),"己回國","出差中"),IF(F2<=TODAY(),"己回國","出差中"))),IF(D2>TODAY(),"尚未出發",IF(F2="",IF(E2<=TODAY(),"己回國","出差中"),IF(F2<=TODAY(),"己回國","出差中"))))

不好意思我使用上方的公式測試
正確資訊應該都是「尚未出發」
但實際顯示的資訊是一個「尚未出發」、一個「已回國」


剛才測試套用了您的公式,
得到的結果都是正確的,
所以您會出現錯誤的結果,
研判有可能是 C~F 欄位的資料格式錯誤,
雖然顯示的內容看起來像是日期,
但實際上有可能並非日期,因而公式判斷時出錯!

另外,您所使用的公式太過冗長,
下面這兩個相同的判斷式就各重覆了兩次!
IF(E2<=TODAY(),"己回國","出差中")
IF(F2<=TODAY(),"己回國","出差中")

這樣一方面會讓公式變長、變複雜,
日後需要修改時變得更困難,
而且在設計時也容易弄錯判斷式的先後順序,
導致得出的結果並非正確值!

設計公式時,不是能得到正確結果就好,
還要考慮是否容易理解公式結構、且方便日後修改,
最好能夠用精簡的公式,完成需要的結果!
My Interior Knowledge is Extraordinaire
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?