Excel

TEXT関数とDAY関数の比較:Excelカレンダー作成に活用する方法TEXT、DAY関数

 デスクトップ版Excelでは、セルの書式設定を変更することで日付だけを表示することが可能です。しかし、Excel for the Webでは既存のカスタム形式しか使用できないため、日付部分のみを取得・表示させるには TEXT関数DAY関数を活用する必要があります。
それぞれの特徴を比較しながら、どのように活用できるかを解説します。

ポイント

関数:「TEXT」「DAY」「ISNUMBER」「VALUE」

TEXT関数

  • 用途: 日付や数値を指定した書式に変換する
  • 書式: TEXT(値, "書式")
  • : =TEXT(A1, "dddd") → A1の日付を曜日に変換(例:「Sunday」)
  • カレンダーでの活用: 日付を「月/日」や「曜日」などの形式で表示する

DAY関数

  • 用途: 日付から「日」部分を抽出する
  • 書式: DAY(シリアル値)
  • : =DAY(A1) → A1の日付が「2025/05/18」の場合、「18」を返す
  • カレンダーでの活用: 各セルに日付を入力し、DAY関数で「日」部分を抽出してカレンダーの枠組みを作る

比較

関数目的使い方カレンダーでの活用
TEXT書式変更TEXT(A1, "yyyy/mm/dd")曜日や月日を表示
DAY日付の抽出DAY(A1)日付の「日」部分を取得
関数目的返す値計算への適用性
TEXT書式設定文字列計算には不向き
DAY日付の抽出数値計算に適している

 TEXT関数は見た目を整えるのに適しており、DAY関数は日付データを処理するのに便利です。カレンダー作成では、TEXT関数で曜日を表示し、DAY関数で日付を抽出することで、より見やすいカレンダーを作成できます。

表1

Excelでの日付計算とTEXT関数・DAY関数の影響

 Excelでは、セル内の値を数式や関数を用いて操作することができます。しかし、日付データを処理する際には注意が必要です。

表の内容について

 表1は、セルA1の値をもとに以下の方法で表示した結果を示しています。

  • 2行目:「=」を使い、A1の値をそのまま表示
    例)B2セル「=A1」、C2セル「=B2+1」、D2セル「=C2+1」
  • 5行目:TEXT関数を使用 (TEXT(A1, "d"))
  • 6行目:DAY関数を使用 (DAY(A1))
  • C列~G列:順番に+1していった結果

日付計算の注意点

  • F列(31日)・G列(32日)
    数値として扱われるため、単純に+1ずつ加算されることで「31日」「32日」という結果が出ています。
  • 実際には存在しない日付(4/31や4/32)
    Excelは数値計算を優先するため、日付データとして入力された値に+1を繰り返してしまうと、存在しない日付(例:4月31日、4月32日)もそのまま計算結果として表示されます。

対策方法

 このような誤った日付を防ぐためには、日付として扱うセルの書式を適切に設定することが重要です。
また、IF関数やEOMONTH関数を活用することで、月ごとの日数を考慮した計算ができます。

=IF(DAY(B8+1)>DAY(EOMONTH(B8,0)), "", B8+1)

この式を使うと、月末を超える日付の表示を防ぐことが可能です。

EOMONTH関数の使い方と活用例

EOMONTH関数は、Excelで特定の日付から「指定した月数後の月末日」を求めるための関数です。経理業務やスケジュール管理など、月末の日付を簡単に計算したい場合に非常に便利です。

関数の構文

EOMONTH(開始日, 月数)
  • 開始日: 基準となる日付(セル参照や日付の直接入力が可能)
  • 月数: 基準日から何か月後(または前)の月末を取得するか

使用例

  1. 当月の月末を取得 =EOMONTH(A1, 0) → A1に入力された日付の「当月末日」を求めます。
  2. 翌月の月末を取得 =EOMONTH(A1, 1) → A1の基準日から「1か月後の月末日」を取得。
  3. 過去の月末を取得 =EOMONTH(A1, -2) → A1の基準日から「2か月前の月末日」を取得。

 Excelで日付を扱う際は、数値として認識される場合に注意し、適切な関数を使用して正しい結果を表示することが重要です。

Excelのセルのデフォルトの配置ルールについて

 Excelでは、入力されたデータの種類によってセルのデフォルトの配置が決まります。表1B5セル、B6セルに注目してください

基本ルール

  • 文字列(テキスト)左寄せ
  • 数値(数字や日付)右寄せ

 この仕様により、Excelは自動的にセル内のデータを適切な形式で表示します。ただし、セルの書式設定を変更することで、文字列を右寄せにしたり、数値を左寄せにすることも可能です。

書式設定による変更方法

 セルの配置を変更するには、以下の方法を活用できます:

  • 文字列を右寄せする → セルの書式設定から「配置」を変更
  • 数値を左寄せする → 同様に「配置」を変更
  • TEXT関数で数値を文字列化=TEXT(A1, "yyyy/mm/dd") を使用すると、日付を文字列として扱い、結果は左寄せに

TEXT関数とセルの配置の関係

 例えば、セルA1に「2025/05/18」の日付が入力されている場合:

=TEXT(A1, "yyyy/mm/dd")

 この数式を使うと、セル内のデータが文字列化され、左寄せで表示されます。

 逆に、数値として扱いたい場合は、セルの書式設定を数値に変更することで右寄せにできます。

 Excelではセルのデフォルトの配置ルールが決まっているものの、書式設定やTEXT関数を活用することで、自由に表示を調整できます。カスタマイズ次第で、データの見やすさを向上させることが可能です。

Excelの数値認識と計算の注意点

 Excelでは、セルの値の種類によって計算結果が変わることがあります。特に、文字列として入力されたデータに対して計算を行う場合、意図しない結果になることがあるため注意が必要です。

B5セルの値(文字列)とC5セルの計算結果

  • B5セルの値が文字列であるにもかかわらず、C5セルで「+1」した結果が数値として認識されている
  • この現象は、Excelが文字列を自動で数値として解釈することが原因かもしれません
  • たまたま数値として認識された可能性もあるが、常に期待通りの動作をするとは限らない

数値として認識されるかを確認(ISNUMBER)

 Excelで文字列と数値の違いを確認する方法として、ISNUMBER関数を使用すると便利です。

=ISNUMBER(B5)

 この式を使えば、B5セルが数値ならTRUE文字列ならFALSEを返すため、意図しない計算を防ぐことができます。

ISNUMBER関数の使い方と活用例

ISNUMBER関数は、Excelで「セルの値が数値かどうか」を判定するための関数です。データの種類をチェックしたい場合や、条件付き書式と組み合わせて活用すると便利です。

関数の構文

ISNUMBER(値)
  • : 判定したいセルやデータ(セル参照や直接入力が可能)

使用例

  1. 数値の判定 =ISNUMBER(A1) → A1のセルが数値ならTRUE(真)、そうでなければFALSE(偽)を返します。
  2. 文字列との比較 =ISNUMBER("Excel")"Excel" は数値ではないため、結果は FALSE になります。
  3. 計算結果が数値か判定 =ISNUMBER(A1/A2) → 計算結果が数値なら TRUE、エラーなら FALSE を返します。

実用的な活用例

  • データ入力のチェック(数値のみを許可する条件設定)
  • 関数のエラー対策(計算結果が数値かどうかを確認)
  • 条件付き書式で数値セルをハイライト

ISNUMBER関数を活用すれば、データの精度を高め、エラーを防ぐことができます。ぜひ試してみてください!

意図しない計算を防ぐ方法(VALUE)

 計算を行う際は、数値として認識されているデータを使用することが重要です。
もし文字列を数値に変換する必要がある場合は、VALUE関数を使うと安全です。

=VALUE(B5) + 1

 この方法を使えば、B5セルの値が文字列だった場合でも、確実に数値として扱うことができるため、予期しない計算ミスを防げます。

 Excelでは、文字列がたまたま数値として認識されることがありますが、必ずしも一貫した動作をするとは限りません。計算を行う際は、数値として認識されているかを確認し、必要ならVALUE関数を活用することで、正しい結果を得ることができます。

VALUE関数の使い方と活用例

VALUE関数は、Excelで「文字列を数値に変換する」ための関数です。数値が文字列として保存されている場合、それを正しく計算に使用できるようにする際に便利です。

関数の構文

VALUE(テキスト)
  • テキスト: 数値に変換したい文字列(セル参照や直接入力が可能)

使用例

  1. 数値文字列の変換 =VALUE("123") → 結果は 123(数値として扱える)
  2. 日付の文字列変換 =VALUE("2025/05/19") → 結果は Excelの日付シリアル値(例えば 45120
  3. セルの値を変換 =VALUE(A1) → A1の値が数値の形をした文字列なら、正しく数値に変換される

実用的な活用例

  • インポートデータの修正(テキスト形式の数値を正しく計算できるようにする)
  • 計算式の適用(数値として認識されていないデータを修正)
  • エラー回避(テキストとして保存された数値データを適切に処理)

VALUE関数を活用すれば、テキストデータをスムーズに数値へ変換し、計算の精度を高めることができます。ぜひ活用してみてください!

関数を活用したカレンダーの紹介

 最後に、Excelの関数を駆使して作成したカレンダーを紹介します。

 一つ一つの数式を読み解けば、それぞれの関数の意味が理解できると思います。ただし、多くの関数を組み合わせているため、複雑になりすぎてしまう点には注意が必要です

 そのため、実際の運用ではシンプルな方法を選択するのがおすすめです。関数の使い方を学びながら、適切なバランスで活用することが重要です。

D4セル

=IF(MONTH((DATE($F$2,$H$2,1)-WEEKDAY(DATE($F$2,$H$2,1),1)+1)+(COLUMN()-4+7*(ROW()-4)))=$H$2,DAY((DATE($F$2,$H$2,1)-WEEKDAY(DATE($F$2,$H$2,1),1)+1)+(COLUMN()-4+7*(ROW()-4))),"")

条件付き書式
適用対象「D4:J9」

=COUNTIF(Holidays!$A$1:$A$100, DATE($F$2, $H$2, D4))>0

「Holidays」シートを用意
A列:日にち

日にちに対応した書式設定が可能


 この数式は、指定した日付が「祝日リスト」に含まれているかどうかを判定するものです。
各部分を分解して解説します。

① COUNTIF関数

COUNTIF(範囲, 検索条件)
  • 指定した範囲内で、検索条件に一致するセルの数をカウントします。
  • ここでは COUNTIF(Holidays!$A$1:$A$100, DATE($F$2, $H$2, D4)) なので、「HolidaysシートのA1〜A100の範囲」に検索条件の日付が存在するかを確認しています。

② DATE($F$2, $H$2, D4)

DATE(年, 月, 日)
  • DATE($F$2, $H$2, D4) により、**指定した年(F2セル)、月(H2セル)、日(D4セル)**の日付を作成します。
  • つまり、セルD4の値が「日」(例えば18)なら、「2025年5月18日」のような日付を生成します。

③ COUNTIF(...) > 0

  • COUNTIF(...) は、一致するセルの個数を返します。
  • > 0 で判定しているため、1以上なら「その日付は祝日リストにある」ことを意味します。

このExcelの数式は、カレンダー作成の際に特定の月の日付を表示するためのものです。
各部分の役割を分解して解説します。

① 基本構造(IF関数)

=IF(条件, 真の場合の値, 偽の場合の値)

ここでは、該当する月かどうかを判定し、日付を表示するか空白にするかを決定しています。

② (DATE($F$2, $H$2, 1) - WEEKDAY(DATE($F$2, $H$2, 1), 1) + 1)

  • DATE($F$2, $H$2, 1)指定した年(F2)・月(H2)の1日
  • WEEKDAY(DATE($F$2, $H$2, 1), 1)その月の1日が週の何曜日か
  • - WEEKDAY(...) + 1その週の最初の日(例:日曜日)を求める
  • 結果: カレンダーの最初のセルに入る日付

③ (COLUMN() - 4 + 7 * (ROW() - 4))

  • COLUMN() - 4現在の列を基準に何日ずれているか
  • 7 * (ROW() - 4)現在の行に応じて、何週間分ずれるか
  • 結果: セルの位置に応じた日付を決定

④ MONTH(...) = $H$2 の判定

  • MONTH(...) → 計算した日付が「現在の月(H2)」と一致しているか判定
  • 一致DAY(...)で「日」を表示
  • 不一致""(空白)

⑤ DAY関数

DAY(...)を使い、計算された日付から「日」部分のみを抽出。

まとめ

  • 該当月の範囲外なら空白
  • 該当月なら日付のみ表示
  • 行列の位置に応じて日付を決定

関数が多くて複雑ですが、カレンダーの正しい表示を自動化するための重要な仕組みです。

HOT

-Excel