スポンサーリンク

【pleasanter】計算式(拡張)活用サンプル①~リマインダーの日付として利用する~

プリザンター
スポンサーリンク
※当サイトは広告を含みます

※おことわり
2025年2月時点の情報です。プリザンターのバージョンは 1.4.9.1 です。Google Chrome でやっています。
javascript,html,cssともに初心者です。調べながら、やってみながら、きっとこうすればいいんだ!という感じで書いていますので、間違っている、または効率的な書き方ではない可能性が大いにあります。間違ってるよ!とか、こうしたほうがいいよ!ということがありましたら、コメント等で教えていただけると大変ありがたいです。

1.はじめに

Excel関数好きはプリザンターの計算式(拡張)にアドレナリンが出まくる。これまでスクリプト等でしかできなかったことが、計算式(拡張)を使うことで、スクリプト書かなくてもいろいろできるようになって、お手軽で、いい。

前回は、計算式(規定・拡張)について、基本的な使い方などの理解を深めてみました。
【pleasanter】計算式(規定・拡張)についてまとめてみた

今回からは、計算式(拡張)を利用して、こんな使い方どうかなー、というのを記載しています。
基本的な使い方等は前回の記事、または公式マニュアル。関数の一覧などは公式マニュアルをご参照ください。

公式マニュアル
テーブルの管理:計算式(既定)
テーブルの管理:計算式(拡張)
計算式(拡張)の関数一覧
計算式(拡張)の関数で使用する論理式

計算式の構文等の詳しい説明は割愛していますので、公式マニュアルをご参照ください。

以下、基本的に「計算式」タブで「計算方法」は[拡張]を利用、「エラーを出力する」はオフ、「表示名を使用しない」はオフ でやっています。

2.リマインダーの日付として使う

入力した日付とちょっと違った日付でリマインダーを送りたいとき。計算式電算出した日付項目を利用することで、柔軟にリマインダーメール送信の日付を設定することができるので、便利。

(1)「完了」に入力した日の1日後にリマインダー機能を使って通知を送りたい

期限付きテーブルでやっています。
日付Aを追加します。「日付A」は非表示か読取専用にしておきます。
「完了」は自動ポストバックをONにしておきます。

計算式(拡張)

使用した関数:$DATE, $YEAR, $MONTH, $DAY

対象(出力先項目)を「日付A」にして、以下の計算式を設定します。
「完了」の2日後の日付が「日付A」に出力されます。

$DATE($YEAR(完了), $MONTH(完了), $DAY(完了) + 2)

リマインダーの設定

[リマインダー]タブで設定します。

項目は「日付A」を設定、期間は「1」日を設定します。

このように指定することで、
①計算式により「完了」に指定した日付の2日後の日付が「日付A」に設定される。
②「日付A」に指定した日付の1日前からリマインダーメールが送信される。
③ 「完了」日付の翌日からリマインダーメールが送信される。
※状況が900以上の場合はメールは送信されない。

(2)分類項目の値により、リマインダーする日付を変える

たとえば、項目「重要度(分類A)」で「100,小」を選択したときは10日後にリマインダーを開始。「200,中」を選択したときは5日後にリマインダーを開始、「300,大」を選択したときは3日後にリマインダーを開始、をやってみる。

エディタの設定

分類A:表示名=重要度
    選択肢=100,小/200,中/300,大。規定値=100
    入力必須。自動ポストバック=ON

日付A:読取専用、または非表示

計算式(拡張)

使用した関数:$TODAY, $IFS, $DATE, $YEAR, $MONTH, $DAY

日付Aに重要度の値に応じ、更新日の●日後の日付を入力する。
対象(出力先項目)は「日付A」
分類Aは100か200か300のいずれかの値が必ず入るものとしており、else的なものは設定していない。

$DATE($YEAR($TODAY()), $MONTH($TODAY()), $DAY($TODAY()) + $IFS(分類A == 100, 4, 分類A == 200, 6, 分類A == 300, 11))

日付の数値を指定するところで今日の日付に分類Aの値により、プラスする日数を変えています。

今日が2/8、重要度が「大」だとしたら、日付Aには2/19の日付が入る

リマインダー

リマインダーは(1)の時と同じ設定。
項目=「日付A」、範囲=「1」として、日付Aの一日前からリマインダーメールを送信する設定。

結果

2/8に重要度「大」で作成したレコードは日付Aが「2/19」となり、2/18からリマインダーメールが送信される、はず!(状況が900未満の場合)

(3)申請日の月末の3日前からリマインダーを送る

日付項目 [申請日] の日付が20日以前の場合は、当月月末の3日前からリマインダーメールを送信。
日付項目 [申請日] の日付が20日より後の場合は、翌月月末の3日前からリマインダーメールを送信。

というのをやってみようと思います。

エディタの設定

日付A:表示名=申請日、規定値=0、入力必須、自動ポストバック=ON

日付B:表示名=期限、読取専用

計算式(拡張)

使用した関数:$IF, $DAY, $EOMONTH

対象(出力先項目):期限(日付B)

$IF($DAY(申請日)<=20, $EOMONTH(申請日,0), $EOMONTH(申請日,1))

$EOMONTH は第一引数に指定した日にちを起点とした月末日付を返してくれます。
第二引数 0 で当月末、1 で翌月末、2 で翌々月末、12 で一年後の月末日、-1 で前月末。

便利ですね~。Excelで、出会ったときに感動した関数です。

リマインダー

項目=期限、範囲=3 と設定します。あとは適当に、、、

これで、行くはず。。。

3.リマインダーとは(ざっくり)

公式マニュアル:テーブルの管理:リマインダー

リマインダーがイマイチ理解できていなかったのですが、ざっくりと以下のように理解しました。

状況が900未満のレコードに対して、
今日の日付 から今日を含めて、以降の [範囲] に指定した日数の期間中に [項目] の日付があるレコードがリマインダーの対象となる。そして、状況が900以上になるまでリマインダーメールは送られ続ける。ということ。

項目が「日付A」、範囲が3日の場合は、本日を含め3日間の間に「日付A」の日付が到来するレコードが、リマインダー対象のレコードとなる。

要は、[項目]に指定した日付 の ●日前(●は[範囲]で指定した日数)からリマインダーメールが送信される。

日付Aが 2/13 だとしたら、3日前の 2/11 からリマインダーメールが送信され始める。

(ややこしくなるので、状況や開始日時などは置いといて考えています)

4.おわりに

日付の加算は「プロセス」でもできます。なので、計算式ではなくプロセスを使って実装することも可能。ただ、プロセスでは日付の減算や月末日を求めたりはできないので、いろいろと柔軟に対応したい場合には計算式(拡張)がいいように思います。

また、リマインダーの「条件」や「期間種別」等をうまく使うことにより、いろいろなリマインドパターンが実装できると思います。が、Excel関数使いには計算式(拡張)で日付項目に直接細工をするのがもっとも悩まずにスッとできる。

自宅のプリザンターではメール機能を設定してないので、たぶんこうなるだろ夢想リマインダーのため、間違っていたらごめんなさい。ご指摘ください。

5.参考文献、記事

公式マニュアル

テーブルの管理:計算式(既定)
テーブルの管理:計算式(拡張)
計算式(拡張)の関数一覧
計算式(拡張)の関数で使用する論理式
テーブルの管理:リマインダー

内部リンク:計算式

【pleasanter】計算式(規定・拡張)についてまとめてみた
【pleasanter】計算式(拡張)活用サンプル①~リマインダーの日付として利用する~

【pleasanter】計算式(拡張)活用サンプル②~入力チェックに利用する~
【pleasanter】計算式(拡張)活用サンプル③~タイトルを自由自在に~

もう読みました?プリザンターの概要、インストール方法から基本操作方法、導入事例、サンプル等役に立つ情報が満載!

コメント

タイトルとURLをコピーしました