日期(&P);數字格式

日期時間和數字格式可用來控制工作表顯示資料的方式。Google 試算表提供一些常用格式讓您選擇,但您也可以定義自己的格式。

在試算表 UI 中,您可以透過「格式」 >「數字」選單為儲存格套用數字與日期格式。在 Sheets API 中,您可以使用 spreadsheets.batchUpdate 方法呼叫傳送 UpdateCellsRequestRepeatCellRequest,藉此設定這些格式。

本頁說明如何定義新的日期與數字格式模式,這些模式可包含在 API 要求中。如要瞭解如何使用 API 設定格式模式,請參閱設定範圍的自訂日期時間或小數格式範例。請注意,格式的實際算繪結果取決於試算表的 locale。本指南假設 localeen_US。您可以透過 spreadsheets.get 要求讀取 SpreadsheetProperties,判斷試算表的 locale

關於日期和時間值

Google 試算表和其他大多數試算表應用程式一樣,會將日期和時間值視為十進位值。這可讓您在公式中對這些變數執行算術,以便增加天數或週數、將兩個日期和時間相加,以及執行其他類似的運算。

試算表會採用試算表常用的週期日期形式。值的整數部分 (小數點左側) 會計算自 1899 年 12 月 30 日以來的天數。小數部分 (小數點右側) 會以一天內的小數計算時間。舉例來說,1900 年 1 月 1 日中午為 2.52 因為現在是 1899 年 12 月 30 日之後的 2 天,而 0.5 是中午的半天。1900 年 2 月 1 日下午 3 點 為 33.625

Google 試算表正確將 1900 年的資料視為一整年,而非閏年。

日期和時間格式模式

「日期時間格式模式」是一串權杖子字串,剖析後就會替換為對應的日期時間元素 (例如月或小時)。

日期和時間格式符記

下表定義了可在日期時間格式模式中使用的符記子字串。+ 字元表示前一個字元可出現一或多次,且仍與模式相符。未列於下表的字元會視為常值,並在未變更的情況下輸出。

符記 說明
h 時段。根據字串中是否出現上午或下午指標,在 12 和 24 小時制之間切換。
hh+ 與上一個相同,但以 0 表示 1-9。
m 如果先前的非常值符記為小時數,或者後續權杖為秒,則代表一小時內的分鐘數 (無前置 0)。否則,系統會以數字表示一年的月份 (無前置 0)。
M 每年的月份,前面不加 0。利用這個權杖在模式中明確註明一個月 (而非一分鐘)。
mm m 相同,但兩者的開頭為 0。
MM 一年中的月份,前方加 0。利用這個權杖在模式中明確註明一個月 (而非一分鐘)。
mmm 由三個字母組成的月份縮寫 (例如「2」)。
mmmm 完整月份名稱。「mmmmmm+」也與這個關鍵字相符。
mmmmm 月份的第一個字母 (例如「J」代表 6 月)。
s 一分鐘內的第幾秒,無前置 0。
ss 一分鐘內的第幾秒,前方加 0。
[h+] 在特定時間範圍內的經過時數。字母數代表數字數量下限 (開頭會加上 0)。
[m+] 指定時間長度中的經過分鐘數。字母數代表數字數量下限 (開頭會加上 0)。
[s+] 時間長度中的經過秒數。字母數代表數字數量下限 (開頭會加上 0)。
d 日期,未前置 0 表示小於 10 的數字。
dd 日期,前 0 位數代表小於 10 的數字。
ddd 星期幾,三個字母的縮寫 (例如「Mon」)。
dddd+ 星期幾,全名。
y 2 位數的年份。
yy
yyy 4 位數年份。
yyyy+
a/p 顯示上午「a」,下午則顯示「p」。此外,系統會將營業時間變更為 12 小時格式。如果符記字母為大寫,輸出的內容也會是大寫。
am/pm 如上所述,但改為顯示「AM」或「PM」,且一律大寫。
0 數十秒。您可以使用 000,將精確度提高為兩位數,並輸入 00 或三位數 (毫秒)。
\ 系統會將下一個字元視為常值,而非任何可能的特殊意義。
"text" 以常值的形式顯示引號內的任何文字。

日期和時間格式範例

下表針對日期和時間 Tuesday, April 5, 2016, 4:08:53.528 PM,顯示一些範例模式及對應的日期時間算繪。表格的第二部分會顯示 3 hours, 13 minutes, 41.255 seconds 經過的時間格式範例:

日期時間模式 Tuesday, April 5, 2016, 4:08:53.528 PM
h:mm:ss.00 a/p 下午 4:08:53.53
hh:mm A/P".M." 下午 04:08
yyyy-mm-dd 2016-04-05
mmmm d \[dddd\] 4 月 5 日 [星期二]
h PM, ddd mmm dd 4 月 5 日星期二下午 4 點
dddd, m/d/yy at h:mm 2016 年 4 月 5 日星期二 16:08
經過時間模式 3 hours, 13 minutes, 41.255 seconds
[hh]:[mm]:[ss].000 03:13:41.255
[mmmm]:[ss].000 0193:41.255

數字格式模式

「數字格式模式」是符記子字串的字串,剖析後會替換為對應的數字表示法。數字格式模式最多可以包含四個區段,並以半形分號分隔,其定義了用於正數、負數、零和文字 (按順序排列) 的個別格式:

[POSITIVE FORMAT];[NEGATIVE FORMAT];[ZERO FORMAT];[TEXT FORMAT]

您不必將四個部分都以同一種格式加入。如果您只有一個區段,則該格式適用於所有值。使用兩個區段會導致第一個格式套用至零和正數,並將第二個格式套用至負數。使用三個區段定義正數、負數及零時的不同格式。例如:

[NUMBER FORMAT]
[POSITIVE/ZERO FORMAT];[NEGATIVE FORMAT]
[POSITIVE FORMAT];[NEGATIVE FORMAT];[ZERO FORMAT]

不過,如果有兩個以上的區段,而最後一個部分是文字格式,系統會將該區段視為文字格式,其他部分則視為較少區段。因此,只要加入最終文字格式,您就能定義下列格式:

[POSITIVE/ZERO FORMAT];[NEGATIVE FORMAT];[TEXT FORMAT]
[NUMBER FORMAT];[TEXT FORMAT]

系統會在其他剖析作業之前將格式剖析為區段,因此可以設定日期或時間格式做為其中一個區段 (不過這並非可行的)。

數字格式權杖

下表定義了可在格式區段中使用的符記子字串,定義該區段的值的方式。

符記 說明
0 代表數字中的數字。如果數字是無意義的 0,則顯示為 0。舉例來說,數字格式 00.0 會將數字 3 轉譯為「03.0」。
# 代表數字中的數字。如果數字是無意義的 0,則不會顯示。舉例來說,數字格式 ##0 會將數字 12 轉譯為「12」。
? 代表數字中的數字。如果數字是無意義的 0,就會顯示為空格。使用固定寬度字型時,通常用於對齊資料欄中的小數點。舉例來說,數字格式 ???.??? 會將數字 12.4 轉譯為:「12.4」。
. 第一個句號代表數字中的小數點。後續的句號則會以常值的形式呈現。如果格式中包含小數點,則一律都會轉譯,即使是整數也一樣。舉例來說,#0.# 會將數字 3 轉譯為「3.」。
% 顯示為常值,但也會導致現有數字在算繪後乘以 100,以更易讀百分比顯示。舉例來說,數字格式 #% 會將數字 0.25 轉譯為「25%」。
, 如果這個值介於兩位數字元 (0#?),則會以分組分隔符 (以千分之一分組) 呈現整個數字。如果符合數字字元,這會是將數字乘以每個逗號一千個 (例如 #0.0,, 格式會將數字 12,200,000 轉譯為 12.2)。
E- 以科學格式呈現數字,同時顯示 E 左邊的格式 (用於非指數部分),以及用於指數部分 E 右側的格式。E+ 會顯示正指數的 + 符號。E- 只會顯示負指數。如果使用小寫,輸出 e 也會使用小寫。舉例來說,數字格式 ##0.00#E+## 會將數字 0.0000001 算繪為「100.00E-9」。
E+
e-
e+
/ 如果出現在二位數字元 (0#?) 之間,系統會將這些數字群組視為分數格式。舉例來說,數字格式 0 #/# 會將數字 23.25 轉譯為 23 1/4。分母也可以是常值整數,在這種情況下,系統會強制該整數做為分母。數字格式 0 #/8 會將數字 23.25 顯示為 23 2/8。如果分子變成 0,則不會顯示分數部分。數字 23.1 的 0 #/3 會顯示為 23 (因為 0.1 會四捨五入為 0/3)。/ 與科學格式或包含小數點的格式不相容。
* 此為與 Microsoft Excel 數字格式的相容性。目前忽略。
_ 底線符記會略過下一個字元,並轉譯空格。這會用來將負值以括號括住數字格式。
\ 系統會將下一個字元視為常值,而非任何可能的特殊意義。舉例來說,數字格式 \#0 會將數字 10 轉譯為「#10」。
"text" 以常值的形式顯示引號內的任何文字。
@ 如果儲存格有文字輸入,就會插入儲存格的原始文字。其與其他特殊字元不相容,不會顯示為數值 (以一般格式顯示)。
$ - + ( ) : space Google 試算表會將這些字元視為常值,並在未變更的情況下顯示。

中繼操作說明

此外,每個格式區段都可以提供選用中繼指示 (以 [] 字元括住),並在格式前面加上其他說明。中繼指示類型有兩種,指定的區段可以同時使用:

指示 說明
[condition] 以另一個條件運算式取代區段的預設正、負或零比較。例如,[<100]”Low”;[>1000]”High”;000 會在值小於 100 時轉譯「Low」(低),值超過 1000 則為「High」(高),以及三位數的數字 (開頭 0s) 表示兩者之間的任何項目。條件只能套用至前兩個子格式,如果數字與多個子格式相符,就會使用第一個相符的資料。如果還有第 3 種格式,這個格式則用於「其他所有」格式,否則如果數字與任一格式不符,就會顯示為全部「#」填滿儲存格寬度。如果存在,則一律使用第四種格式來撰寫文字。
[Color] or [Color#] 讓這個子格式轉譯顯示與特定文字顏色的任何值。Color 的有效值為黑色、藍色、青色、綠色、洋紅色、紅色、白色或黃色。Color# 中「#」的有效值為 0&ndash1;56 (這個調色盤會顯示與每個數字對應的顏色清單)。數字格式顏色會覆寫使用者在儲存格中輸入的所有顏色,但不會覆寫條件式格式設定設定的顏色。

數字格式範例

下表列出部分模式範例及對應的格式數字呈現:

編號 模式 格式化值
12345.125 ####.# 12345.1
12.34 000.0000 012.3400
12 #.0# 12.0
5 月 125 日 # ???/??? 5 1/8 吋
12000 #,### 12,000
1230000 0.0,,"M" 120 萬
1234500000 0.00e+00 1.23e+09
123114.15115
MyText
###0.000;"TEXT: "_(@_) 123114.151
文字:MyText
1234
-1234
0
MyText
[Blue]#,##0;[Red]#,##0;[Green]0.0;[Magenta]_(@_) 1,234
1,234
0.0
MyText
1005
32
527
[>1000]"HIGH";[Color43][<=200]"LOW";0000

0527