日期(&P);數字格式

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

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

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

關於日期和時間值

與大多數試算表應用程式一樣,Sheets 會將日期和時間值視為十進制值。這樣一來,您就能在公式中對這些值執行算術運算,藉此增加天數或星期、加減兩個日期和時間,以及執行其他類似作業。

試算表採用的紀元日期格式,是試算表中常用的格式。值的整數部分 (小數點左側) 會從 1899 年 12 月 30 日算起,計算天數。小數部分 (小數點右側) 會將時間計為一天的一部分。舉例來說,1900 年 1 月 1 日中午的時間是 2.52 是因為它是 1899 年 12 月 30 日後的 2 天,0.5 是因為中午是半天。1900 年 2 月 1 日下午 3 點是 33.625

Sheets 會正確將 1900 年視為平年,而非閏年。

日期和時間格式模式

日期時間格式模式是符號子字串的字串,在剖析時會替換為對應的日期時間元素 (例如月份或小時)。

日期和時間格式符記

下表定義了可用於日期/時間格式模式的符記子字串。+ 字元表示前一個字元可出現一或多次,仍可與模式相符。下表未列出的字元會視為常值,並以原樣輸出。

權杖 說明
h 時段。根據字串中是否有上午或下午指標,切換 12 小時制和 24 小時制。
hh+ 與前述相同,但 1-9 會加上開頭 0。
m 如果前一個非字面值符記是小時,或後一個符記是秒,則代表小時中的分鐘 (不含開頭的 0)。否則,它會以數字表示年份中的月份 (不含前置零)。
M 月份,不含前置 0。使用這個符記,在模式中明確指出月份,而非分鐘。
mm m 相同,但兩種情況都會在開頭加上 0。
MM 以 0 開頭的月份。使用這個符記,在模式中明確指出月份,而非分鐘。
mmm 三個字母的月份縮寫 (例如「Feb」)。
mmmm 完整的月份名稱。mmmmmm+ 也符合這個情況。
mmmmm 月份的首字母 (例如 6 月的「J」)。
s 一分鐘內的秒數,前方不加 0。
ss 一分鐘內的第幾秒,前方加 0。
[h+] 一段時間內經過的實際小時數。字母數量代表數字數下限 (會加上開頭的 0)。
[m+] 一段時間內經過的分鐘數。字母數量代表數字數下限 (會加上開頭的 0)。
[s+] 時間長度內經過的秒數。字母數量代表數字數下限 (會加上開頭的 0)。
d 每月日期,數字前不加上零 (0),小於 10 的數字除外。
dd 每月日期,數字前方加 0,如果數字小於 10,則會加上 0。
ddd 星期幾,三個字母縮寫 (例如「Mon」)。
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." 下午 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,系統就不會算繪分數部分。使用數字格式 0 #/3 的 23.1 會顯示為 23 (因為 0.1 會四捨五入為 0/3)。/ 與科學格式或含有小數點的格式不相容。
* 這項功能是為了與 Microsoft Excel 數字格式相容。目前會遭到忽略。
_ 底線符號會略過下一個字元,並顯示空格。這可用於將負值括在括號內的數字格式對齊。
\ 將下一個字元視為常值,而非可能具有的任何特殊意義。舉例來說,數字格式 \#0 會將 10 顯示為「#10」。
"text" 會將引號內的文字顯示為文字常值。
@ 如果儲存格有文字輸入,則會為儲存格插入原始文字。不相容於任何其他特殊字元,且不會顯示數值 (會以一般格式顯示)。
$ - + ( ) : space Sheets 會將這些字元視為文字常值,並以原樣顯示。

中繼指示

此外,每個格式區段都可以有選用的中繼指示,這些指示會以 [] 字元包圍,並在格式之前提供額外指示。元指令類型有兩種,且指定的區段可同時使用這兩種:

操作說明 說明
[condition] 將該區段的預設正、負或零比較值,替換為其他條件式運算式。舉例來說,[<100]”Low”;[>1000]”High”;000 會將值低於 100 的值顯示為「Low」,值高於 1000 的值顯示為「High」,而介於兩者之間的值則會顯示為三位數 (開頭為 0)。條件只能套用至前兩個子格式,如果某個數字與多個子格式相符,系統會使用相符的第一個子格式。如果有第三種格式,則會用於「其他所有」格式;否則,如果數字不符合任何格式,則會以所有「#」填滿儲存格寬度的方式顯示。如果存在,系統一律會使用第四種格式顯示文字。
[Color] or [Color#] 讓這個子格式算繪的任何值以指定的文字顏色顯示。Color 的有效值為黑色、藍色、青色、綠色、洋紅色、紅色、白色或黃色。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 較多
較少
0527