★★:まあある
「生年月日から本日時点での年齢を算出したい」「入社日から本日時点での在籍年数を算出したい」
MotionBoard上でデータを加工できないのかな…。
そんな疑問、ありませんか。
MotionBoardではカスタム項目を使うことで年月を計算することができます。

当記事ではDataStorageを使用する場合の計算方法をご説明します。
DataStorageはMotionBoard Cloudのみで提供している機能です。

DataStorageについて

DataStorageとは?

MotionBoard上にあるデータベースです。

データソースがDataSotrageかどうかの確認

データソースがDataStorageかどうかはこちらで判断できます。
① データソースが「DataStorage」になっている
② カスタム項目の使い方欄に「Dr.SumのSQLを使用して記載します」の記載がある

データソースがDataStorageであることが確認できたら「本日時点での年齢」を算出してみましょう。

計算式の設定

カスタム項目を追加する

設定したい集計表をクリックし、[データソース編集]を開きます。

[追加項目作成]⇒[カスタム項目]の順にクリックします。

[データ型]を[数値]に変更します。
次に[計算式]のボックスに次の計算式を挿入します。(なぜ数値型を選択するかは本文の最後でご説明します)

TRUNC(MONTHS_BETWEEN(SYSDATE,生年月日)/12)

[生年月日]は[YYYY/MM/DD]の形のデータをご用意ください。


算数と同じように、内側のカッコから計算します。
この計算式を分解して考えてみましょう。

計算式の解説

TRUNC(MONTHS_BETWEEN(SYSDATE,生年月日)/12)

計算順序

MONTHS_BETWEEN(SYSDATE,生年月日) ・・・・・①
  ↓

/12 ・・・・・・・・・・・・・・・・・・・・・②
  ↓
TRUNC(
) ・・・・・・・・・・・・・・・・・・③

① MONTHS_BETWEEN(SYSDATE,生年月日)

MONTHS_BETWEEN(A,B) = A-Bの月数の差
SYSDATE = 現在の日付時刻

まずは2つの月数の差を求めるため、AとBにそれぞれ日付を代入します。

A=2022/06/15
B=1978/05/02

 計算式:'2022/06/15'-'1978/05/02'=529.419354…

結果は529.419354…か月です。

①の計算後はこのような式になります。
TRUNC(
529.419354…/12)

② ①/12

①の結果が月数になっているため、年数に計算しなおします。

 計算式:529.419354…/12=44.118279…

結果は44.118279…年です。

②の計算後はこのような式になります↓
TRUNC(44.118279…)

③ TRUNC(②)

TRUNC = 小数点以下切り捨て

 計算式:TRUNC(44.118279…)=44

整数にすることによって表示が整いましたね!
Aさんは本日(2022/06/15)時点で44歳であることが分かりました。

計算結果を確認する

計算式が理解できたら、作成したカスタム項目をドラッグ&ドロップで行項目に配置しOKをクリックします。

人事管理ボードや会員情報管理ボードで活躍すること間違いなし!

データ型を[数値]にしたほうが良い理由

「カスタム項目を追加する」でデータ型を数値に変更しました。
日付型や文字型でも正しい結果は得られるのにどうして…?と思われたのではないでしょうか。
理由は作成したカスタム項目を集計項目に配置すると分かります。

数値にしておくと集計方法の選択肢が増え、平均年齢を出したいときに選択するだけで計算できるからです!

MotionBoardのDataStorageで使える関数はマニュアルに記載があります。
参考にしてみてくださいね。

[参考]MotionBoard Cloud マニュアル:データストレージで使用できる関数の種類