Hello there, ('ω')ノ
データ分析において、「いつ」起こったかを記録する日付データは非常に重要です。
売上日、登録日、ログイン時間、キャンペーン開始日など、時間軸の情報は多くの場面で分析に使われます。
✅ 日付データでよくある問題
問題 |
内容 |
書式がバラバラ |
例:2024/01/01、01-01-2024、"1月1日"など |
時間がくっついている |
例:2024-06-01 15:30:00 → 日付だけ使いたい |
「月」「週」「曜日」で集計したい |
日付からそれぞれの要素を取り出す必要あり |
📆 日付データを使った集計の例
- 月別売上の推移を出す
- 曜日ごとのアクセス数を比べる
- 昨日・先月など、相対的な日付を計算する
- 対象期間のデータだけを抽出する(期間フィルタ)
🧰 Excelで使える日付関数
関数名 |
説明 |
例 |
TODAY() |
今日の日付を返す |
=TODAY() → 2025/06/21 |
NOW() |
現在の日時(時分秒つき) |
=NOW() |
YEAR(A1) |
年を抽出 |
=YEAR("2025/06/01") → 2025 |
MONTH(A1) |
月を抽出 |
=MONTH("2025/06/01") → 6 |
DAY(A1) |
日を抽出 |
=DAY("2025/06/01") → 1 |
TEXT(A1,"dddd") |
曜日を取得 |
"月曜日"など日本語で表示 |
DATEDIF(A1,B1,"d") |
日数の差を計算 |
2つの日付の差(日単位)を返す |
🔸 実務でよく使う式例
=DATEDIF(A2, TODAY(), "m") & "ヶ月前"
=EOMONTH(TODAY(), 0) + 1
🧠 SQLでのシステム日付・日付関数の使い方(RDBMS共通)
関数 |
内容 |
例(PostgreSQL/SQL Server等) |
CURRENT_DATE |
現在の日付 |
SELECT CURRENT_DATE; |
CURRENT_TIMESTAMP |
現在の日時 |
SELECT CURRENT_TIMESTAMP; |
EXTRACT(YEAR FROM 日付) |
年を取り出す |
SELECT EXTRACT(YEAR FROM order_date) |
DATE_PART('month', 日付) |
月を取り出す |
PostgreSQLでよく使用 |
DATE_TRUNC('month', 日付) |
月の初日に切り捨て |
例:2025-06-15 → 2025-06-01 |
🔍 日付を条件にした抽出(例)
SELECT * FROM sales
WHERE order_date >= DATE_TRUNC('month', CURRENT_DATE);
SELECT * FROM access_log
WHERE access_time >= CURRENT_DATE - INTERVAL '30 days';
📊 日付の“分解”と“グループ化”の活用シーン
分析目的 |
使う要素 |
実例 |
月ごとの売上 |
月(MONTH) |
「6月に一番売れた商品は?」 |
曜日別アクセス |
曜日(WEEKDAY) |
「金曜が一番アクセスが多い?」 |
時間帯別行動 |
時間(HOUR) |
「12~13時に利用が集中している」 |
経過日数の算出 |
DATEDIF / 差分関数 |
「登録から30日以内のアクティブ率」 |
🔁 よくある日付整形のTips
やりたいこと |
方法(Excel) |
方法(SQL) |
年月だけ表示 |
=TEXT(A1,"yyyy-mm") |
TO_CHAR(date, 'YYYY-MM') |
文字列を日付に変換 |
=DATEVALUE("2025/6/1") |
CAST('2025-06-01' AS DATE) |
日付を曜日に変換 |
=TEXT(A1,"dddd") |
TO_CHAR(date, 'Day') |
✅ まとめ:日付データは「整理してこそ」使える!
ポイント |
内容 |
日付は分析に不可欠 |
時系列・推移・傾向などのベースになる |
分解と関数活用がカギ |
年・月・曜日・経過日数などで再構成 |
ツールに応じた活用を |
ExcelでもSQLでも使える関数は多い |
フォーマット統一が第一歩 |
書式ブレがあると処理に失敗しやすい! |
Best regards, (^^ゞ