売上のレポートを年度に合わせて4-3月で表示してみた

目的

salesforceのレポートで、年度ごとに月別売上レポートを表示する必要がありました。 会社は期首月が4月なので4-3月で表示してほしいという指示もあり、ちょっとやってみたので残しておこうと思います。

前提

取引先に紐づく形で、売上オブジェクトを作成しています。 売上オブジェクトには、「計上日」と「売上金額」をまずつくりました。 (計上日は日付型、売上金額は通貨型にしています)

f:id:sweaty:20201004190606j:plain
完成イメージ

課題

計上日をグループ化しようとしてみましたが、ちょっといまいちです。 同じ項目で複数グループ化できるとよさそうですが無理ですね。

f:id:sweaty:20201004191736j:plain
計上年月日でグループ化

最初にやってみたこと

計上日1つだと難しいことはわかったので、計上年度と月を数式で作ってみました。 計上年度は、4月はじまりなので計上年月日が1~3月だったら前の年になるようにします。

IF(MONTH( 計上年月日 ) < 4, TEXT(YEAR( 計上年月日 ) - 1), TEXT(YEAR( 計上年月日 )) )

月は、計上年月日から月を取り出しました。

MONTH( 計上年月日 )

これで作ったレポートのサンプルがこちら

f:id:sweaty:20201004194532j:plain
計上年度と月を数式で表現

月の数式で戻り値を数値にしていましたが、そうすると1月はじまりになってしまいました。 期首月が4月になるようにしないとだめですので、これだとうまくいきませんでした。

最終的にやったこと

月を選択リストで表現してみました。 選択リストなら並び順を任意で行えるため、これをやってみました。

f:id:sweaty:20201004200109j:plain
選択肢並び順

ただし選択リストに値を入力するためには、作成時に月の値を登録するか、プロセスビルダーなどで作成時に計上年月日から計上月を更新する必要があります。

f:id:sweaty:20201004200302j:plain
ひとまず完成

そのほかにやれそうなこと

月の頭に接頭辞みたいなものをつけるという方法もあります。 数式でa_4月、b_5月、、、l_3月となるようにする方法もあります。

CASE(MONTH( 計上年月日),
4, "a_4月",
5, "b_5月",
6, "c_6月",
7, "d_7月",
8, "e_8月",
9, "f_9月",
10, "g_10月",
11, "h_11月",
12, "i_12月",
1, "j_1月",
2, "k_12月",
3, "l_3月",
""
)

f:id:sweaty:20201004201844j:plain
別方法でレポート

接頭辞が表示されることに問題がなければこちらの方法が簡単かと思います。 salesforceは考え方次第でいろんなアプローチがあるので、運用に照らして検討するのがよさそうですね。