現在の半期の日付で絞り込む

こんにちは、ねこメジェドです。
月1回ブログ書くと宣言しておきながら危うく初回から破りそうになりました。


今回、レポートやビューで使用できる現在の半期の日付のレコードを絞り込む数式についてご紹介します。

はじめに

Salesforceでは相対日付を使用してレポートやリストビューでレコードを絞り込むことができます。
相対日付は、日付に「今月」などの条件を設定しておくと月が変わったら自動で該当するデータを表示してくれるという便利な機能です。
ただ、四半期という概念はありますが、半期(上期・下期)という概念はありません。
今回、数式を使って絞り込めるようにしていきます。

半期で絞り込むってどういうこと?

数式を使用することで現在の半期を判定してtrue,falseを返して判定できるようにします
例. 会計年度は4月始まりとし、4月〜9月が上期、10月〜3月が下期
2021年1月は下期なので2020年10月1日〜2021年3月31日の日付のレコードの場合trueになるように数式を設定します。


作成する数式

項目名: *半期
API名: IsHalfPeriod__c
説明: 現在日付の半期の日付の場合にTrueそれ以外の場合にFalseを返す

※数式内にでてくるDate__cは日付型のカスタム項目になります

IF(
  /* システム日付が4月〜9月の場合 */
  MONTH(TODAY()) >= 4 && MONTH(TODAY()) <= 9,
  IF(
    /* 日付(Date__c)が今年の41日以上かつ今年の101日より小さい場合 */
    Date__c >= DATE(YEAR(TODAY()),4,1) && Date__c < DATE(YEAR(TODAY()),10,1),
    true,
    false
  ),
  IF(
    /* システム日付が1月〜3月の場合 */
    MONTH(TODAY()) <= 3,
    IF(
      /* 日付(Date__c)が昨年の101日以上かつ今年の41日より小さい場合 */
      Date__c >= DATE(YEAR(TODAY()) -1,10,1) && Date__c < DATE(YEAR(TODAY()),4,1),
      true,
      false
    ),
    IF(
      /* システム日付が10月〜12月の場合、日付(Date__c)が今年の101日以上かつ来年の41日より小さい場合 */
      Date__c >= DATE(YEAR(TODAY()),10,1) && Date__c < DATE(YEAR(TODAY() + 1),4,1),
      true,
      false
    )
  )
)

作成した結果

f:id:myanagi13:20210129234013p:plain
作成した結果

条件の設定

f:id:myanagi13:20210129234045p:plain
条件の設定