朝から昼寝

整理しておきたいIT関連の小ネタ

Excelのデフォルト日付形式をYYYY-MM-DDにする(ISO8601)

概要

身の回りの資料に記載する日付を、なるべくISO8601に沿って"YYYY-MM-DD"に統一しておこうと思い、調べていたときのことです(参考:Wikipedia)。よく使うツールの1つであるExcelでは、デフォルトの日付の表示形式が"YYYY/MM/DD"(月や日の0埋め無し)であり、これを"YYYY-MM-DD"に修正するには少し変わった工夫が必要でした。
本記事は、日本語環境のWindows上で使用するExcelのデフォルト日付形式を"YYYY-MM-DD"にする方法について記載します。環境は、日本語版Windows 10上のExcel 2016/2019ですが、以降のバージョンでも同様の動作になると思われます。WebブラウザExcelは対象外になるかもしれません。
なお、ISO8601は、日付だけでなく時刻の表示形式も定めていますが、本記事では日付について記載します。時刻についての設定方法が分からないので解決方法を知りたいです。

本記事の目的

  • Excelで日付データを扱う際、デフォルトの表示形式を"YYYY-MM-DD"にする。

目次

基本

今回、「Excelで日付データを入力時、セルの書式設定を変更しなくても表示形式が"YYYY-MM-DD"になる方法」という観点で調べました。

YYYY-MM-DDの表示形式
YYYY-MM-DD形式

例えば、Excelではキー操作Ctrl + ;により、その日の日付を入力することができます。このCtrl + ;と確定のEnterだけで、"YYYY-MM-DD"の形式で日付入力したいということです。日付データを入力したセルの書式設定からユーザー定義にて"yyyy-mm-dd"という形式に修正すれば、個々のセルの表示形式を変更できますが、それは非効率です。

色々調べた結果、本記事で説明する設定方法は、以下の通りです。
※この方法を採用するに至った経緯は後述します。

Windows OSの地域設定の変更 + データ形式を変更する

OS設定の地域画面のうち、地域設定(Regional format)のみを"英語"にした上で、日付や時刻に関するデータ形式を変更するの設定を行うと、デフォルトの表示形式を"YYYY-MM-DD"にでき、0埋めもされるようになります。
国または地域(Region)は日本のままで大丈夫です。基本的には日付と時刻の表示形式のみを、英語にするということです(注意点など、表示形式を英語にした場合の影響については後述します)。
※また、OS設定である地域設定(Regional format)を変更しないといけなかった理由についても、後述します。

手順を記載します。

1. 最初に、OS設定の言語画面で、"英語"を追加しておきます。追加された言語は、地域設定で選択できるようになります。

"言語"の追加
"言語"の追加

"言語"を追加時のダウンロード
"言語"を追加時のダウンロード

"言語"の追加が完了
"言語"の追加が完了

2. 次に、OS設定の地域画面のうち、地域設定(Regional format)のみを"英語(米国)"にします。(試していませんがおそらく米国以外の英語でも変わらない気がします)

"地域設定"の変更
"地域設定"の変更

3. 最後に、地域画面のデータ形式を変更するで"YYYY-MM-DD"の形式を選択します。

Excelのデフォルトの時刻や日付の表示形式は、WindowsのOS設定が引き継がれます。
下記の画像にある設定箇所です。

設定 -> 時刻と言語 -> 地域
設定 -> 時刻と言語 -> 地域

"データ形式を変更する"画面(英語)
"データ形式を変更する"画面(英語)

4. 以上の設定により、Excel上の日付のデフォルト表示形式が"YYYY-MM-DD"になります。日付データを入力した際に、都度データ形式を変更する必要性はありません。

Excel上の日付のデフォルト表示形式が"YYYY-MM-DD"に
Excelの日付のデフォルト表示形式が"YYYY-MM-DD"に

詳細

(補足)時刻のAM/PM表示を24時間表示にする

本記事の方法に沿って地域設定(Regional format)を"英語"にすると、時刻の表示形式が"HH:MM AM or PM"になります。タスクバーの時計部分に表示される時刻です。
これを24時間表示のHH:MM(0埋めあり)に変更する手順を記載します。ただし、この設定は、残念ながらExcelで時刻を入力した際のデフォルトの表示形式には反映されません(解決策ががあったら知りたいです)。

1. OS設定の地域画面で"日付、時刻、地域の追加設定"を選択します。

日付、時刻、地域の追加設定
日付、時刻、地域の追加設定

2. 時計と地域画面で"日付、時刻、数値形式の変更"を選択します。

日付、時刻、数値形式の変更
日付、時刻、数値形式の変更

3. 地域画面で"追加の設定"ボタンを選択します。

"追加の設定"ボタン
"追加の設定"ボタン

4. 形式のカスタマイズ画面の時刻タブにて、時刻(短い形式)が"h:mm tt"になっているので、これを"HH:mm"に変更します。

"時刻(短い形式)"の変更
"時刻(短い形式)"の変更

この設定により、タスクバーに表示される時刻がHH:MM(0埋めあり)の形式になります。

書式は、画像にある"表記の意味"の通りです。

  • "h"を"HH"に変更:12時間表示を24時間表示(0埋めあり)に変更
  • "tt"を削除:午前または午後を削除

書式の詳細については後述します。

5. (参考)形式のカスタマイズ画面の日付タブでは、日付の短い形式が"yyyy-MM-dd"になっていることが確認できます。

日付の"短い形式"
日付の"短い形式"

補足として、"yyyy-MM-dd"のように小文字と大文字が混ざった書式になっています。 この書式の詳細については後述します。

Windows OSのカスタム日時形式文字列の書式

形式のカスタマイズ画面で指定できる書式は、Microsoftのdocs、カスタム日時形式文字列に説明があります。

.Netのdocsですが、"yyyy-MM-dd"のように小文字と大文字が混ざった書式についての仕様を確認できます。

地域設定を"英語"に変更する影響

地域設定(Regional format)のみを"英語"にした場合、日付、時刻の表示形式が変わります。
もちろん表示形式が変わると困る方にはお勧めできませんが、実際には日付の曜日表記が英語に変わるくらいで(月曜日→Monday等)、残りは数字データなので変わりません。あとは午前/午後がAM/PMに変わったりします。こういった差異に抵抗が無ければ、大丈夫かと思います。

その他、マイナーな影響としては、アプリケーションによっては表示言語の切り替えが、OS設定の国または地域(Region)でなく、地域設定(Regional format)に連動してしまうものもあるようです(これは、そのアプリの方が修正されて欲しいです)。
例えば、"7-Zip"というアプリでは、地域設定(Regional format)が"英語"の場合に、表示言語が英語になるようです(これは、7-Zip内の言語設定を手動で日本語にすることで元に戻せます)。

このように、従来との動作が多少変わることがありますが、普段の業務で多少英語に慣れている方であれば問題無い範囲かと思います。

Excelのデフォルト表示形式を変更する方法の選択肢

前述の設定方法を採用するに至った経緯を記載します。

調べてみたところ、Excelのデフォルト表示形式を変更するには、以下のような設定方法があります。

  • Excelのテンプレートの利用 (不採用)
  • Windows OSのデータ形式を変更する (惜しいけど不採用)
  • Windows OSの地域設定の変更 + データ形式を変更する (本記事で紹介した内容)

順に説明します。

Excelのテンプレートの利用 (不採用)

目的の表示形式等を設定したExcelファイルをテンプレートとして保存し、それをもとにブックを作成する方法です。
テンプレートによる書式設定は、そのテンプレートをもとに新規作成するExcelファイルにしか適用できないため、これは不採用です。

Windows OSのデータ形式を変更する (惜しいけど不採用)

Excelのデフォルトの時刻や日付の表示形式は、WindowsのOS設定が引き継がれます。
下記の画像にある設定箇所です。

設定 -> 時刻と言語 -> 地域
設定 -> 時刻と言語 -> 地域
"データ形式を変更する"画面
"データ形式を変更する"画面

上記の日付(短い形式)で指定した形式が、Excelで日付データを入力したときのデフォルトの表示形式になります。
しかし、この設定を上記のように"yyyy-MM-dd"に変更しても、Excel上ではなぜか月や日の0埋めがされません。つまり、8月は"08"でなく"8"が、2日は"02"でなく"2"が表示されてしまいます。

08でなく8に、02でなく2になる
08でなく8に、02でなく2になる

このように、OS側で指定した日付(短い形式)のMMやddが、Excel短い日付形式に反映される際、0が消えてしまいます。
一方で、OS側で指定した日付(長い形式)の方でMMやddを指定すると、Excel長い日付形式に反映される際、0は消えないようです。
しかし、Excelの日付データはデフォルトで短い日付形式で表示されるので、やはり短い日付形式がうまく反映されるようにしたいです。

この、月や日が0埋めされない事象は、Windows OS側の地域設定(Regional format)が"英語"以外の場合に発生するようです。
Excelローカライズに関する仕様かと思われます(不思議な動作ですが、Microsoft製品のこの手の動作は修正されないでしょう)。

この動作を踏まえて検討した設定方法が次です。

Windows OSの地域設定の変更 + データ形式を変更する

OS設定の変更は避けたかったですが、月や日が0埋めされない事象を回避するため、やむを得ず採用しました。 設定手順は前述の通りです。

参考URL等