ExcelのDAY関数の使い方|1から31までの整数を返す

はじめに

DAY関数は、日付データから日の数値をもとめる関数です。

この関数は、割り出されたシリアル値をもとに、日付の日情報を出す仕組みを利用しています。シリアル値とは、1900年1月1日を1とし、そこを起点として通算日数と時刻を表していく値のことをいいます。例えば、2017年5月5日は42860と表されます。

この記事では、DAY関数を使って家計の収入・支出の日付データを出したり、保険の契約期間で翌々年の同じ日の前日の日付を計算したり、うるう年の西暦をピックアップしたりする方法をご紹介します。

書式/使用例

シリアル値に対応する日を1から31までの整数で返します。

=DAY(シリアル値)

A1のセル値 関数式 結果
2017/5/7 =DAY(A1) 7
42862 =DAY(A1) 7
2017/5/7 =DATE(YEAR(A1)+2,MONTH(A1),DAY(A1)-1) 2019/5/6
2017 =IF(DAY(DATE(A1,2,29)=29,"うるう年","平年") 平年

DAY関数の基本的な使い方

固定費の内訳

収入と支出(固定費)の内訳です。水色が収入、ピンクが支出に割り振ってあります。これからDAY関数を利用して、日付のデータをもとめていきます。

頭文字の入力

DAY関数の頭文字をとって、『=D』と入力します。すると頭文字「D」の一覧が出てくるので、【DAY】を選択します。

C3の引数の入力

【DAY】を選択したら、()の中に「2017/4/25」のセル『C3』を入力し、Enterを押します。

C3の算出

すると、「25」の日付データが現れます。そしてアクティブ状態になっているD3のセルの右下にカーソルをあわせると十字キーに変化するので、そのまま下へ一気にドラッグします。

一覧の表示

日付データの一覧が完成しました。

並べ替えの手順

これから、日付データの一覧を日付の浅い順に並べ替えてみます。D3からD13までアクティブ状態にしたまま、【データ】、【AZ↓】の順に選択します。

すると、上のようなダイアログボックスが表示されるので、【選択範囲を拡張する】を選択し、最後に【並べ替え】を押します。

並べ替えの完了

日付の浅い順に並べ替えられました。これで、給料の振込日や支出の引落日がどの順番でやってくるのか分かるようになりました。

DAY関数と他の関数を組み合わせた使い方

翌々年の同じ日の前日をもとめる方法(DAY×DATE/MONTH/YEAR関数)

契約終了年月日の換算

これから2年契約の保険が何年何月何日で効力が無くなるのかを算出していきます。効力が無くなるのは、2年後の同じ日の前日として計算します。

2年後の入力

C3を選択後、『=DATE(YEAR(B3)+2,』を数式バーに入力します。これは、B3のセルの2年後の年という意味です。
※「DATE」とは、「年」、「月」、「日」の3つの数値から日付データを作成する関数です。
※「YEAR」とは、日付データの西暦年から数値を取り出す関数です。

月の入力

次に、『MONTH(B3),』を入力します。これは、B3のセルの同じ月を意味します。
※「MONTH」とは、日付データの月から数値を取り出す関数です。

日付-1の入力

そして、『DAY(B3)-1)』を入力します。これは、B3のセルの日付から1日前日を意味します。入力が終わったら、Enterを押します。

契約終了年月日の算出

C3セルに、B3セルの契約終了年月日が算出されました。上記と同じ要領でB4からB10のデータも一覧にしてまとめます。

契約終了年月日の一覧

契約終了年月日の一覧が表示されました。

セルに指定された年がうるう年かどうかを判定する方法(DAY×AND/DATE/IF/MOD/OR関数)

うるう年の判定

最近の西暦の一覧です。これから、どの年がうるう年で、どの年が平年なのか判定していきます。

IF関数とDATE関数の併用

まず、数式バーに『=IF(DAY(DATE(A3,2,29)=29,』と入力します。これはIF関数を使った論理式です。

DATE関数の(A3,2,29)という数字は、2011年2月29日の日付データということになります。これにDAY関数で29を取り出して真か偽かを判定します。
※「IF」とは、論理式の結果が条件を満たすときと満たさないときで、処理を振り分ける関数です。

真の場合、偽の場合

ここで『"うるう年","平年")』と入力します。真の場合は左の「うるう年」、偽の場合は右の「平年」と表示されるようにします。

ここでは、このDAY関数とDATE関数で取り出された数字が「=29」になっているかを確かめます。数式バーの数式の入力が終わったら、Enterを押します。

「平年」の算出

2011年は「平年」と判定されました。アクティブ状態になっているB3のセルの右下にカーソルをあわせると十字キーに変化するので、そのまま下へ一気にドラッグします。

うるう年判定の一覧

うるう年の判定結果が出ました。このデータからは一見何も問題が無いように思えますが、実はこの数式には欠陥があります。

1900年うるう年?

1900年まで遡りました。

上の赤枠部分に注目すると、1900年にうるう年が表示されています。平年は、4で割り切れない数値の西暦だけではありません。400で割れない100の倍数の年度も平年として扱われます。つまり、1900年はうるう年ではなく、平年ということになります。

IF関数とOR関数

したがって、数式バーに『=IF(OR(MOD(A3,400)=0,AND(MOD(A3,4)=0,MOD(A3,100)<>0)),"うるう年","平年")』と直接入力します。

ここでEnterを押せば判定結果が出ますが、その前にこの長い数式がどういう構造になっているかを説明していきます。

MOD関数

まず「MOD(A3,400)=0,」に注目します。MOD関数でA3の数値が400で割り切れるか(余りが0になるか)どうかを確認します。
※「MOD」とは、「数値」を「除数」で割った結果の余りをもとめる関数です。

AND関数

次に「AND(MOD(A3,4)=0,MOD(A3,100)<>0))」に注目します。MOD関数でA3の数値が4で割り切れるか(余りが0になるか)どうかと、100で割って余りが出るかどうか(余りが0ではないこと)を確認します。

そしてこの2つの数式はOR関数で、いずれかが条件を満たすかどうかを調べており、正の場合は「うるう年」を、偽の場合は「平年」で返すようにします。
※「AND」関数とは、指定された複数の条件が満たされているかどうかを調べる関数です。
※「OR」関数とは、指定された条件が1つ以上でも満たされているかどうかを調べる関数です。

判定結果の算出

B3は平年という判定結果が出ました。上記の手順で、B4からB10の結果も出していきます。

1900年うるう年の修正

関数を変えたことにより、1900年は平年に修正されました。

Windows10とExcel2016

本記事で使用したOSはWindows10、Excelのバージョンは2016です。

他の関数も合わせてチェック!

目的別に並べた便利なExcel関数一覧表(全451種)

目的別に並べた便利なExcel関数一覧表(全459種)

Excel Hackでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。

このページを見ている方におすすめの商品

できるポケット Excel関数全事典 2013/2010/2007対応 (できるポケット全事典シリーズ)

できるポケット Excel関数全事典 2013/2010/2007対応 (できるポケット全事典シリーズ)

羽山 博-インプレス

全368ページ

¥ 1,490

Excel関数逆引き辞典パーフェクト 第3版

Excel関数逆引き辞典パーフェクト 第3版

きたみ あきこ-翔泳社

全832ページ

¥ 2,592

このページをフォローする

関連記事