一年中的第幾天,是指某個日期在該日曆年中的序數位置,其中 1 月 1 日為第 1 天,12 月 31 日在平年為第 365 天、在閏年為第 366 天。在 Excel 中並沒有內建的 DAYOFYEAR 函數,所以你必須自己用片段組合出來——通常是將儲存格中的日期減去前一年的 12 月 31 日。這個單一公式在大多數資料列都能正常運作,但遇到 1 月 1 日、空白的儲存格、從其他系統匯入且格式化為文字的日期,以及判斷 1 月 1 日究竟屬於前一年的第 53 週還是新年的第 1 週這類邊界情況時就會失效。如果你的目標是在 Excel 中快速找出一年中的第幾天,又不想在數百列的範圍中逐一照看公式,一個免費的一年中的第幾天計算機只要一次點擊就能完成同樣的工作:選一個日期,馬上讀出該天的序號、剩餘天數、ISO 8601 週數,以及是否為閏年的標記,整個過程即時更新,無需按送出按鈕。本指南會先帶你了解 Excel 公式的背景,再示範在公式礙事時如何改用計算機。

how to find day of year in excel
如何在不用公式的情況下,在 Excel 中找出一年中的第幾天

一年中的第幾天,定義

在西曆中,每個日期都位於 1 月 1 日到 12 月 31 日之間的一個固定位置。這個以 1 到 365 之間(或閏年時為 1 到 366 之間)的整數表示的位置,就是一年中的第幾天——也稱為序數日期。1 月 1 日是第 1 天,2 月 1 日是第 32 天,3 月 1 日在平年為第 60 天、在閏年為第 61 天,12 月 31 日在平年為第 365 天、在閏年為第 366 天。

同一個數字在各行各業中有不同的呈現方式。在物流、航空和製造業中,它常被寫成像儒略日那樣的代碼,把日期戳上需要的兩項資訊結合在一起:年份與當天的序號。ISO 8601 將這種組合代碼定義為序數日期,寫成 YYYY-DDD,其中天數補零為三位數——所以 2026 年 7 月 6 日變成 2026-187,2026 年 8 月 9 日變成 2026-221,依此類推,直到 12 月 31 日的第 365 或 366 天。

有一個常見的混淆需要先釐清:在商業領域,「儒略日」通常指一年中的序數天。天文學家使用同一個詞來表示「儒略日數」,那是從西元前 4713 年起連續計數的完全不同系統。本站的一年中的第幾天計算機提供的是一年中的序數天、補零的 ISO 序數日期,以及 ISO 8601 週數——而不是天文學上的儒略日數。

Excel 如何計算一年中的第幾天

Excel 將日期儲存為序號(在 Windows 預設的 1900 日期系統中,1900 年 1 月 1 日為第 1 天;在舊版 Mac 的 1904 系統中,1904 年 1 月 1 日為第 1 天)。因為每個日期都只是一個整數,所以一年中的第幾天就是某個日期與前一年 12 月 31 日之間的差值。Excel 沒有原生的 DAYOFYEAR,但有四種常見的做法可以處理。

方法 公式 作用
減去「歸零日」 =A2-DATE(YEAR(A2),1,0) 建立前一年的 12 月 31 日,再從儲存格中減去它。1 月 1 日回傳 1,12 月 31 日回傳 365 或 366。
減去該年第一天 =A2-DATE(YEAR(A2),1,1)+1 減去同一年的 1 月 1 日,再加上 1,不用「歸零日」的小技巧就得到相同的序數。
計算該年的天數總和 =DATE(YEAR(A2)+1,1,1)-DATE(YEAR(A2),1,1) 回傳該年的總天數(365 或 366)。再搭配減法即可推算出該天的序號。
使用 DATEDIF =DATEDIF(DATE(YEAR(A2),1,1),A2,"d")+1 從 1 月 1 日到該日期計算完整天數,再加上 1,直接得到序數天。

第一個公式的演算範例:若 A2 儲存格為 2026 年 7 月 6 日,Excel 會將 DATE(YEAR(A2),1,0) 計算為 2025 年 12 月 31 日。兩個序號相差正好 187,因此 =A2-DATE(YEAR(A2),1,0) 會回傳 187。這個數字也出現在 ISO 8601 序數日期 2026-187 中,證實此公式對於任何可放入儲存格的日期都正確。

這些公式在可預期的位置會失效。空白的儲存格會回傳序號 0,得出接近 1899 年 1 月 0 日這個不合理的結果。格式化為文字的儲存格仍維持為文字,相減時會產生 #VALUE! 錯誤。從使用不同紀元起點的系統匯入的日期,可能需要重新校正基準點。而且這四個公式都無法同時提供 ISO 8601 週數、剩餘天數或閏年標記——那些資訊需要另外計算。

用一年中的第幾天計算機跳過公式

對於單一日期,或是要拿來與官方序數日期比對、檢查一整欄 Excel 公式是否正確時,使用計算機會更快。一年中的第幾天計算機接受任何日期,一次回傳四項資訊:當天序號(1–365 或 1–366)、該年剩餘天數、ISO 8601 週數及完整 ISO 週日期,以及該年是否為閏年。沒有任何資料會被上傳或儲存,也不需要註冊。

這個工具能處理 Excel 公式經常搞錯的邊界情況。ISO 8601 週數完全依照標準計算:第 1 週是包含該年第一個星期四的那一週(等義於包含 1 月 4 日的那一週),每週從星期一到星期日,1 月的頭幾天可能屬於前一年的第 52 或 53 週。閏年採用完整的西曆規則——可被 4 整除,但世紀年還必須可被 400 整除——所以 2000 年是閏年,而 1900 年和 2100 年不是。當天序號、該年總天數與剩餘天數都會自動與這些規則保持一致。

使用計算機找出一年中的第幾天

  1. 在日期欄位中選擇任何日期——預設為今天,所以今天所對應的一年中的第幾天會立即顯示。
  2. 讀出當年的天數序號與剩餘天數,只要更動日期就會馬上更新。完全不需要按按鈕。
  3. 在下方面板中查看 ISO 8601 週數、該年總天數,以及是否為閏年。
  4. 視你的工作流程需求,將單純的天數序號或補零後的 ISO 序數日期(例如 2026-187)複製到你的試算表、標籤或行程表中。
  5. 變更日期以查詢其他數值——可用於批次日期、規劃截止日,或快速測試 1900、2100 這類年份是否為閏年。

解讀輸出欄位

天數序號就是會直接寫入試算表欄位中的單純序數。補零後的 ISO 序數日期將四位數的年份與天數序號結合,天數部分補零為三位數,格式為 YYYY-DDD——這是機票、貨運艙單和許多製造業批次戳記上會出現的形式。依據你要填入的欄位,選擇對應的形式即可。

剩餘天數就只是該年總天數減去天數序號,所以它會在一年中穩定遞減,並在 12 月 31 日歸零。該年總天數在平年為 365 天、在閏年為 366 天,而閏年標記會在總天數為 366 時恰好亮起。

ISO 8601 週數是最容易讓臨時腳本出錯的欄位。ISO 8601 的每週從星期一開始,第 1 週是包含該年第一個星期四的那一週(等義於包含 1 月 4 日的那一週),依此規則,1 月的頭幾天可能落在前一年的第 52 或 53 週,而 12 月的最後幾天可能落在次年的第 1 週。2021 年 1 月 1 日落在 2020 年的第 53 週;2024 年 12 月 30 日與 12 月 31 日皆落在 2025 年的第 1 週。完整的 ISO 週日期寫成 2026-W28-1,其中包含 ISO 週編號年,使跨越年度邊界的日期也能正確讀取。如果你正在安排歐洲薪資排程、製造業週次或任何以 ISO 為基礎的行事曆,這就是該使用的欄位。

一年中的第幾天 vs 儒略日 vs ISO 週

這三個術語很容易混淆,因為它們都依附在同一個日期上,卻回答不同的問題。

  • 一年中的第幾天回答「今天是這一年中的哪一天?」,數字從 1 到 365 或 366。它從 1 月 1 日開始計算,而不是從星期一開始,也不考慮週次。
  • 儒略日(在物流、航空和批次追蹤中)就是同一個數字,常寫成 YYYY-DDD,把年份放在前面。天文學家使用同一個名稱來指稱一個從西元前 4713 年起連續計數的截然不同系統。
  • ISO 8601 週數回答「這是這個 ISO 年的第幾週?」,數字從 1 到 52 或 53。它從星期一到星期日,第 1 週包含該年的第一個星期四,而對於接近 1 月 1 日或 12 月 31 日的日期,ISO 年與日曆年並不一定相同。

如果你的試算表需要的是用於儒略式日期戳的天數序號,請使用「一年中的第幾天」輸出。如果你的試算表需要的是用於歐洲薪資或製造業排程的週數,請使用 ISO 8601 週數輸出。計算機會並列顯示這兩項資訊,所以你在選定日期之前不必先決定要用哪一個。

你真正會用到一年中的第幾天的時機

一旦開始留意,一年中的第幾天這個數字其實無處不在。它是你寫入貨運艙單上「一年中的第幾天」欄位的數值、是航空批次或維修標籤上那個三位數的後綴、是你填入科學資料表(讓下游工具能讀取序數日期)的數值,也是你在規劃「本年度還剩 X 天」截止日時會查看的數字。它也是找出日期錯誤最簡單的方法:如果兩個批次戳記都顯示第 187 天,但一個標 2026、另一個標 2025,那麼錯的是年份而不是日期。

在相關的日期工作中,同一套工具組也提供了專門的計算機,用於處理通常與「一年中的第幾天」欄位相鄰的工作。如果你需要計算兩個日期之間的差距,日期差異計算機可以同時以天、週和月為單位,正向或反向計算。如果你需要某個特定日期是星期幾,星期幾計算機可以立即回傳星期一至星期日。所有運算都在瀏覽器本地端完成,因此你可以把日期貼到「一年中的第幾天」、「日期差異」、「星期幾」以及年齡計算機中,完全不需要將任何日期送到伺服器。