Excel 日期格式轉換 yyyy mm dd:TEXT 與自訂格式 2 種做法

Excel 日期格式轉換成 yyyymmdd(例如 2026/10/1 變成 20261001)時,只想改變畫面顯示,用自訂格式 yyyymmdd 就夠;要拿到真正的八碼文字,才用 YEAR、MONTH、DAY 搭配 TEXT 補零。這篇用贊贊小屋的實測,整理兩種做法的差別與選擇。

Excel 日期格式轉換主視覺:日期 2026/10/1 轉成 20261001,用 TEXT 得到文字,用自訂格式仍是日期

一、Excel 日期如何拆成年、月、日

要把日期整理成固定的八碼,第一步通常是先把年、月、日各自拆出來。

YEAR、MONTH、DAY 函數分別取得年月日

贊贊小屋在 A 欄的「西元日期」放了三筆日期:2026/10/30、2026/10/1、2026/9/30。B 欄、C 欄、D 欄分別用 YEAR、MONTH、DAY 三個函數,把同一列日期的年、月、日各拆成一格。以 2026/10/1 這一列為例,D4 輸入的公式是 =DAY(A4),B4、C4 則是同樣寫法的 =YEAR(A4) 與 =MONTH(A4)。

三筆日期拆出來的結果依序是:2026、10、30;2026、10、1;2026、9、30。年份固定是四位數,月份和日期則是什麼數字就顯示什麼數字。

YEAR、MONTH、DAY 取得的是數值

這裡要先留意一件事:YEAR、MONTH、DAY 傳回的是數值,不是兩位數的文字。10 月得到 10,1 日得到的是 1,不是 01。

日期原本在 A 欄看起來是 2026/10/1,並不代表 DAY 會自動替 1 保留兩位數;它只回答「這是這個月的第幾天」,答案就是數字 1。9 月也是同樣的道理,MONTH 得到的是 9,而不是 09。接下來要把三個數字合起來時,這個差別會直接影響結果。

Excel 以 =DAY(A4) 取得 2026/10/1 的日為 1,A 欄日期用 YEAR、MONTH、DAY 拆成年、月、日 Excel 日期拆解知識卡:2026/10/1 用 YEAR、MONTH、DAY 得到 2026、10、1,個位數不會自動補成兩位數

二、直接合併年月日,為什麼少了一個 0

年、月、日都拆好了,最直覺的做法,就是用 & 把三格內容接在一起,期待得到 yyyymmdd。贊贊小屋先照這個直覺做了一次。

使用 & 串接 YEAR、MONTH、DAY

贊贊小屋在 E 欄的「合併」輸入 =B4&C4&D4,把 2026 的年、10 的月、1 的日直接接起來。E4 得到的是 2026101,不是預期的 20261001,只有七位數。同一欄的 E3 是 20261030,看起來正常,E5 則是 2026930。

三筆資料的結果長度不一樣:2026/10/30 是八碼,2026/10/1 與 2026/9/30 都只有七碼。

月份和日期不足兩位時會產生問題

問題出在個位數的月份與日期。& 只負責把前面三格的內容照原樣接起來,不會自己補 0。2026/10/30 的月、日剛好都是兩位數,所以接起來碰巧是八碼;2026/10/1 的日只有一位,2026/9/30 的月只有一位,各少一位,接出來的結果就變成 2026101 與 2026930。

這樣的結果沒辦法形成固定八碼的 yyyymmdd,也無法分辨 2026101 究竟是 10 月 1 日,還是 1 月 01 日。想要固定位數,就得在合併之前,先把月和日補成兩位數。

Excel 以 =B4&C4&D4 合併年月日,得到 20261030、2026101、2026930,位數不固定 Excel 合併年月日因果卡:月份或日期只有 1 位時,& 只串接原值、不會補 0,結果不一定是 8 碼

三、用 TEXT 函數將月份和日期補成兩位數

補 0 的工具是 TEXT 函數。它的用法很簡單,但它做的事情,和 Excel 儲存格格式裡的「00」其實不一樣。

TEXT 的 "00" 可以補前導 0

贊贊小屋把 E 欄的公式改成 =B4&TEXT(C4,"00")&TEXT(D4,"00"),也就是先用 TEXT(C4,"00") 把月份補成兩位,再用 TEXT(D4,"00") 把日期補成兩位,最後和年份接在一起。TEXT 的第二個引數 "00" 表示「至少要兩位,不足的前面補 0」,所以 9 變成 09,1 變成 01。

三筆資料這次得到的是 20261030、20261001、20260930,全部是固定的八碼。

TEXT 不只是改變畫面格式

這裡有一個贊贊小屋實測時才發現的差別。原本的印象是,如果把儲存格格式設成「00」,只會讓數字看起來是兩位數,實際內容並沒有改變:儲存格裡的 1,顯示成 01,真正的值還是 1。這個印象本身沒有錯。

但改用 TEXT 補成兩位數、再把結果合併起來之後,贊贊小屋發現合併後的結果真的就是兩位數的內容,不再只是外觀。原因是兩者做的事情不同:儲存格自訂格式 00 只改變數字的顯示方式,值仍然是 1;=TEXT(1,"00") 則是真正產生一個文字 "01"。TEXT 把原本只是「顯示效果」的前導 0,變成了字串本身的一部分,所以接在一起才會成為真正的 20261001。

Excel 以 =B4&TEXT(C4,"00")&TEXT(D4,"00") 補零後合併,得到 20261030、20261001、20260930 自訂格式 00 與 TEXT 的差別比較卡:自訂格式只讓 1 顯示成 01,TEXT(1,"00") 則產生文字 "01"

四、TEXT 轉換後的 20261001 已經是文字

既然 TEXT 產生的是文字,那麼 E 欄那一排看起來像日期的 20261001,實際上還是不是日期?用 Excel 自己的篩選功能就能確認。

外觀看起來像日期,不代表仍然是日期

用 TEXT 得到的 20261001,畫面上看起來很像日期,但它的資料型態已經是文字。TEXT 函數的輸出本來就是文字,不管是前面的合併公式,還是直接寫成 =TEXT(A4,"yyyymmdd"),得到的 20261001 都是這一類結果。

單看儲存格內容,很難分辨一串數字樣子的資料到底是日期、數字還是文字。比較可靠的方式,是讓 Excel 自己告訴我們它怎麼看待這一欄。

從 Excel 篩選功能可以直接看出差異

贊贊小屋先對原始的日期欄位開啟篩選。選單裡出現的是「日期篩選」,下方的清單依「2026年」分組,展開後有「九月」與「十月」兩個月份節點,Excel 把這三筆資料當成日期,所以能依年、月自動分層。

接著對 TEXT 函數結果的那一欄開啟篩選。這次選單裡的選項變成「文字篩選」,清單也不再分年月,而是直接列出 20260930、20261001、20261030 三個項目;排序選項顯示的是「從 A 到 Z 排序」與「從 Z 到 A 排序」,和日期欄位選單裡的排序文字不同。

兩個篩選選單放在一起比較,差異很清楚:原始的 2026/10/1 是日期,TEXT 轉成的 20261001 雖然仍代表同一個年月日,Excel 卻把它視為文字。文字型態會改變篩選器判斷資料的方式,這一點在 Excel 開頭 0 顯示那篇用發票號碼與開票日期也有實例。

Excel 原始日期欄的篩選選單顯示「日期篩選」,清單依 2026年分成九月、十月 Excel TEXT 結果欄的篩選選單顯示「文字篩選」,直接列出 20260930、20261001、20261030 日期資料與 TEXT 文字的篩選差異比較卡:原始日期使用日期篩選,TEXT 結果 20261001 使用文字篩選

五、日期轉成文字之後會有哪些影響

知道 TEXT 的結果是文字之後,下一個問題是:什麼時候可以放心用它,什麼時候不能只留下它?

TEXT 適合輸出固定格式的日期字串

如果真正需要的是固定的八碼文字,TEXT 的結果就很合適。例如檔案名稱要帶日期、資料要匯出給其他系統、要組成某種系統代碼或編號,或是要和其他文字串接在一起,這些情境需要的是一串固定長度的字串,而不是可以計算的日期值。

這時用 TEXT 一次輸出 20261001,比在後面一個一個手動補 0 更穩定。

如果後續還要計算日期,不宜只留下 TEXT 結果

反過來,如果後面還要用這些日期做事,就不要只留下 TEXT 的結果。轉成文字之後,資料就失去了日期值原有的功能:沒辦法再用日期篩選依年月分層,加減天數也不會得到正確的日期,YEAR、MONTH、DAY 也無法再從 20261001 正確拆出年月日,依年月群組也做不到。如果手上已經是 20261001 這種八碼文字,想轉回真正的日期,可以參考 Excel 8位數字轉日期。

比較穩妥的做法,是保留原始的日期欄位,把 TEXT 的結果放在另一欄專門輸出使用。需要計算時回到日期欄,需要八碼字串時才看 TEXT 欄,兩邊各司其職。

什麼時候用 TEXT 的判斷卡:檔案名稱、資料匯出、系統代碼、編號、文字串接適合,後續還要計算日期時保留原始日期欄位

六、不用 TEXT,直接把日期顯示成 yyyymmdd

如果目的只是讓畫面上看到 20261001,其實不一定要建立 TEXT 公式。Excel 的自訂儲存格格式就能做到,而且不會改變資料本身。

使用 Excel 自訂儲存格格式

贊贊小屋在 B 欄放入 =A4 這類公式,直接取得 A 欄的日期值;A 欄的標題是 yyyy/m/d,B 欄的標題是 yyyymmdd。接著開啟「設定儲存格格式」視窗,在「數值」頁籤的類別選「自訂」,在「類型」欄位輸入 yyyymmdd。視窗上方「範例」欄位馬上顯示 20261001,確認格式碼寫對了;視窗下方的提示是「請鍵入數值格式代碼,您可以選取已有的代碼加以修改。」

套用之後,B 欄三筆資料顯示成 20261030、20261001、20260930,不需要再寫任何 TEXT 公式。自訂格式能控制的不只日期,數值的顯示方式也一樣,進一步的寫法可以參考 Excel自訂格式代碼。

自訂格式只改變外觀,不改變真正的日期值

不過這時候 B 欄儲存格裡的內容,仍然是原本的日期值,只是顯示的樣子變成了 yyyymmdd。想確認這一點,同樣可以打開篩選。

贊贊小屋對 B 欄開啟篩選,選單出現的還是「日期篩選」,清單依「2026年」分組,下面一樣有「九月」與「十月」,排序選項顯示的是「從最新到最舊排序」,是日期欄位選單裡的排序文字。畫面上看到的是 20261001,Excel 認得的卻仍是 2026 年 10 月 1 日的日期。

這就是和前面 TEXT 結果最大的不同:自訂格式只換外觀,日期的篩選、排序、加減天數,以及 YEAR、MONTH、DAY 都還保留得住。

Excel「設定儲存格格式」的自訂類型輸入 yyyymmdd,範例欄位顯示 20261001 Excel 套用 yyyymmdd 自訂格式的欄位,篩選選單仍是日期篩選與 2026年九月、十月階層 自訂格式外觀改變、日期值不變的知識比較卡:2026/10/1 顯示成 20261001,資料仍是日期並保留篩選、排序、加減與 YEAR、MONTH、DAY

TEXT 和自訂格式 yyyymmdd 應該怎麼選

回頭看前面所有的實測,TEXT 與自訂格式其實都能讓畫面顯示 20261001,真正的差別在於結果是什麼:一個是文字,一個仍然是日期。選哪一種,取決於這份資料接下來要拿來做什麼。

只想改變日期顯示方式:使用自訂格式

如果只是希望把 2026/10/1 顯示成 20261001,但後面還要做日期計算、日期篩選、日期排序,或是還要用 YEAR、MONTH、DAY 取出年月日,就用 yyyymmdd 自訂格式。資料本身沒有動,Excel 仍然把它當日期,只是換了一種看起來的樣子。

真的需要八碼文字:使用 TEXT

如果真正需要的是字串 "20261001",例如要帶進檔名、匯出或當作編號,就用 =TEXT(A4,"yyyymmdd"),或是前面一步一步實測出來的 =YEAR(A4)&TEXT(MONTH(A4),"00")&TEXT(DAY(A4),"00")。兩種寫法得到的都是八碼文字。這裡用的格式碼 yyyymmdd,是在贊贊小屋使用的繁體中文版 Excel 上實測的寫法。

用表格對照三種方法的畫面結果與真正資料

方法 畫面結果 真正資料
自訂格式 yyyymmdd 20261001 日期
TEXT(A4,"yyyymmdd") 20261001 文字
YEAR+MONTH+DAY+TEXT 20261001 文字

三種方法畫面上都是 20261001,但只有自訂格式保留了真正的日期值。所以如果只是想把 Excel 日期「顯示」成 yyyymmdd,使用自訂格式最簡單;如果要取得真正的八碼文字,再使用 TEXT。先確認自己要的是顯示效果,還是文字結果,再決定用哪一種,後面就不會被資料型態的差異絆倒。

要顯示成 20261001 還是取得八碼文字的總結決策卡:只改顯示用自訂格式(日期),要八碼文字用 TEXT(文字)
發布日期:
分類:Excel函數教學、Excel教學