年月日に関する計算
年月日を関数を使って別々のセルに分ける方法
「YEAR」、「MONTH」、「DAY」関数
①、D3のセルに「 =YEAR(C3) 」、E3のセルに「 =MONTH(C3) 」、F3のセルに「 =DAY(C3) 」、G3のセルに「 =DATEDIF(C3,TODAY(),"y")&"歳" 」と入力する
②、 セルD3~F3を選択して、8行までドラッグしてコピーします。
※例の満年齢は、2024/11/11現在の年齢です。
分けた「年」と「月」をスラッシュで結合する
「年」が取り出せるYEAR関数と「月」が取り出せるDAY関数の間に『&』+スラッシュ(”/”)+『&』を挟むことで、2002/6のような形式の文字ができあがります。
①、「年」と「月」をスラッシュで挟む場合は、
=YEAR(C3)&"/"&MONTH(C3)
『月』と『日』をスラッシュで挟んで結合する場合も同じで
=MONTH(C3)&"/"&DAY(C3)
と入力します。
②、 セルD3~F3を選択して、8行までドラッグしてコピーします。
TODAY()
今日の日付のリアル値を返します。
①、TODAY関数=TODAY()と入力する
②、 Enterキーを押す
DATE(年,月,日)
①、年から日まで入力されているセルを指定します。直接数字で入力する場合は、=DATE(2004,4,25)と入力します。
②、 Enterキーを押す
セルの書式設定を変更
①、DATE関数のセルを右クリックし、右クリックメニューから「セルの書式設定」を押してください。
②、「セルの書式設定」画面の「表示形式」タブから「日付」を選択し、表示したい日付の種類を選択し、「OK」を押します。
③、 OKキーを押す
DATEVALUE(日付文字列)
①、セルに入力されている日付文字列を「&」で結合してシリアル値に変換します。
=DATEVALUE(B4&C4&D4)
②、 日付を違う形式の日付文字列で直接式に入力してシリアル値に変換します。
=DATEVALUE("2024/10/1")
YEAR(シリアル値)/YEAR(日付文字列)
①、日付「B1」の「年」を求めます。
=YEAR(B3)
②、 日付を文字列で式に入力した場合の「年」を求めます。
=YEAR("2024/10/15")
・戻り値は西暦年を表す4桁の整数(1900~9999)になります。
たとえばIF関数の条件 として使えば、年の違いに応じて異なる計算ができます。
・使用例のセルB3には日付が表示されていますが、これらのセルには日付が文字 列として入っているのではなく、シリアル値が入っています。
・セルに日付や時刻を入力すると、自動的にシリアル値に変換されます。
・日付のシリアル値は、「1900年1月1日」以後の経過日数で表されます。
たとえば「1900 年1月2日」 は 「2」と表され、「2024年10月15日」 は 「45580」と表されます。
MONTH(シリアル値)/YEAR(日付文字列)
①、日付「B3」のシリアル値の「月」を求めます。
=MONTH(B3)
②、 日付を文字列で式に入力した場合の「月」を求めます。
=MONTH("2024/10/15")
・シリアル値は、「1900年1月1日」を「1」として、以後の経過日数を数値で表したものです。たとえば「1900年1月2日」は「2」と表され、「2024年10月15日」は「45580」と表されます。
DAY(シリアル値)
①、日付「B3」のシリアル値の「日」を求めます。
=DAY(B3)
②、 日付を文字列で式に入力した場合の「日」を求めます。
=DAY("2024/10/15")
・シリアル値は、「1900年1月1日」を「1」として、以後の経過日数を数値で表したものです。たとえば「1900年1月2日」は「2」と表され、「2024年10月15日」は「45580」と表されます。
期間内の年数、月数、日数を求める
DATEDIF(開始日,終了日,単位)
今日の日付のシリアル値を返します。
①、セルを指定して期間内の満月数を求める。
=DATEDIF(B3,C3,"M")
②、直接式に入力して期間内の満月数を求める
=DATEDIF("2024/10/15","2025/12/15","M")
・開始日:期間の開始日をシリアル値または文字列で指定します。
・終了日:期間の終了日をシリアル値または文字列で指定します。
・単位:日数の計算方法を、以下の文字列で指定します。
| "Y" | 期間内の満年数を求める |
| "M" | 期間内の満月数を求める |
| "D" | 期間内の満日数を求める |
| "YM" | 1年に満たない月数を求める |
| "YD" | 1年に満たない日数を求める |
| "MD" | 1カ月に満たない日数を求める |
EDATE(開始日, 月)
EDATE関数は、開始日から起算して、指定された月数だけ前または後の日付に対応するシリアル値を返します。
①、開始日「B3」から「6ヶ月後」の日付を求めます。
=EDATE(B3,6)
②、日付を文字列で式に入力し、「3ヶ月前」の日付を求めます。
=EDATE("2024/10/15",-3)
シリアル値を返す関数との組み合わせ
③、NOW関数を使用して、今現在の日付を取得し現在より「3ヶ月前」の日付を求めます。
=EDATE(NOW(),-3)
④、DATE関数を使用して、2010年12月25日から「3ヶ月後の日付を求めます。
=EDATE(DATE(2024,12,25),3)
・開始日:基準となる日付を指定します。日付にはシリアル値またはシリアル値を返す関数(DATE関数、NOW関数など)を指定します。
・月:開始日から増減させたい月数を指定します。
月に正の数を指定すると、開始日より後の日付を返し、負の数を指定すると、開始日より前の日付を返します。
・シリアル値とは「1900 年 1 月 1 日」を「1」と数え、その日からの通算日数を表した数値です。
EOMONTH(開始日,月数)
①、当月末日を取得
=EOMONTH(TODAY(), 0)
②、3ヶ月後の月末日を取得
=EOMONTH(TODAY(), 3)
③、前月末日を取得
=EOMONTH(TODAY(), -1)
④、指定した月数だけ前、後の月の月末を、シリアル値で出力します。
=EOMONTH("2024/9/26", 2)
・開始日: 計算の基準となる日付です。日付型またはシリアル値で指定します。
・月: 開始日から何ヶ月後の月末日を求めるかを指定します。正の値を指定すると未来の月末日、負の値を指定すると過去の月末日を返します。
・シリアル値とは「1900 年 1 月 1 日」を「1」と数え、その日からの通算日数を表した数値です。
①、=EOMONTH(TODAY(), 0) 月に0を指定しているので、今日の日付の月末日を返します。
②、=EOMONTH(TODAY(), 3) 月に3を指定しているので、今日の日付から3ヶ月後の月末日を返します。
③、=EOMONTH(TODAY(), -1) 月に-1を指定しているので、今日の日付から1ヶ月前の月末日を返します。
④、=EOMONTH("2024/9/26", 2) 月に-1を指定しているので、今日の日付から1ヶ月前の月末日を返します。
時刻に関する計算
TIME(時,分,秒)
①、セルに入力されている数値を引数として指定して「8時45分12秒」のシリアル値を求めます。
=TIME(B1,B2,B3)
②、 セルに入力されている数値の内、時と秒を使用して「250分後」の少数を求めます。(12時10分12秒)
=TIME(B1,250,B3)
TIMEVALUE(時刻文字列)
指定した時刻に対応するシリアル値を返します。
0:00:00 (午前 0 時) から 23:59:59 (午後 11 時 59 分 59 秒) までの時刻を返します。
①、セルに入力されている時刻文字列を「&」で結合して「8時45分12秒」のシリアル値を求めます。
=TIMEVALUE(C2&C3&C4)
セルに入力されている数値の内、時と秒を使用して「450分後」の「シリアル値」を求めます。
②、 直接式に入力した場合のシリアル値を求めます。
=TIMEVALUE("8:30 AM")
HOUR(シリアル値)
HOUR関数は、シリアル値または少数から時刻を返します。戻り値は 0 (午前 0 時) ~ 23 (午後 11 時) の範囲の整数となります。
①、セルに入力されている数値を引数として指定して「13時45分00秒」の時刻を求めます。
=HOUR(D2)
②、 直接式に文字列を入力した場合の時刻を求めます。
=HOUR("7:30 PM")
MINUTE(シリアル値)
SECOND関数は、シリアル値または少数から時刻の秒を返します。戻り値は 0 (秒) ~ 59 (秒) の範囲の整数となります。
①、セルに入力されている数値を引数として指定して「17時30分00秒」の分を求めます。
=MINUTE(D1)
②、 直接式に文字列を入力した場合の分を求めます。
=MINUTE("6:30 PM")
SECOND(シリアル値)
SECOND関数は、シリアル値または少数から時刻の秒を返します。戻り値は 0 (秒) ~ 59 (秒) の範囲の整数となります。
①、セルに入力されている数値を引数として指定して「17時30分17秒」の秒を求めます。
=SECOND(D2)
②、 直接式に文字列を入力した場合の秒を求めます。
=SECOND("8:30:15 PM")
WEEKDAY関数 シリアル値を曜日に対応する数値に変更する
①、日付(シリアル値)から「曜日」に当たる数値を取り出します。
WEEKDAY(シリアル値, 種類)
【種類】が『1』の場合:日曜日は「1」で始まり、土曜日は「7」となります。
【種類】が『2』の場合:月曜日は「1」で始まり、日曜日は「7」となります。
【種類】が『3』の場合:月曜日は「0」で始まり、日曜日は「6」となります。
シリアル値の曜日とWEEKDAY関数の引数の種類と返される値の関係
セル「C3」の数式は
=WEEKDAY($A3,C$2)として、数式を右および下のセルへコピーしています。
なお、セル「D3」の数式は、=WEEKDAY($A3,D$2)
セル「E3」の数式は =WEEKDAY($A3,E$2)となります。
ちなみに、セル「B3」は 「 =TEXT(A3,"aaaa") 」として曜日を求めました。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | シリアル値 | 曜日 | 引数の種類 | ||
| 2 | 1 | 2 | 3 | ||
| 3 | 2024/12/15 | 日曜日 | 1 | 7 | 6 |
| 4 | 2024/12/16 | 月曜日 | 2 | 1 | 0 |
| 5 | 2024/12/17 | 火曜日 | 3 | 2 | 1 |
| 6 | 2024/12/18 | 水曜日 | 4 | 3 | 2 |
| 7 | 2024/12/19 | 木曜日 | 5 | 4 | 3 |
| 8 | 2024/12/20 | 金曜日 | 6 | 5 | 4 |
| 9 | 2024/12/21 | 土曜日 | 7 | 6 | 5 |
| 10 | 2024/12/22 | 日曜日 | 1 | 7 | 6 |
②、A列の日付が土・日の場合、B列に『休み』と表示し、月~金の場合は『""(空欄)』と表示してみよう。
WEEKDAY関数の『種類』に【2】を使うと、土が「6」、日が「7」となるので、IF関数を使い、「WEEKDAY関数の値が6以上であれば『休み』とし、そうでなかったら(6未満であったら空欄) 『""』としなさい。」といった数式を組みます。
C2セルに、
=IF(WEEKDAY(A2,2)>=6,"休み","")
と入力して、フィルハンドルをダブルクリックして、下方向へ数式をコピーします。
カレンダーを作成しょう
毎年使えるカレンダーを作成
「年」と「月」を変えるだけでカレンダーを作成しましょう。
①、最初に、カレンダーの形を作成します。今回は、日曜日から始まるカレンダーとします。
セルA1『2024』、セルB1『年』、セルC1『11』、セルD1『月』と入力します。
セルA2に『日』と入力し、G2セルまでオートフィルします。
②、 セルF1に日付データを作成かるDATE関数、セルA3に日付から曜日を判断するWEEKDAY関数を入力します。
セルF1に、=DATE(A1,C1,1) を入力します。→表示「2024/11/1」
セルA3に、
=$F$1+(1-WEEKDAY($F$1,1))
を入力します。→表示「2024/10/27」
③、次に、セルB3に『=A3+1』入力します。
セルB3に=A3+1と入力して、セルG3までオートフィルします。
④、 セルB3を選択してセルG3までオートフィルすると下記のように表示されます。
⑤、セルA4に『=G3+1』を入力します。
セルA4に=G3+1を入力します。
⑥、次に、セルB4に『=A4+1』を入力します。
セルB4に=A4+1を入力します。
⑦、セルB4を選択し、セルG4まで右方向にオートフィルします。
セルB4を選択し、セルG4まで右方向にオートフィルします。
⑧、A4セル~G4セルまでを選択し、G8セルまで下方向にオートフィルします。
A4セル~G4セルまでを選択し、G8セルまで下方向にオートフィルします
⑨、カレンダーの日付が全部埋りました。
⑩、書式設定で、カレンダーの『年月日』表示を『日付』に変更します。
セルA3~G9を選択して、右クリックして「セルの書式設定」を選択します。
⑪、条件付き書式を使い、カレンダー当月ではない前後の日にちの色と、日曜日・土曜日に色を付けましょう。
A3セルからG8セルまで選択します。
条件付き書式から『新しいルール』を開きます。
新しい書式ルールの『数式を使用して、書式設定するセルを決定』を選択します。
ルールの内容・・・
=NOT(AND(YEAR(A3)=$B$1,MONTH(A3)=$D$1))
を入力します。
次に、『カレンダー当月ではない前後の日にちの色をグレイ』にします。
「書式」を選択します。『セルの書式設定』が開きます。
「色」をグレイを選択しOKを押します。
新しい書式ルール』もOKを押します。
次もOKを押します。
当月以外の日にちの色が「グレイ」変わりました。
同じような手順で、日曜と土曜にも色を付けます。
⑫、日曜の数値の色を「赤」にします。
A3セルからG8セルまで選択します。
⑬、土曜の数値の色を「青」にします。
条件付き書式は『表示順で適用』されるので、グレイの色を最優先にします。
⑭、「条件付き書式のルールの管理」を開き、グレイの設定を上へ移動させます。
条件付き書式の『ルールの管理』を開く
設定した「グレイ」を選択します。
「▲」を押して最上段に移動させてOKを押します。
グレイの設定を上へ移動させて「OK」を押します。
⑮、文字の大きさ、セルの幅や、塗りつぶし、太字やフォントサイズなど、手を加えて整えお好みのカレンダーにします。
年月(セルA1~D4)の文字サイズ→14
日曜(A2)、土曜(G2)の色を付ける
曜日(A2~G2)中央揃え。太字、サイズ→12
日にち(A3~G8)上揃え、左揃え、太字、サイズ→12、太字
行の高さ 1行目→22、2行目→22、3行目~8行目→30
列の幅(A~G)→10
「セルF1」のDATE関数は文字色を「白」する。
完成です。お疲れ様でした!
「カレンダー(1)」 の応用
縦型カレンダーを作成
画面を縦向きに表示することで、予定を確認しやすく、変更が容易です。
①、縦型カレンダーのレイアウト
各セルに、カレンダー、年、月、日、曜日、祝日、予定を直接入力します。
②、「表示する年、月」と「1日目のセルに年月日を表示する関数」を入力します。
セルA2に「2024」、セルC2に「11」を入力します。
1日目セルA4に下記の関数
=IF(MONTH(DATE($A$2,$C$2,ROW()-3))<>$C$2,"",DATE($A$2,$C$2,ROW()-3))
入力します。
次に、セルA4を選択して、下方向「セルA34」までオートフィルします。
③、日に表示されている「シリアル値」を「日にちのみ」に変更する
日付の「セルA4からA34」までを範囲指定します。
範囲指定したセルの上で右クリックして「セルの書式設定」を開きます。
表示形式」タブ ⇒ ユーザー定義 ⇒ 種類に「d」を入力 ⇒ 「OK」をクリックします。(あれば選択)
④、曜日を入力する
セルB4に「=A4」と入力します。
次に、セルB4を選択して、下方向「セルB34」までオートします。
すると、日付が曜日欄に表示されます。
⑤、曜日に表示されている「数字」を「曜日」に変更する
日付の「セルB4からB34」までを範囲指定します。
範囲指定したセルの上で右クリックして「セルの書式設定」を開きます。
「表示形式」タブ ⇒ ユーザー定義 ⇒ 種類に「aaa」を入力 ⇒ 「OK」をクリックします。(あれば選択)
曜日欄に反映された数字が曜日に変換され表示されます。
⑥、祝日のシートを作成する。
エクセル下部の「+」をクリックしてシートを追加します。
シート名を「祝日」とします。
A列の祝日日付を範囲指定します。
「数字」タブをクリック→「選択範囲から作成」をクリックします。
上端行にチェックを入れて「OK」をクリックします。
B列の祝日名称を範囲指定します。
「数字」タブをクリック→「選択範囲から作成」をクリックします。
上端行にチェックを入れて「OK」をクリックします。
⑦、祝日列に祝日名称を表示する。
1日目のセルC4に下記の関数
=IF(ISERROR(MATCH(A4,祝日日付,0)),"",INDEX(祝日名称,MATCH(A4,祝日日付,0)))
入力します。
次に、セルC4を選択して、下方向「セルC34」までオートフィルします。
⑧、土・日の数字、文字に色を付ける。
色付けする範囲を指定する。
書式ルールの編集画面が開きます。
書式設定に、=WEEKDAY(A4)=1を入力し、日曜日の「赤」を変えます。
書式設定に、=WEEKDAY(A4)=7を入力し、土曜日の「青」を変えます。
⑧-1、日曜日の数値と曜日を「赤」に変えてみよう。
まず最初に、 セルA4~B34の範囲を指定する。
⑧-2、ホームを開いて、のツールバーの条件付き書式から「新しいルール」をクリックします。
「数式を使用して、書式設定するセルを決定」をクリックします。
⑧-3、クリックすると次の「新しい書式ルール」の画面に変わります。
書式設定に、=WEEKDAY(A4)=1を入力します。
⑧-3、書式をクリックします。
フォント→「赤」を選びます。
「OK」をクリックします。
⑧-4、「OK」をクリックします。
⑧-5、次も、「OK」をクリックします。
⑧-6、土曜日の数値と曜日を「青」に変えてみよう。
書式設定で=WEEKDAY(A4)=7を入力と「色」以外日曜日の場合と同じです。やってみよう。
⑨、祝日の文字を「赤」する。
書式ルールの編集画面が開きます。
⑨-1、まず最初に、 セルC4~C34の範囲を指定する。
⑨-2、ホームを開いて、のツールバーの条件付き書式から「新しいルール」をクリックします。
「数式を使用して、書式設定するセルを決定」をクリックします。
⑨-3、クリックすると次の「新しい書式ルール」の画面に変わります。
書式設定に、COUNTIF(祝日!$A$2:$A$361,A4)=1を入力します。
⑨-4、書式をクリックします。
フォント→「赤」「太字」を選びます。
「OK」をクリックします。
⑨-5、「OK」をクリックします。
⑨-6、次も、「OK」をクリックします。
⑨、完成です。
お疲れ様です。
12ヶ月のカレンダーは、下記からダウンロードできます。