Excel(エクセル)DAY関数の使い方|日付から「日」だけを抽出する
使用関数:DAY
DAY(デイ)関数とは?
DAY関数は日付から「日」に当たる数字だけを抽出します。IF関数と組み合わせて、DAY関数で取得した日の数値と合致するかを条件にした色々な計算に使えます。
日付から「年」に当たる数字を抽出するにはYEAR関数を使います。
日付から「月」に当たる数字を抽出するにはMONTH関数を使います。
DAY関数の引数と書式
「数式」タブ「関数ライブラリ」→「日付/時刻」→ DAYをクリックします。
DAY関数の引数は「シリアル値」です。
シリアル値とは1900年1月1日を「1」として、1日1ずつ加算した数値で日付を表したものです。シリアル値を足し算・引き算することで期間を計算したり、1週間後、1ヶ月前、1年後の日付を簡単に取得することができます。シリアル値は「表示形式」によって日付のスタイルで表示されます。「2022/1/19」「令和4年1月19日」「19-Jan」は全て同じシリアル値「44580」です。表示が違っても、並べ替えや計算にはこの数字が使われます。
DAY関数の書式の構成はこうなります。
DAY関数で「日」を取り出す
DAY関数の引数「シリアル値」に日付を指定します。ここでは誕生した日の数値を取り出すために生年月日のセルをクリックします。
他の行までDAY関数の数式をオートフィルコピーします。
「シリアル値」にはセル参照の他、直接シリアル値そのものを数値で指定したり、日付を表す文字列を「” “」で囲って指定することもできます。
DAY関数とTODAY関数で今日が予約日かを判定する
その日のスケジュールを確認するのに、DAY関数とTODAY関数を組み合わせて今日が予約した日付かを判定できる仕組みを作っておきます。
「TODAY()=予約日のセル番地」という数式をDAY関数に入れ子します。下図の例では「=DAY(TODAY()=B3)」となります。
この数式で返るのは論理値「1(TRUE)」と「0(FALSE)」のどちらかです。比較演算子を使った基本的な論理式で、IF関数のように「~だったらTRUE、~でなければFALSE」となります。「1」が返れば本日が予約した日付ということですね。
このままだと分かりづらいので「ホーム」→「条件付き書式」→「新しいルール」で「数式を使用して、書式設定するセルを決定」に上記の数式を入力してセルに目立つ色を設定しておきました。
本日が予約した日付である場合はセルに色が付きます。
DAY関数とIF関数、DATE関数を組み合わせて閏年の判定
DAY関数と、IF関数、DATE関数を組み合わせて閏年(うるうどし)の判定をします。
DATE関数で閏日の年月日を取り出し、DAY関数で日だけ抽出
まず、DATE関数で指定した年の閏日(2月29日)を取り出します。
このDATE関数の数式をDAY関数に入れ子すると日の数値が取得できますが、閏日のある年は「29」、閏日のない年は3月1日の「1」が返ります。この数式「=DAY(DATE(A2,2,29))」に等号で「=29」を付け足して、「この年の閏日が存在したら~」という論理式「=DAY(DATE(A2,2,29))=29」を組み立てます。
閏年かどうかの判定はこのままでもできていますが、一見して判るようにIF関数で表示を整えましょう。
IF関数の論理式にDAY関数を指定して閏年判定の体裁を整える
前章で組み立てた数式「DAY(DATE(A2,2,29))=29」=「この年の閏日が存在したら~」をIF関数の論理式に入力し、閏日が存在すれば★を表示「真の場合:”★”」、存在しなければ空白にする「偽の場合:””」とします。
閏年に★マークが付きました。
- DAY関数は日付から「日」に当たる数字だけを抽出します
- DAY関数の引数は「シリアル値」です。「シリアル値」にはセル参照の他、シリアル値そのもの、日付を表す文字列を指定できます
- DAY関数とTODAY関数を組み合わせると、指定日と本日の日付が一致するか判定できます
- DAY関数とIF関数、DATE関数と組み合わせると、閏年の判定が簡単にできます