日付と数値の形式

日付 / 時刻と数値の表示形式を使用すると、シートに表示されるデータの外観を制御できます。Google スプレッドシートでは、いくつかの一般的な表示形式を選択できますが、独自の表示形式を定義することもできます。

スプレッドシートの UI で、[表示形式] > [数字] メニューを使用して、数値と日付の表示形式をセルに適用します。Sheets API では、spreadsheets.batchUpdate メソッド呼び出しを使用して UpdateCellsRequest または RepeatCellRequest を送信することにより、これらの形式を設定できます。

このページでは、API リクエストに含めることができる新しい日付と数値の表示形式パターンを定義する方法について説明します。サンプルの範囲に対してカスタムの日時または数値の表示形式を設定するでは、API を使用して表示形式パターンを設定する方法を示しています。形式の実際のレンダリングは、スプレッドシートの locale によって異なります。このガイドでは、localeen_US であることを前提としています。スプレッドシートの locale は、spreadsheets.get リクエストで SpreadsheetProperties を読み取ることで確認できます。

日付と時刻の値について

スプレッドシートでは、他のほとんどのスプレッドシート アプリケーションと同様に、日付と時刻の値が 10 進数として処理されます。そのため、スプレッドシートで式による日付 / 時刻の計算が可能です。つまり、日や週を増分したり、2 つの日付 / 時刻を加減算したり、その他の同様の操作を実行できます。

スプレッドシートでは、スプレッドシートで一般的に使用されるエポック日付の形式が使用されます。値の整数部(小数点の左側)は、1899 年 12 月 30 日からの経過日数を示します。小数部(小数点の右側)は、時刻を 1 日の端数として表します。たとえば、1900 年 1 月 1 日正午は 2.5 です。1899 年 12 月 30 日の 2 日後なので 2、正午は 1 日の半分なので 0.5 です。1900 年 2 月 1 日午後 3 時は 33.625 です。

スプレッドシートでは、1900 年をうるう年としてではなく、通常の年として正しく処理しています。

日付と時刻の表示形式パターン

日付と時刻の表示形式パターンとは、トークン部分文字列の文字列のことです。この部分文字列は解析されたときに、対応する日付と時刻の要素(月や時など)に置き換えられます。

日付と時刻の形式トークン

次の表は、日付と時刻の表示形式パターンで使用できるトークン部分文字列の定義を示しています。+ 記号は、前の文字が 1 回以上出現する可能性があり、引き続きパターンに一致していることを示します。以下の表に含まれていない文字はリテラルとして処理され、変更されずに出力されます。

トークン 説明
h 時間帯。文字列に AM または PM インジケーターが存在するかどうかに応じて、12 時間形式と 24 時間形式を切り替えます。
hh+ 前のトークンと同じですが、1 ~ 9 の前に 0 が付きます。
m 前の非リテラル トークンが時の場合、または次のトークンが秒の場合は、時刻の分(前に 0 は付きません)。そうでない場合は、月を数値で表します(先頭にゼロは付きません)。
M 先頭にゼロを付けない月。このトークンを使用すると、パターンで分ではなく月を明示的に指定できます。
mm m と同じですが、分と月のどちらも前に 0 が付きます。
MM 先頭に 0 が付いた月。このトークンを使用すると、パターンで分ではなく月を明示的に指定できます。
mmm 3 文字の月の略語(例: Feb)。
mmmm 月の正式名称。mmmmmm+ もこれと同じです。
mmmmm 月の最初の文字(例: 6 月は「J」)。
s 時刻の秒。先頭にゼロは付けません。
ss 秒(先頭ゼロ)。
[h+] 時間単位の経過時間。文字の数は最小桁数を示します(先行する 0 を追加します)。
[m+] 期間の経過時間(分単位)。文字の数は最小桁数を示します(先行する 0 を追加します)。
[s+] 期間の経過秒数。文字の数は最小桁数を示します(先行する 0 を追加します)。
d 日。10 未満の数字の前に 0 を付けません。
dd 日。10 未満の数字の前に 0 を付けます。
ddd 曜日の 3 文字の省略形(例: Mon)。
dddd+ 曜日(フルネーム)。
y 2 桁の年。
yy
yyy 4 桁の年。
yyyy+
a/p AM の場合は「a」、PM の場合は「p」を表示します。また、時刻を 12 時間形式に変更します。トークンの文字が大文字になっている場合は、出力も同様に大文字になります。
am/pm 上記と同じですが、代わりに "AM" または "PM" を表示し、常に大文字になります。
0 1/10 秒。00 を使用して精度を 2 桁に、または 000 を使用して精度を 3 桁(ミリ秒)に上げることができます。
\ 次の文字をリテラル値として処理し、特別な意味を適用しないようにします。
"text" 引用符内にあるテキストをリテラルとして表示します。

日付と時刻の形式の例

日付と時刻が Tuesday, April 5, 2016, 4:08:53.528 PM である場合のパターン例と、対応する日付と時刻のレンダリングを次の表に示します。表の 2 番目のセクションは、経過時間の表示形式が 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 時 8 分
yyyy-mm-dd 2016-04-05
mmmm d \[dddd\] 4 月 5 日 [火曜日]
h PM, ddd mmm dd 4 PM, Tue Apr 05
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

数値の表示形式パターン

数値の表示形式パターンとは、トークン部分文字列の文字列のことです。この部分文字列は解析されたときに、対応する数値表記に置き換えられます。数値の表示形式パターンは、セミコロンで区切られた最大 4 つのセクションで構成されます。これらのセクションは、正数、負数、ゼロ、およびテキスト用に使用される(この順番で)別々の表示形式を定義しています。

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

表示形式に 4 つすべてのセクションを含める必要はありません。セクションを 1 つだけ含めた場合、その表示形式はすべての値に対して使用されます。セクションを 2 つ使用すると、最初の表示形式がゼロと正数に適用され、2 番目の表示形式が負数に適用されます。セクションを 3 つ使用すると、正数、負数、ゼロに対して別々の表示形式が定義されます。次に例を示します。

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

ただし、2 つ以上のセクションがあり、最後のセクションがテキスト形式である場合、そのセクションはテキスト形式として処理され、その他のセクションは、セクションが 1 つ少ないと見なして機能します。したがって、最後にテキスト形式を含めると、次のような表示形式を定義できます。

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

セクションの表示形式の解析はその他の解析の前に実行されるため、日付または時刻の表示形式をセクションの 1 つとして含めることができます(ただし、この効果は限定的です)。

数値の表示形式トークン

次の表は、セクションで値を表す方法を定義する際に、表示形式のセクションで使用できるトークン部分文字列の定義を示しています。

トークン 説明
0 数値の桁を表します。桁が意味のない 0 である場合、その桁は 0 としてレンダリングされます。たとえば、数値の表示形式 00.0 は、数値 3 を「03.0」とレンダリングします。
# 数値の桁を表します。桁が意味のない 0 である場合、その桁はレンダリングされません。たとえば、数値の表示形式 ##0 は、数値 12 を「12」とレンダリングします。
? 数値の桁を表します。桁が意味のない 0 である場合、その桁はスペースとしてレンダリングされます。多くの場合、このトークンは、列で固定幅のフォントを使用するときに小数点を揃えるために使用されます。たとえば、数値の表示形式 ???.??? は、数値 12.4 を「12.4」とレンダリングします。
. 最初のピリオドは数値の小数点を表します。2 番目のピリオドはリテラルとしてレンダリングされます。表示形式に小数点を含めると、整数の場合でも小数点は常にレンダリングされます。たとえば、#0.# は数値 3 を「3.」としてレンダリングします。
% リテラルとして表示されますが、パーセンテージを読みやすくするために、レンダリングの前に元の数値に 100 を掛けます。たとえば、数値の表示形式 #% は、数値 0.25 を「25%」とレンダリングします。
, 2 桁の文字(0#?)の間にある場合は、桁区切り記号(3 桁ごとに区切る)が付いた数値全体をレンダリングします。コンマが数字の後に続く場合は、コンマ 1 つにつき数字が千単位になります(たとえば、表示形式 #0.0,, は、数値 12,200,000 を 12.2 とレンダリングします)。
E- 数値を指数形式でレンダリングします。E の左側の形式は指数以外の部分に、E の右側の形式は指数の部分に使用されます。E+ は、正の指数に + 記号を表示します。E- は、負の指数にのみ記号を表示します。小文字を使用した場合、出力 e も小文字になります。たとえば、数値の表示形式 ##0.00#E+## は、数値 0.0000001 を「100.00E-9」とレンダリングします。
E+
e-
e+
/ 2 桁の文字(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 これらの文字はリテラルとして扱われ、変更されずに表示されます。

メタ指示

また、各形式セクションには、[] 文字で囲まれたオプションのメタ指示を追加できます。メタ指示は形式の前に配置され、追加の指示を提供します。メタ指示のタイプは 2 つあり、任意のセクションで両方の指示を使用できます。

手順 説明
[condition] セクションのデフォルトの正数、負数、またはゼロの比較を別の条件式に置き換えます。たとえば、[<100]”Low”;[>1000]”High”;000 は、値が 100 未満の場合は単語の「Low」、値が 1000 を超える場合は単語の「High」、値が 100 ~ 1000 の場合は 3 桁の数値(先頭に 0 が付いた)をレンダリングします。条件は最初の 2 つのサブ表示形式のみに適用され、数値が複数の形式に一致する場合、一致する最初の形式を使用します。3 番目の形式がある場合は、「その他すべて」に使用されます。また、数値がどの形式にも一致しない場合、数字はすべて「#」とレンダリングされ、セルの幅いっぱいに表示されます。4 番目の形式が存在する場合は、常にテキストに使用されます。
[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

0527