2025年6月20日 星期五

Excel 網友問題:如何使用 TIME 函數判斷時間區間並顯示特定值?

今天來分享一個 Excel 網友的提問:如何在 Excel 中判斷某個時間是否落在特定的區間內,並根據判斷結果顯示預設的時間值或文字?

這個問題很實用,例如計算員工的出勤時間是否在規定範圍內,或者根據時間段顯示不同的排班或訊息。

我們將使用 Excel 的 TIMEAND 和 IF 函數來解決這個問題。

網友遇到的問題描述

網友的需求是這樣的:

假設在儲存格 A1 中會輸入一個時間。

  • 如果 A1 的時間介於 早上 06:15 到 06:44 (含 06:15,不含 06:45) 之間,希望在另一個儲存格顯示固定的時間值:06:15

  • 如果 A1 的時間介於 06:45 到 07:15 (含 06:45,含 07:15) 之間,希望顯示固定的時間值:06:45

  • 如果時間不在上述任何一個區間內,則顯示 A1 原本的時間,或特定的文字(例如:「超過上班時間」)。

核心函數介紹

在 Excel 中,時間實際上是儲存為介於 0 到 1 之間的小數值。例如,06:00 AM 是 0.25,12:00 PM 是 0.5。為了方便進行時間的比較和計算,我們可以利用 TIME 函數來精確表示特定的時間點。

  1.  函數:

    • 這個函數接受三個引數:小時 (Hour)、分鐘 (Minute) 和秒 (Second)。

    • 它會返回一個代表該時間的 Excel 時間數值。

    • 例如:TIME(6,15,0) 會返回 6:15:00 AM 的時間數值。TIME(6,45,0) 會返回 6:45:00 AM 的時間數值。TIME(7,15,0) 會返回 7:15:00 AM 的時間數值。

  2.  函數:

    • 這個函數用於檢查多個條件。

    • 只有當所有引數 (邏輯判斷) 都為 TRUE 時,AND 函數才返回 TRUE;否則,返回 FALSE。

    • 在這個問題中,我們需要判斷時間是否同時滿足「大於等於某個時間」和「小於 (或小於等於) 另一個時間」這兩個條件,所以需要用到 AND

  3.  函數:

    • 這是最常用的邏輯函數。

    • 它會先評估第一個引數 (邏輯判斷)。

    • 如果邏輯判斷為 TRUE,則返回第二個引數的值。

    • 如果邏輯判斷為 FALSE,則返回第三個引數的值。

    • 當我們有多個時間區間需要判斷時,可以使用巢狀 IF (即在一個 IF 的 為 FALSE 時的值 中再嵌入另一個 IF)。

逐步建構公式

為了避免複雜的公式一次寫錯,我們可以先測試各個部分的判斷條件。

假設我們要將結果顯示在 B1 儲存格,並判斷 A1 的時間。

第一個區間判斷 (06:15 ~ 06:44):

判斷 A1 是否大於等於 06:15 且小於 06:45。

  • 大於等於 06:15 的條件:A1 >= TIME(6,15,0)

  • 小於 06:45 的條件:A1 < TIME(6,45,0) (注意是小於,這樣 06:44:59 會包含在內,而 06:45:00 就不會)

將這兩個條件用 AND 組合起來:
AND(A1 >= TIME(6,15,0), A1 < TIME(6,45,0))

如果這個 AND 判斷為 TRUE,我們希望顯示 06:15,這可以用 TIME(6,15,0) 來表示。

第二個區間判斷 (06:45 ~ 07:15):

判斷 A1 是否大於等於 06:45 且小於等於 07:15。

  • 大於等於 06:45 的條件:A1 >= TIME(6,45,0)

  • 小於等於 07:15 的條件:A1 <= TIME(7,15,0)

將這兩個條件用 AND 組合起來:
AND(A1 >= TIME(6,45,0), A1 <= TIME(7,15,0))

如果這個 AND 判斷為 TRUE,我們希望顯示 06:45,這可以用 TIME(6,45,0) 來表示。

組合巢狀 IF 公式:

我們需要先判斷第一個區間,如果不是,再判斷第二個區間。如果兩個都不是,就顯示預設值。

結構如下:
=IF(第一個區間的 AND 判斷式, TIME(6,15,0), IF(第二個區間的 AND 判斷式, TIME(6,45,0), 預設值))

將前面的 AND 判斷式和 TIME 值代入:

Generated excel

=IF(AND(A1>=TIME(6,15,0),A1<TIME(6,45,0)),TIME(6,15,0),IF(AND(A1>=TIME(6,45,0),A1<=TIME(7,15,0)),TIME(6,45,0),A1))

這個公式的意思是:

  • 如果 A1 的時間在 06:15 到 06:45 之間(不含 06:45),則顯示 06:15。

  • 否則 (如果不在第一個區間),再判斷 A1 的時間是否在 06:45 到 07:15 之間(含 06:45 和 07:15)。如果滿足,則顯示 06:45。

  • 否則 (如果兩個區間都不滿足),則顯示 A1 原本的時間。

考慮 A1 為空白的情況 (可選):

如果 A1 可能沒有輸入時間 (是空白儲存格),上面的公式可能會返回錯誤或 00:00。如果你希望 A1 為空白時,結果儲存格也顯示空白,可以在最外層再包一個 IF 函數來判斷 A1 是否為空白。

Generated excel

=IF(A1="","",IF(AND(A1>=TIME(6,15,0),A1<TIME(6,45,0)),TIME(6,15,0),IF(AND(A1>=TIME(6,45,0),A1<=TIME(7,15,0)),TIME(6,45,0),"超過上班時間"))

這個公式的意思是:

  • 如果 A1 是空白,則顯示空白 ("")。

  • 否則 (如果 A1 有時間),進行後面的區間判斷。

  • 區間判斷邏輯同上。

  • 最後,如果兩個區間都不滿足,則顯示文字「超過上班時間」。

實際測試

您可以在 A1 儲存格輸入不同的時間來測試公式在 B1 (或您放入公式的儲存格) 的結果:

  • A1 輸入 6:15 -> B1 顯示 6:15

  • A1 輸入 6:30 -> B1 顯示 6:15

  • A1 輸入 6:44 -> B1 顯示 6:15

  • A1 輸入 6:45 -> B1 顯示 6:45

  • A1 輸入 7:00 -> B1 顯示 6:45

  • A1 輸入 7:15 -> B1 顯示 6:45

  • A1 輸入 7:16 -> B1 顯示 A1 原本的時間 或「超過上班時間」(取決於您使用的最後一個公式版本)

  • A1 清空 -> B1 顯示空白(如果您使用了最後一個公式版本)

小提示

  1. 建構複雜公式的技巧: 影片中站長示範了一個很好的技巧:先分開寫好各個 AND 判斷式,以及 TIME 的返回值,確認它們獨立工作正常後,再將它們剪下貼上組合到 IF 函數中。這可以大大降低公式出錯的機率。

  2. 儲存格格式: 包含 TIME 函數的儲存格如果想正確顯示時間,請務必將其儲存格格式設定為「時間」。如果公式的最後結果是文字(例如「超過上班時間」),則格式設定為「文字」或「一般」即可。



沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。

如何解決edge播放youtube影片時聲音突然變小聲

最近windows 11更新後,在播放youtbub時,又發現在chrome時聲音正常,在edge時變小聲,您可以用底下方法來解決。 開啟設定->系統->音效->應用程式音量和裝置喜好設定(或是也可以在喇叭圖示上按右鍵->開啟音效設定) 1.用滑鼠右鍵點選...