日付列同士の差分計算
2 つの日付の差を数値にします。受注から出荷までの日数、登録からの経過年数、作業にかかった時間を出すときに使います。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | 差分の列を加えたデータ |
Spark エンジンでも動きます。
行の数と並び順は変わりません。差分の列がいちばん右に 1 つ増え、元の 2 列はそのまま残ります。上書きはできません。
計算は 日付列1 − 日付列2 です。画面でも上のブロックが「日付列1から」、下のブロックが「日付列2を引く」になっています。順番を逆にすると符号が逆になります。
設定項目
- 結果の挿入先を設定必須
- 差分を入れる新しい列の名前。すでにある列と同じ名前にするとエラーになります。
- 日付列1を選択必須
- 引かれる方。日付型・日付時間型・時間型の列だけ選べます。
- 日付列2を選択必須
- 引く方。日付列1 で選んだ列は候補から外れます(同じ列同士では差が取れないため)。
- 固定日付を演算する
- 日付列1・日付列2 のそれぞれに付いていて、列を選ぶ欄の上にあります。既定は off。on にすると、その側だけ列の代わりに「日付を入力」の欄が出て、全行を同じ日付と比べます。
- 日付を入力必須
- 「固定日付を演算する」が on のときに出ます。
2024-04-01のように入力します。 - 結果の単位を選択
- 年 / 月 / 日 / 時 / 分 / 秒 / 時:分:秒。最初は「年」が選ばれています。両方とも列で、どちらかが時間型のときだけ、時 / 分 / 秒 / 時:分:秒 の 4 つに絞られます(このときの既定は「時」)。片方でも固定日付にすると 7 つすべてが出ます。
単位ごとの結果
| 単位 | 結果の型 | 出てくる値 |
|---|---|---|
| 年 | 数値 | 1 年を 365.2425 日として割り、小数を切り捨てた数 |
| 月 | 数値 | 1 か月を 30.436875 日として割り、小数を切り捨てた数 |
| 日 / 時 / 分 | 数値 | 小数を切り捨てた数 |
| 秒 | 数値 | 小数第 6 位まで |
| 時:分:秒 | 時間 | 01:30:00 のような時間型 |
日付列1 が古いと、結果はマイナスになります。 切り捨ては小さい方向に行うので、たとえば 1 日に満たないマイナスの差は -1 になります。
実行した日を基準にする
固定日付の欄は自由に入力できるので、変数機能の概要で作った日付の変数を $変数名 の形で書けます。変数の指定方法に「よく使う日付を指定(今日)」や「相対日付を指定」を選んでおくと、実行するたびにその日の日付で計算されます。
書き方と注意は変数利用方法(分析プロジェクト)、変数そのものの作り方はローカル変数の新規作成にあります。
エラーと対処
対象の列が選択されていない
日付列1・日付列2 のどちらかが空のまま実行したとき。
対象の列が選択されていません。
直し方 — 列を選ぶか、「固定日付を演算する」を on にして日付を入れてください。
対象の列が見つからない
前の処理で列名が変わった、または列が消えたとき。
対象の列が存在しません。
直し方 — 列を選び直してください。
新規列名が既にある
「結果の挿入先を設定」に、すでにある列と同じ名前を入れたとき。
新規列名(
{{new_col}})が既存の列名と重複しています。
直し方 — 別の名前にしてください。
変数が設定されていない
「日付を入力」に $ 付きの変数を書いていて、その名前の変数がないとき。
変数:
{{val}}が設定されていないため処理を中断しました。
{{val}} には、見つからなかった変数名が入ります。
直し方 — 名前の打ち間違いを直すか、その名前の変数を作ってください。共通変数を使っているつもりなら、その分析プロジェクトにインポートされているかを確かめてください。
よく使う例
1. 出荷までの日数を出す
お題 — 受注日から出荷日までが何日かかったかを見たい
入力
| 受注日 | 出荷日 |
|---|---|
| 2024-04-01 | 2024-04-04 |
| 2024-04-02 | 2024-04-02 |
設定
| 設定項目 | 値 |
|---|---|
| 結果の挿入先を設定 | リードタイム |
| 日付列1を選択 | 出荷日 |
| 日付列2を選択 | 受注日 |
| 結果の単位を選択 | 日 |
出力 — 3 / 0 の数値。
2. 実行した日を基準に経過日数を出す
お題 — 最終購入日から今日まで何日空いているかを、毎日の実行で更新したい
入力 — 最終購入日(日付型)が入ったデータ
設定
| 設定項目 | 値 |
|---|---|
| 結果の挿入先を設定 | 経過日数 |
| 日付列1の「固定日付を演算する」 | on |
| 日付を入力 | $today(「今日」の日付変数) |
| 日付列2を選択 | 最終購入日 |
| 結果の単位を選択 | 日 |
出力 — 実行した日までの日数。この列を数値列のカテゴリ化で区切れば、「30 日以内」「90 日以内」といった分け方ができます。
3. 作業にかかった分数を出す
お題 — 開始時刻と終了時刻から作業時間を分で見たい
入力
| 開始 | 終了 |
|---|---|
| 2024-04-01 09:00:00 | 2024-04-01 10:30:00 |
設定
| 設定項目 | 値 |
|---|---|
| 結果の挿入先を設定 | 作業分数 |
| 日付列1を選択 | 終了 |
| 日付列2を選択 | 開始 |
| 結果の単位を選択 | 分 |
出力 — 90 の数値。合計や平均が出せます。
4. 作業時間を時計の形で見る
お題 — 1 日で終わる作業の長さを 01:30:00 の形で見たい
入力 — 例 3 と同じデータ
設定 — 「結果の単位を選択」を 時:分:秒 にします。
出力 — 01:30:00 の時間型。日をまたぐ作業がある場合は使えません(上の注意を参照)。
5. 固定の基準日からの日数を出す
お題 — キャンペーン開始日から何日目の売上かを出したい
入力 — 売上日(日付型)が入ったデータ
設定
| 設定項目 | 値 |
|---|---|
| 結果の挿入先を設定 | 開始からの日数 |
| 日付列1を選択 | 売上日 |
| 日付列2の「固定日付を演算する」 | on |
| 日付を入力 | 2024-04-01 |
| 結果の単位を選択 | 日 |
出力 — 0 から始まる数値。開始日より前の行はマイナスになります。