• 作成日 : 2025年10月27日

スプレッドシートの日付表示とは?表示形式の種類から変更方法、エラー解決まで解説

Googleスプレッドシートで日付を適切に表示することは、見やすい資料作成やデータ管理の基本です。和暦・西暦の切り替え、曜日の追加、月日のみの表示など、用途に応じた日付表示形式を使いこなすことで、プロフェッショナルな文書を効率的に作成できます。しかし、日付が数値で表示される、文字列として認識される、地域設定による表示の違いなど、様々な表示問題に直面することがあります。

本記事では、スプレッドシートの日付表示について、標準的な表示形式の種類、カスタマイズ方法、表示がおかしい場合のトラブルシューティングまで、実例を交えながら詳しく解説します。

スプレッドシートの日付表示にはどんな種類がある?

スプレッドシートの日付表示形式には、標準的な年月日表示、曜日付き表示、時刻を含む表示、各種カスタム形式などがあり、用途に応じて選択できます。和暦(元号)表示は標準メニューにはなく、TEXT 関数や自作の変換式で対応します。 例:=TEXT(A1,”yyyy年m月d日”) を基に、IF/IFS で元号を付与する。

適切な日付表示形式を選ぶことで、データの可読性が大幅に向上し、業務効率が改善されます。

標準的な日付表示形式

Googleスプレッドシートには、多様な標準日付形式が用意されています。最も一般的な形式は「2024/04/15」のようなスラッシュ区切りですが、業務やレポートの種類によって適切な形式は異なります。

主要な標準形式として、「2024/04/15」の年月日スラッシュ形式、「2024-04-15」のハイフン形式、「2024年4月15日」の日本語表記、「15-Apr-2024」の英語月名表記、「April 15, 2024」の英語フル表記などがあります。これらは「表示形式」メニューから簡単に選択できます。

日付を入力すると、スプレッドシートは自動的に日付として認識し、デフォルトの表示形式を適用します。この自動認識は、地域設定に基づいて行われるため、日本の設定では「年/月/日」の順序が標準となります。

曜日を含む日付表示

曜日を含む表示形式は、スケジュール管理や予定表作成で重要な役割を果たします。標準的な曜日表示には複数のバリエーションがあります。

「2024/04/15 (月)」のような括弧付き曜日、「2024年4月15日 月曜日」の完全な日本語表記、「Mon, Apr 15, 2024」の英語省略形、「Monday, April 15, 2024」の英語完全形などが利用可能です。

曜日の表示は、TEXT関数を使用してカスタマイズすることも可能です。

=TEXT(A1, “yyyy/mm/dd (ddd)”)  // 2024/04/15 (月)

=TEXT(A1, “yyyy年m月d日 dddd”)   // 2024年4月15日 月曜日

曜日のみを別セルに表示したい場合は:

=TEXT(A1, “dddd”)  // 月曜日

=TEXT(A1, “ddd”)   // 月

時刻を含む日付時刻表示

タイムスタンプや作業記録など、時刻情報も含めた表示が必要な場合があります。日付時刻の組み合わせ表示には、様々なパターンが用意されています。

代表的な日付時刻表示形式
  • 2024/04/15 14:30:00 – 完全な日時表示
  • 2024/04/15 14:30 – 秒を省略した表示
  • 2024/04/15 2:30 PM – 12時間制表示
  • 15-Apr-2024 14:30 – 英語月名と時刻
  • 2024年4月15日 午後2時30分 – 日本語完全表記

NOW関数やTODAY関数と組み合わせることで、現在の日時を動的に表示できます。

=NOW()    // 現在の日時

=TODAY()  // 今日の日付(時刻なし)

和暦表示と特殊な形式

和暦(元号)表示が必要な場合、Google スプレッドシートでは 標準の表示形式では対応していないため、関数や Apps Script で実装します。

例:セル A1 の日付を和暦に整形する簡易例(令和/平成/昭和のみ対応)

=IFS(

A1>=DATE(2019,5,1),”令和”&IF(YEAR(A1)-2018=1,”元”,YEAR(A1)-2018)&”年”&TEXT(A1,”m月d日”),

A1>=DATE(1989,1,8),”平成”&IF(YEAR(A1)-1988=1,”元”,YEAR(A1)-1988)&”年”&TEXT(A1,”m月d日”),

A1>=DATE(1926,12,25),”昭和”&IF(YEAR(A1)-1925=1,”元”,YEAR(A1)-1925)&”年”&TEXT(A1,”m月d日”))

より厳密には Apps Script で

new Intl.DateTimeFormat(“ja-JP-u-ca-japanese”,{era:”long”,year:”numeric”,month:”long”,day:”numeric”}).format(date)

のロジックを使う方法が実務的です。

※そのほかの記述(NOW/TODAY、12時間制・秒あり/なし・英語月名などの日時表示パターン)は Sheets の標準機能の範囲で妥当です。詳細な設定手順は [表示形式] → [数字] → [カスタム日時] から行います。

国際的な日付表示形式

グローバルなビジネスでは、各国の日付表示慣習を理解することが重要です。アメリカ式の「MM/DD/YYYY」、ヨーロッパ式の「DD/MM/YYYY」、ISO 8601形式の「YYYY-MM-DD」など、地域によって標準が異なります。

ISO 8601形式は、国際的なデータ交換で推奨される形式で、並べ替えやプログラム処理に最適です。この形式を使用することで、地域設定に関わらず一貫した表示と処理が可能になります。

スプレッドシートで日付の表示形式を変更する方法は?

日付の表示形式変更は、表示形式メニューからの選択、カスタム数値形式の設定、TEXT関数での変換、スクリプトでの自動化という4つの方法があり、要件に応じて最適な方法を選択できます。

表示形式の変更により、同じ日付データを様々な形式で表現でき、用途に応じた最適な表示が可能になります。

表示形式メニューからの基本的な変更

最も簡単な表示形式の変更方法は、メニューバーの「表示形式」を使用することです。まず、変更したいセルまたは範囲を選択し、「表示形式」→「数値」→「日付」を選択します。さらに詳細な設定が必要な場合は、「表示形式」→「数値」→「その他の日付と時刻の形式」を選択します。

表示形式ダイアログでは、プレビューを見ながら形式を選択できます。上部のドロップダウンから基本形式を選び、必要に応じて要素を追加または削除できます。例えば、年を4桁から2桁に変更したり、曜日を追加したりすることが可能です。

一度設定した表示形式は、フォーマットペインター(ペンキブラシアイコン)を使用して他のセルにコピーできます。これにより、大量のセルに同じ表示形式を効率的に適用できます。

カスタム数値形式での詳細設定

より細かい制御が必要な場合は、「表示形式」→「数値」→「カスタム日付と時刻」を開き、トークン(yyyy/yy、mmmm/mmm/mm/m、dddd/ddd、HH/hh、ss、AM/PM 等)を組み合わせて作成します。

主要な形式コード
  • yyyy: 4桁の年(2024)
  • yy: 2桁の年(24)
  • mmmm: 月の完全名(April)
  • mmm: 月の省略名(Apr)
  • mm: 2桁の月(04)
  • m: 月(4)
  • dd: 2桁の日(15)
  • d: 日(15)
  • dddd: 曜日の完全名(Monday)
  • ddd: 曜日の省略名(Mon)

複雑なカスタム形式の例:

yyyy”年”m”月”d”日” “(“ddd”)”     // 2024年4月15日 (月)

m”/”d                             // 4/15

yyyy-mm-dd HH:mm:ss // 2024-04-15 14:30:00

mmm d, yyyy                       // Apr 15, 2024

値に応じて見た目を変える場合は、表示形式ではなく[条件付き書式]を使います(表示形式 → 条件付き書式からルールを設定)。例:今年の行だけ色付け、来年は別色、など。

=IF(YEAR(A1)=YEAR(TODAY()),”今年”,

IF(YEAR(A1)=YEAR(TODAY())-1,”昨年”,

IF(YEAR(A1)=YEAR(TODAY())+1,”来年”,””)))

TEXT関数による動的な表示形式変換

TEXT関数を使用すると、元のデータを変更せずに、別のセルに異なる形式で日付を表示できます。これは、同じ日付を複数の形式で表示したい場合や、文字列として扱いたい場合に有効です。

基本的なTEXT関数の使用法:

=TEXT(A1, “yyyy/mm/dd”)              // 2024/04/15

=TEXT(A1, “yyyy年m月d日”)             // 2024年4月15日

=TEXT(A1, “mmmm d, yyyy”)            // April 15, 2024

=TEXT(A1, “yyyy-mm-dd (dddd)”)       // 2024-04-15 (Monday)

複数の日付要素を組み合わせる例:

四半期は関数で算出:

=”第”&ROUNDUP(MONTH(A1)/3,0)&”四半期”

週番号は関数で算出:

=”Week “&WEEKNUM(A1)&” of “&TEXT(A1,”yyyy”)   // 米式週番号

=”ISO Week “&ISOWEEKNUM(A1)                    // ISO週番号

ARRAYFORMULA関数での一括変更

大量のデータに対して同じ表示形式を適用する場合、ARRAYFORMULA関数が効率的です。

=ARRAYFORMULA(TEXT(A2:A100, “yyyy/mm/dd”))

この数式により、A2からA100までのすべての日付を指定した形式で表示できます。空白セルの処理も含めた完全な例:

=ARRAYFORMULA(

IF(A2:A100=””, “”,

TEXT(A2:A100, “yyyy年m月d日 (ddd)”)))

Google Apps Scriptでの自動フォーマット

特定の条件で自動的に表示形式を変更するスクリプト:

function autoFormatDates() {

const sheet = SpreadsheetApp.getActiveSheet();

const range = sheet.getRange(‘A:A’);

const values = range.getValues();

for (let i = 0; i < values.length; i++) {

if (values[i][0] instanceof Date) {

const cell = sheet.getRange(i + 1, 1);

// 週末は異なる形式を適用

const dayOfWeek = values[i][0].getDay();

if (dayOfWeek === 0 || dayOfWeek === 6) {

cell.setNumberFormat(‘yyyy/mm/dd “【週末】”‘);

cell.setBackground(‘#FFE6E6’);

} else {

cell.setNumberFormat(‘yyyy/mm/dd (ddd)’);}}}}

スプレッドシートで日付の表示形式がおかしい時の原因は?

日付表示がおかしくなる主な原因は、文字列として認識されている、シリアル値が表示されている、地域設定の不一致、インポート時の変換エラー、数式の誤りなどがあり、それぞれ特有の症状があります。

表示問題の原因を正確に特定することが、適切な解決策を見つける第一歩となります。

日付が数値(シリアル値)で表示される問題

日付が「44927」のような5桁の数値で表示される場合、これは日付のシリアル値(1899年12月30日からの経過日数)が表示されています。表示形式を「日付」や「日付と時刻」に変更すれば、正しく表示されます。

シリアル値が表示される典型的な状況
  • CSVファイルのインポート後
  • 他のアプリケーションからのコピー&ペースト
  • 数式の結果が日付形式として認識されない
  • 表示形式がクリアされた場合
  • IMPORTRANGE関数での取得時

確認方法として、問題のセルを選択し、数式バーで実際の値を確認します。日付として正しい値が入力されているのに数値で表示される場合は、単純に表示形式の問題です。

文字列として保存された日付の問題

日付が文字列として保存されていると、表示形式を変更しても反映されません。文字列として認識されている日付は、左揃えで表示され、セルの左上に緑の三角マークが表示されることがあります。

文字列日付の典型的な特徴と原因
  • アポストロフィ(’)で始まる入力
  • CONCATENATE関数やTEXT関数の結果
  • スペースや特殊文字が含まれている
  • 不適切な形式でのインポート
  • コピー元のセルが文字列形式

この問題を確認するには、ISTEXT関数を使用します。

=ISTEXT(A1)  // TRUEなら文字列、FALSEなら日付

地域設定による表示の違い

スプレッドシートの地域設定により、同じ日付でも表示や解釈が異なることがあります。例えば、「01/02/2024」は、アメリカ設定では1月2日、ヨーロッパ設定では2月1日と解釈されます。

地域設定の影響を受ける要素
  • 日付の順序(月/日/年 vs 日/月/年)
  • 区切り文字(スラッシュ vs ピリオド)
  • 月名の言語(January vs 1月)
  • 週の開始日(日曜 vs 月曜)
  • 日付関数のデフォルト動作

現在の地域設定は、「ファイル」→「設定」→「全般」タブで確認できます。複数のユーザーが異なる地域設定で同じファイルを編集する場合、表示の不一致が発生する可能性があります。

インポートとエクスポート時の変換問題

CSVファイルやExcelファイルをインポートする際、日付の変換で問題が発生することがあります。特に、異なるアプリケーション間でのデータ移動時に注意が必要です。

インポート時の一般的な問題:

元データ: 2024-04-15

インポート後: 2024/04/15 0:00:00  // 不要な時刻が追加

または

インポート後: 4/15/2024  // 形式が変更

または

インポート後: “2024-04-15”  // 文字列として認識

数式と関数による表示エラー

日付を扱う数式や関数の誤りにより、期待しない表示になることがあります。よくある数式のエラーパターンを理解することで、問題を迅速に解決できます。

一般的な数式エラー:

=A1+B1  // 日付+日付 = 意味のない数値

=TODAY+7  // 括弧忘れ、TODAY()が正しい

=DATE(24,4,15)  // 年が2桁、DATE(2024,4,15)が正しい

=TEXT(A1, yyyy/mm/dd)  // 引用符忘れ、”yyyy/mm/dd”が正しい

日付の表示形式を修正する解決方法は?

日付表示の問題を解決するには、DATEVALUE関数での変換、表示形式の再設定、データの再入力、検索と置換の活用など、問題の種類に応じた適切な方法を選択することが重要です。

体系的なトラブルシューティングにより、ほとんどの表示問題を解決できます。

シリアル値から日付表示への変換

数値(シリアル値)で表示されている日付を正しい形式に変換する最も簡単な方法は、表示形式を変更することです。

即座に修正する手順
  1. セル/範囲を選択
  2. メニュー[表示形式]
  3. [数値]→[日付] を選択(必要に応じて [カスタム日付と時刻])。

ショートカットを使用した方法:

Ctrl+Shift+3:日付に設定

Ctrl+Shift+2:時刻に設定/Ctrl+Shift+4:通貨/Ctrl+Shift+5:パーセント など。

複数セルに一括適用する例(シリアル値→日付):

=ARRAYFORMULA(TO_DATE(A2:A100))

※ TO_DATE はシリアル値を“1899-12-30 起点”で日付に変換します。

文字列を日付に変換する方法

文字列として保存された日付を正しい日付形式に変換するには、いくつかの方法があります。

DATEVALUE関数を使用した変換:

=DATEVALUE(A1)

ただし、DATEVALUE関数は特定の形式しか認識しないため、前処理が必要な場合があります:

=DATEVALUE(SUBSTITUTE(A1, “.”, “/”))  // ピリオドをスラッシュに置換

=DATEVALUE(TRIM(A1))  // 前後の空白を削除

より複雑な形式の変換:

// “2024年4月15日”を日付に変換

=DATE(

VALUE(LEFT(A1, 4)),

VALUE(MID(A1, 6, SEARCH(“月”, A1) – 6)),

VALUE(MID(A1, SEARCH(“月”, A1) + 1, SEARCH(“日”, A1) – SEARCH(“月”, A1) – 1)))

一括変換と検索置換の活用

大量のデータを効率的に修正する方法

検索と置換での一括修正手順
  • Ctrl+H で検索と置換ダイアログを開く
  • 正規表現を有効にする
  • 不適切な形式を適切な形式に置換
  • 「すべて置換」をクリック
  • 結果を確認

正規表現を使用した置換例:

検索: (d{4})年(d{1,2})月(d{1,2})日

置換: $1/$2/$3

データ検証での入力制限

将来的な問題を防ぐため、データ検証を設定します。

function setDateValidation() {

const sheet = SpreadsheetApp.getActiveSheet();

const range = sheet.getRange(‘A2:A1000’);

const rule = SpreadsheetApp.newDataValidation()

.requireDate()

.setAllowInvalid(false)

.setHelpText(‘日付形式で入力してください(例:2024/04/15)’)

.build();

range.setDataValidation(rule);}

補助列を使用した段階的な修正

複雑な変換が必要な場合、補助列を使用して段階的に修正します。

ステップ1:クリーニング

B列: =TRIM(CLEAN(A1))  // 不要な文字を削除

ステップ2:形式の統一

C列: =SUBSTITUTE(SUBSTITUTE(B1, “-“, “/”), “.”, “/”)  // 区切り文字を統一

ステップ3:日付への変換

C1 を確実に “年・月・日” に分解してから DATE を組み立てる方法に置き換えてください(区切りを / に統一している前提)。

案1:SPLIT を使う(読みやすい)

D列:

=LET(

parts, SPLIT(C1,”/”),

IFERROR(DATE(VALUE(INDEX(parts,1)), VALUE(INDEX(parts,2)), VALUE(INDEX(parts,3))), “”))

※ LET が使えない場合は:

=IFERROR(DATE(

VALUE(INDEX(SPLIT(C1,”/”),1)),

VALUE(INDEX(SPLIT(C1,”/”),2)),

VALUE(INDEX(SPLIT(C1,”/”),3))),””)

案2:REGEXEXTRACT を使う(厳密に4桁年を強制)

=IFERROR(

DATE(

VALUE(REGEXEXTRACT(C1,”^(d{4})”)),

VALUE(REGEXEXTRACT(C1,”/(d{1,2})/”)),

VALUE(REGEXEXTRACT(C1,”/(d{1,2})$”))),””)

※ 正規表現置換で「YYYY年M月D日 → YYYY/MM/DD」に変換した直後の値は文字列です。日付型にしたい場合は上記の DATE 組み立て、または =DATEVALUE(C1) が成功する形式(例:YYYY-MM-DD など)へ統一してから TO_DATE() や表示形式の変更を適用してください。

ステップ4:最終的な表示形式の適用

E列: =TEXT(D1, “yyyy/mm/dd”)


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事