DAY関数の注意点とよくあるエラー
便利なDAY関数であるが、使い方を誤ると思わぬエラーが発生することもある。
■無効な形式や文字列ではエラーになる
たとえば、「2025年5月3日」というような文字列形式の入力に対してDAY関数を使うと、正しく機能しない場合がある。Excelがその文字列を日付として認識できない場合、#VALUE!エラーが返される。
このような場合は、日付形式をセルで正しく設定するか、DATE関数などで日付を生成するようにすると良い。
■空白セルに対してDAY関数を使った場合
Excelのバージョンによっては、空白セル(未入力)をDAY関数で参照すると、Excelはシリアル値「0」とみなして1899年12月30日を返す仕様がある。つまり、見た目はエラーが起きていないが、意図しない結果(30)が出るので注意が必要である。
例:
=DAY(A1)(A1が空白)→ 結果:30
対処法:
=IF(A1=””, “”, DAY(A1))
空白かどうかを条件分岐させることで、誤解を防げる。
まとめ
DAY関数はシンプルでありながら、実務での活用価値が高い。Excel初心者であっても理解しやすく、日付処理の第一歩として習得するのに最適な関数である。日々の業務効率を高めるためにも、ぜひDAY関数を活用してみてほしい。
本記事の内容を以下で簡単におさらいしておこう。
- DAY関数の役割:日付データから「日」の部分(1~31)を抽出する関数。
- 基本構文:=DAY(シリアル値)。シリアル値には日付セルや日付関数の結果を指定。
- 使用例:セルA1に「2025/05/03」がある場合、=DAY(A1)は「3」を返す。
- 手順①(既存日付):対象セルに日付を入力し、=DAY(セル番地)を入力すれば完了。
- 手順②(関数で日付を生成):=DAY(DATE(2025,5,3))や=DAY(TODAY())でも使用可能。
- 活用例:売上や勤怠などの日別集計、日付によるフィルタ処理に活躍。
- 月初・月末の抽出:
- ・月初:=IF(DAY(A1)=1,”月初”,””)
- ・月末:=IF(DAY(A1)=DAY(EOMONTH(A1,0)),”月末”,””)
- 便利な組み合わせ関数:
- ・DATE関数:年月日を組み合わせて再構成
- 注意点①:文字列形式や不正な値では#VALUE!エラーが出る。DATEVALUE関数で変換するのが有効。
- 注意点②:空白セルは「1899/12/30」と解釈され、「30」が返るため注意。IF(A1=””, “”, DAY(A1))で対応。
関連記事:覚えておくと便利!Excelで生年月日から年齢を自動計算する方法
構成/編集部