日期(&P);數字格式

透過日期時間和數字格式,您可以控制資料在試算表中的顯示方式。Google 試算表提供了一些可選用的常見格式,但您也可以自行定義格式。

在 Google 試算表 UI 中,您可以使用「格式」>「數字」選單,將數字和日期格式套用至儲存格。在 Sheets API 中,您可以使用 spreadsheets.batchUpdate 方法呼叫,傳送 UpdateCellsRequestRepeatCellRequest 來設定這些格式。

本頁說明如何定義新的日期和數字格式模式,並納入 API 要求。範例「為範圍設定自訂日期時間或十進位格式」說明如何使用 API 設定格式模式。請注意,實際的格式呈現方式取決於試算表的 locale。本指南假設 localeen_US。您可以透過 spreadsheets.get 要求讀取 SpreadsheetProperties,判斷試算表的 locale

日期和時間值簡介

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

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+ 與上一個相同,但 1 到 9 需加上前導 0。
m 如果前一個非字面值權杖是小時,或後一個是秒數,則代表小時內的分鐘數 (不含開頭的 0)。否則,代表一年中的月份 (不含前置 0)。
M 月份,前方不加 0。在模式中明確指出月份,而非分鐘。
mm m 相同,但兩種情況都以 0 開頭。
MM 月份,前方加 0。在模式中明確指出月份,而非分鐘。
mmm 月份縮寫 (三個字母),例如「Feb」。
mmmm 完整月份名稱。mmmmmm+ 也符合這項規定。
mmmmm 月份的第一個字母 (例如 6 月的「J」)。
s 一分鐘內的第幾秒,前方不加 0。
ss 一分鐘內的第幾秒,前方加 0。
[h+] 時間範圍內經過的小時數。字母數量表示位數下限 (會新增前導零)。
[m+] 時間長度經過的分鐘數。字母數量表示位數下限 (會新增前導零)。
[s+] 時間長度經過的秒數。字母數量表示位數下限 (會新增前導零)。
d 每月第幾日,如果數字小於 10,則不加前導 0。
dd 每月第幾日,如果數字小於 10,前面會加上 0。
ddd 星期幾,三個字母的縮寫 (例如「週一」)。
dddd+ 星期幾,完整名稱。
y 以 2 位數表示的年份。
yy
yyy 4 位數年份。
yyyy+
a/p 上午顯示「a」,下午顯示「p」。也會將小時改為 12 小時制。如果權杖字母為大寫,輸出內容也會是這樣。
am/pm 與上述格式相同,但會顯示「AM」或「PM」,且一律為大寫。
0 以十分之一秒為單位。您可以使用 00 將精確度提高至兩位數,或使用 000 提高至三位數 (毫秒)。
\ 將下一個字元視為常值,而非任何特殊意義。
"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 p
hh:mm A/P".M." 下午 4: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 日星期二下午 4: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 的值顯示「低」,針對高於 1000 的值顯示「高」,並針對介於兩者之間的值顯示三位數 (開頭為 0)。條件只能套用至前兩個子格式,如果號碼符合多個子格式,系統會使用第一個相符的子格式。如果還有第三種格式,則會用於「其他所有內容」;否則,如果數字與任一格式都不相符,系統會將其顯示為填滿儲存格寬度的「#」。如果存在,系統一律會使用第四種格式顯示文字。
[Color] or [Color#] 導致這個子格式呈現的任何值,都會以指定文字顏色顯示。Color 的有效值為 Black、Blue、Cyan、Green、Magenta、Red、White 或 Yellow。Color# 中的「#」有效值為 1 至 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
TEXT: 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 HIGH
LOW
0527